aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser/llvmAsmParser.h.cvs
blob: d460fef033b6847416ea2cbf708535ddae889196 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
/* A Bison parser, made by GNU Bison 2.3.  */

/* Skeleton interface for Bison's Yacc-like parsers in C

   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ESINT64VAL = 258,
     EUINT64VAL = 259,
     SINTVAL = 260,
     UINTVAL = 261,
     FPVAL = 262,
     VOID = 263,
     BOOL = 264,
     INTTYPE = 265,
     FLOAT = 266,
     DOUBLE = 267,
     LABEL = 268,
     TYPE = 269,
     VAR_ID = 270,
     LABELSTR = 271,
     STRINGCONSTANT = 272,
     IMPLEMENTATION = 273,
     ZEROINITIALIZER = 274,
     TRUETOK = 275,
     FALSETOK = 276,
     BEGINTOK = 277,
     ENDTOK = 278,
     DECLARE = 279,
     DEFINE = 280,
     GLOBAL = 281,
     CONSTANT = 282,
     SECTION = 283,
     VOLATILE = 284,
     TO = 285,
     DOTDOTDOT = 286,
     NULL_TOK = 287,
     UNDEF = 288,
     INTERNAL = 289,
     LINKONCE = 290,
     WEAK = 291,
     APPENDING = 292,
     DLLIMPORT = 293,
     DLLEXPORT = 294,
     EXTERN_WEAK = 295,
     OPAQUE = 296,
     EXTERNAL = 297,
     TARGET = 298,
     TRIPLE = 299,
     ENDIAN = 300,
     POINTERSIZE = 301,
     LITTLE = 302,
     BIG = 303,
     ALIGN = 304,
     DEPLIBS = 305,
     CALL = 306,
     TAIL = 307,
     ASM_TOK = 308,
     MODULE = 309,
     SIDEEFFECT = 310,
     CC_TOK = 311,
     CCC_TOK = 312,
     CSRETCC_TOK = 313,
     FASTCC_TOK = 314,
     COLDCC_TOK = 315,
     X86_STDCALLCC_TOK = 316,
     X86_FASTCALLCC_TOK = 317,
     DATALAYOUT = 318,
     RET = 319,
     BR = 320,
     SWITCH = 321,
     INVOKE = 322,
     UNWIND = 323,
     UNREACHABLE = 324,
     ADD = 325,
     SUB = 326,
     MUL = 327,
     UDIV = 328,
     SDIV = 329,
     FDIV = 330,
     UREM = 331,
     SREM = 332,
     FREM = 333,
     AND = 334,
     OR = 335,
     XOR = 336,
     ICMP = 337,
     FCMP = 338,
     EQ = 339,
     NE = 340,
     SLT = 341,
     SGT = 342,
     SLE = 343,
     SGE = 344,
     ULT = 345,
     UGT = 346,
     ULE = 347,
     UGE = 348,
     OEQ = 349,
     ONE = 350,
     OLT = 351,
     OGT = 352,
     OLE = 353,
     OGE = 354,
     ORD = 355,
     UNO = 356,
     UEQ = 357,
     UNE = 358,
     MALLOC = 359,
     ALLOCA = 360,
     FREE = 361,
     LOAD = 362,
     STORE = 363,
     GETELEMENTPTR = 364,
     TRUNC = 365,
     ZEXT = 366,
     SEXT = 367,
     FPTRUNC = 368,
     FPEXT = 369,
     BITCAST = 370,
     UITOFP = 371,
     SITOFP = 372,
     FPTOUI = 373,
     FPTOSI = 374,
     INTTOPTR = 375,
     PTRTOINT = 376,
     PHI_TOK = 377,
     SELECT = 378,
     SHL = 379,
     LSHR = 380,
     ASHR = 381,
     VAARG = 382,
     EXTRACTELEMENT = 383,
     INSERTELEMENT = 384,
     SHUFFLEVECTOR = 385,
     NORETURN = 386,
     DEFAULT = 387,
     HIDDEN = 388
   };
#endif
/* Tokens.  */
#define ESINT64VAL 258
#define EUINT64VAL 259
#define SINTVAL 260
#define UINTVAL 261
#define FPVAL 262
#define VOID 263
#define BOOL 264
#define INTTYPE 265
#define FLOAT 266
#define DOUBLE 267
#define LABEL 268
#define TYPE 269
#define VAR_ID 270
#define LABELSTR 271
#define STRINGCONSTANT 272
#define IMPLEMENTATION 273
#define ZEROINITIALIZER 274
#define TRUETOK 275
#define FALSETOK 276
#define BEGINTOK 277
#define ENDTOK 278
#define DECLARE 279
#define DEFINE 280
#define GLOBAL 281
#define CONSTANT 282
#define SECTION 283
#define VOLATILE 284
#define TO 285
#define DOTDOTDOT 286
#define NULL_TOK 287
#define UNDEF 288
#define INTERNAL 289
#define LINKONCE 290
#define WEAK 291
#define APPENDING 292
#define DLLIMPORT 293
#define DLLEXPORT 294
#define EXTERN_WEAK 295
#define OPAQUE 296
#define EXTERNAL 297
#define TARGET 298
#define TRIPLE 299
#define ENDIAN 300
#define POINTERSIZE 301
#define LITTLE 302
#define BIG 303
#define ALIGN 304
#define DEPLIBS 305
#define CALL 306
#define TAIL 307
#define ASM_TOK 308
#define MODULE 309
#define SIDEEFFECT 310
#define CC_TOK 311
#define CCC_TOK 312
#define CSRETCC_TOK 313
#define FASTCC_TOK 314
#define COLDCC_TOK 315
#define X86_STDCALLCC_TOK 316
#define X86_FASTCALLCC_TOK 317
#define DATALAYOUT 318
#define RET 319
#define BR 320
#define SWITCH 321
#define INVOKE 322
#define UNWIND 323
#define UNREACHABLE 324
#define ADD 325
#define SUB 326
#define MUL 327
#define UDIV 328
#define SDIV 329
#define FDIV 330
#define UREM 331
#define SREM 332
#define FREM 333
#define AND 334
#define OR 335
#define XOR 336
#define ICMP 337
#define FCMP 338
#define EQ 339
#define NE 340
#define SLT 341
#define SGT 342
#define SLE 343
#define SGE 344
#define ULT 345
#define UGT 346
#define ULE 347
#define UGE 348
#define OEQ 349
#define ONE 350
#define OLT 351
#define OGT 352
#define OLE 353
#define OGE 354
#define ORD 355
#define UNO 356
#define UEQ 357
#define UNE 358
#define MALLOC 359
#define ALLOCA 360
#define FREE 361
#define LOAD 362
#define STORE 363
#define GETELEMENTPTR 364
#define TRUNC 365
#define ZEXT 366
#define SEXT 367
#define FPTRUNC 368
#define FPEXT 369
#define BITCAST 370
#define UITOFP 371
#define SITOFP 372
#define FPTOUI 373
#define FPTOSI 374
#define INTTOPTR 375
#define PTRTOINT 376
#define PHI_TOK 377
#define SELECT 378
#define SHL 379
#define LSHR 380
#define ASHR 381
#define VAARG 382
#define EXTRACTELEMENT 383
#define INSERTELEMENT 384
#define SHUFFLEVECTOR 385
#define NORETURN 386
#define DEFAULT 387
#define HIDDEN 388




#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 883 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
{
  llvm::Module                           *ModuleVal;
  llvm::Function                         *FunctionVal;
  llvm::BasicBlock                       *BasicBlockVal;
  llvm::TerminatorInst                   *TermInstVal;
  llvm::Instruction                      *InstVal;
  llvm::Constant                         *ConstVal;

  const llvm::Type                       *PrimType;
  std::list<llvm::PATypeHolder>          *TypeList;
  llvm::PATypeHolder                     *TypeVal;
  llvm::Value                            *ValueVal;
  std::vector<llvm::Value*>              *ValueList;
  llvm::ArgListType                      *ArgList;
  llvm::TypeWithAttrs                     TypeWithAttrs;
  llvm::TypeWithAttrsList                *TypeWithAttrsList;
  llvm::ValueRefList                     *ValueRefList;

  // Represent the RHS of PHI node
  std::list<std::pair<llvm::Value*,
                      llvm::BasicBlock*> > *PHIList;
  std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
  std::vector<llvm::Constant*>           *ConstVector;

  llvm::GlobalValue::LinkageTypes         Linkage;
  llvm::GlobalValue::VisibilityTypes      Visibility;
  llvm::FunctionType::ParameterAttributes ParamAttrs;
  int64_t                           SInt64Val;
  uint64_t                          UInt64Val;
  int                               SIntVal;
  unsigned                          UIntVal;
  double                            FPVal;
  bool                              BoolVal;

  char                             *StrVal;   // This memory is strdup'd!
  llvm::ValID                       ValIDVal; // strdup'd memory maybe!

  llvm::Instruction::BinaryOps      BinaryOpVal;
  llvm::Instruction::TermOps        TermOpVal;
  llvm::Instruction::MemoryOps      MemOpVal;
  llvm::Instruction::CastOps        CastOpVal;
  llvm::Instruction::OtherOps       OtherOpVal;
  llvm::Module::Endianness          Endianness;
  llvm::ICmpInst::Predicate         IPredicate;
  llvm::FCmpInst::Predicate         FPredicate;
}
/* Line 1489 of yacc.c.  */
#line 362 "llvmAsmParser.tab.h"
	YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

extern YYSTYPE llvmAsmlval;