aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser/llvmAsmParser.cpp
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-11-05 09:21:28 +0000
committerNate Begeman <natebegeman@mac.com>2005-11-05 09:21:28 +0000
commit14b0529532904b9e5a1e34526b4a3209f3e5bc62 (patch)
tree43e99ef7bb1cdfbb2828eea5617026f6d426e787 /lib/AsmParser/llvmAsmParser.cpp
parentae4664a9f2da955c9d2a3f38b28f0a4395851ace (diff)
Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs. No targets currently do anything with this information, nor is it presrved in the bytecode representation. That's coming up next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser/llvmAsmParser.cpp')
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp4592
1 files changed, 2029 insertions, 2563 deletions
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp
index 92e0a39462..953fce8e8e 100644
--- a/lib/AsmParser/llvmAsmParser.cpp
+++ b/lib/AsmParser/llvmAsmParser.cpp
@@ -1,257 +1,110 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* A Bison parser, made from /llvm/lib/AsmParser/llvmAsmParser.y
+ by GNU Bison version 1.28 */
- 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., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* Written by Richard Stallman by simplifying the original so called
- ``semantic'' parser. */
+#define YYBISON 1 /* Identify Bison output. */
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
#define yyparse llvmAsmparse
-#define yylex llvmAsmlex
+#define yylex llvmAsmlex
#define yyerror llvmAsmerror
-#define yylval llvmAsmlval
-#define yychar llvmAsmchar
+#define yylval llvmAsmlval
+#define yychar llvmAsmchar
#define yydebug llvmAsmdebug
#define yynerrs llvmAsmnerrs
-
-
-/* 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,
- SBYTE = 265,
- UBYTE = 266,
- SHORT = 267,
- USHORT = 268,
- INT = 269,
- UINT = 270,
- LONG = 271,
- ULONG = 272,
- FLOAT = 273,
- DOUBLE = 274,
- TYPE = 275,
- LABEL = 276,
- VAR_ID = 277,
- LABELSTR = 278,
- STRINGCONSTANT = 279,
- IMPLEMENTATION = 280,
- ZEROINITIALIZER = 281,
- TRUETOK = 282,
- FALSETOK = 283,
- BEGINTOK = 284,
- ENDTOK = 285,
- DECLARE = 286,
- GLOBAL = 287,
- CONSTANT = 288,
- VOLATILE = 289,
- TO = 290,
- DOTDOTDOT = 291,
- NULL_TOK = 292,
- UNDEF = 293,
- CONST = 294,
- INTERNAL = 295,
- LINKONCE = 296,
- WEAK = 297,
- APPENDING = 298,
- OPAQUE = 299,
- NOT = 300,
- EXTERNAL = 301,
- TARGET = 302,
- TRIPLE = 303,
- ENDIAN = 304,
- POINTERSIZE = 305,
- LITTLE = 306,
- BIG = 307,
- DEPLIBS = 308,
- CALL = 309,
- TAIL = 310,
- CC_TOK = 311,
- CCC_TOK = 312,
- FASTCC_TOK = 313,
- COLDCC_TOK = 314,
- RET = 315,
- BR = 316,
- SWITCH = 317,
- INVOKE = 318,
- UNWIND = 319,
- UNREACHABLE = 320,
- ADD = 321,
- SUB = 322,
- MUL = 323,
- DIV = 324,
- REM = 325,
- AND = 326,
- OR = 327,
- XOR = 328,
- SETLE = 329,
- SETGE = 330,
- SETLT = 331,
- SETGT = 332,
- SETEQ = 333,
- SETNE = 334,
- MALLOC = 335,
- ALLOCA = 336,
- FREE = 337,
- LOAD = 338,
- STORE = 339,
- GETELEMENTPTR = 340,
- PHI_TOK = 341,
- CAST = 342,
- SELECT = 343,
- SHL = 344,
- SHR = 345,
- VAARG = 346,
- VAARG_old = 347,
- VANEXT_old = 348
- };
-#endif
-#define ESINT64VAL 258
-#define EUINT64VAL 259
-#define SINTVAL 260
-#define UINTVAL 261
-#define FPVAL 262
-#define VOID 263
-#define BOOL 264
-#define SBYTE 265
-#define UBYTE 266
-#define SHORT 267
-#define USHORT 268
-#define INT 269
-#define UINT 270
-#define LONG 271
-#define ULONG 272
-#define FLOAT 273
-#define DOUBLE 274
-#define TYPE 275
-#define LABEL 276
-#define VAR_ID 277
-#define LABELSTR 278
-#define STRINGCONSTANT 279
-#define IMPLEMENTATION 280
-#define ZEROINITIALIZER 281
-#define TRUETOK 282
-#define FALSETOK 283
-#define BEGINTOK 284
-#define ENDTOK 285
-#define DECLARE 286
-#define GLOBAL 287
-#define CONSTANT 288
-#define VOLATILE 289
-#define TO 290
-#define DOTDOTDOT 291
-#define NULL_TOK 292
-#define UNDEF 293
-#define CONST 294
-#define INTERNAL 295
-#define LINKONCE 296
-#define WEAK 297
-#define APPENDING 298
-#define OPAQUE 299
-#define NOT 300
-#define EXTERNAL 301
-#define TARGET 302
-#define TRIPLE 303
-#define ENDIAN 304
-#define POINTERSIZE 305
-#define LITTLE 306
-#define BIG 307
-#define DEPLIBS 308
-#define CALL 309
-#define TAIL 310
-#define CC_TOK 311
-#define CCC_TOK 312
-#define FASTCC_TOK 313
-#define COLDCC_TOK 314
-#define RET 315
-#define BR 316
-#define SWITCH 317
-#define INVOKE 318
-#define UNWIND 319
-#define UNREACHABLE 320
-#define ADD 321
-#define SUB 322
-#define MUL 323
-#define DIV 324
-#define REM 325
-#define AND 326
-#define OR 327
-#define XOR 328
-#define SETLE 329
-#define SETGE 330
-#define SETLT 331
-#define SETGT 332
-#define SETEQ 333
-#define SETNE 334
-#define MALLOC 335
-#define ALLOCA 336
-#define FREE 337
-#define LOAD 338
-#define STORE 339
-#define GETELEMENTPTR 340
-#define PHI_TOK 341
-#define CAST 342
-#define SELECT 343
-#define SHL 344
-#define SHR 345
-#define VAARG 346
-#define VAARG_old 347
-#define VANEXT_old 348
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 14 "/usr/home/llvm/obj/../lib/AsmParser/llvmAsmParser.y"
+#define ESINT64VAL 257
+#define EUINT64VAL 258
+#define SINTVAL 259
+#define UINTVAL 260
+#define FPVAL 261
+#define VOID 262
+#define BOOL 263
+#define SBYTE 264
+#define UBYTE 265
+#define SHORT 266
+#define USHORT 267
+#define INT 268
+#define UINT 269
+#define LONG 270
+#define ULONG 271
+#define FLOAT 272
+#define DOUBLE 273
+#define TYPE 274
+#define LABEL 275
+#define VAR_ID 276
+#define LABELSTR 277
+#define STRINGCONSTANT 278
+#define IMPLEMENTATION 279
+#define ZEROINITIALIZER 280
+#define TRUETOK 281
+#define FALSETOK 282
+#define BEGINTOK 283
+#define ENDTOK 284
+#define DECLARE 285
+#define GLOBAL 286
+#define CONSTANT 287
+#define VOLATILE 288
+#define TO 289
+#define DOTDOTDOT 290
+#define NULL_TOK 291
+#define UNDEF 292
+#define CONST 293
+#define INTERNAL 294
+#define LINKONCE 295
+#define WEAK 296
+#define APPENDING 297
+#define OPAQUE 298
+#define NOT 299
+#define EXTERNAL 300
+#define TARGET 301
+#define TRIPLE 302
+#define ENDIAN 303
+#define POINTERSIZE 304
+#define LITTLE 305
+#define BIG 306
+#define ALIGN 307
+#define DEPLIBS 308
+#define CALL 309
+#define TAIL 310
+#define CC_TOK 311
+#define CCC_TOK 312
+#define FASTCC_TOK 313
+#define COLDCC_TOK 314
+#define RET 315
+#define BR 316
+#define SWITCH 317
+#define INVOKE 318
+#define UNWIND 319
+#define UNREACHABLE 320
+#define ADD 321
+#define SUB 322
+#define MUL 323
+#define DIV 324
+#define REM 325
+#define AND 326
+#define OR 327
+#define XOR 328
+#define SETLE 329
+#define SETGE 330
+#define SETLT 331
+#define SETGT 332
+#define SETEQ 333
+#define SETNE 334
+#define MALLOC 335
+#define ALLOCA 336
+#define FREE 337
+#define LOAD 338
+#define STORE 339
+#define GETELEMENTPTR 340
+#define PHI_TOK 341
+#define CAST 342
+#define SELECT 343
+#define SHL 344
+#define SHR 345
+#define VAARG 346
+#define VAARG_old 347
+#define VANEXT_old 348
+
+#line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
#include "ParserInternals.h"
#include "llvm/CallingConv.h"
@@ -1103,23 +956,8 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
}
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 866 "/usr/home/llvm/obj/../lib/AsmParser/llvmAsmParser.y"
-typedef union YYSTYPE {
+#line 866 "/llvm/lib/AsmParser/llvmAsmParser.y"
+typedef union {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
std::pair<llvm::PATypeHolder*, char*> *ArgVal;
@@ -1158,1235 +996,948 @@ typedef union YYSTYPE {
llvm::Instruction::OtherOps OtherOpVal;
llvm::Module::Endianness Endianness;
} YYSTYPE;
-/* Line 191 of yacc.c. */
-#line 1163 "llvmAsmParser.tab.c"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
+#include <stdio.h>
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
-/* Line 214 of yacc.c. */
-#line 1175 "llvmAsmParser.tab.c"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-# ifndef YYFREE
-# define YYFREE free
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# endif
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-#if (! defined (yyoverflow) \
- && (! defined (__cplusplus) \
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+#define YYFINAL 429
+#define YYFLAG -32768
+#define YYNTBASE 109
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 348 ? yytranslate[x] : 170)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 97,
+ 98, 106, 2, 107, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 102,
+ 95, 103, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 99, 96, 101, 2, 2, 2, 2, 2, 108, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 100,
+ 2, 2, 104, 2, 105, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 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
+};
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- short int yyss;
- YYSTYPE yyvs;
- };
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
+ 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
+ 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
+ 60, 62, 64, 67, 68, 70, 72, 74, 76, 77,
+ 78, 80, 82, 84, 87, 89, 91, 93, 95, 97,
+ 99, 101, 103, 105, 107, 109, 111, 113, 115, 117,
+ 119, 121, 123, 125, 127, 129, 132, 137, 143, 149,
+ 153, 156, 159, 161, 165, 167, 171, 173, 174, 179,
+ 183, 187, 192, 197, 201, 204, 207, 210, 213, 216,
+ 219, 222, 225, 228, 231, 238, 244, 253, 260, 267,
+ 274, 281, 285, 287, 289, 291, 293, 296, 299, 302,
+ 304, 309, 312, 318, 324, 328, 333, 334, 336, 338,
+ 342, 346, 350, 354, 358, 360, 361, 363, 365, 367,
+ 368, 371, 375, 377, 379, 383, 385, 386, 393, 395,
+ 397, 401, 403, 405, 408, 409, 413, 415, 417, 419,
+ 421, 423, 425, 427, 431, 433, 435, 437, 439, 441,
+ 444, 447, 450, 454, 457, 458, 460, 463, 466, 470,
+ 480, 490, 499, 513, 515, 517, 524, 530, 533, 540,
+ 548, 550, 554, 556, 557, 560, 562, 568, 574, 580,
+ 583, 588, 593, 600, 605, 610, 615, 618, 626, 628,
+ 631, 632, 634, 635, 638, 644, 650, 659, 662, 668,
+ 674, 683, 686, 691, 698
+};
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined (__GNUC__) && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- register YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (0)
+static const short yyrhs[] = { 5,
+ 0, 6, 0, 3, 0, 4, 0, 67, 0, 68,
+ 0, 69, 0, 70, 0, 71, 0, 72, 0, 73,
+ 0, 74, 0, 75, 0, 76, 0, 77, 0, 78,
+ 0, 79, 0, 80, 0, 90, 0, 91, 0, 16,
+ 0, 14, 0, 12, 0, 10, 0, 17, 0, 15,
+ 0, 13, 0, 11, 0, 115, 0, 116, 0, 18,
+ 0, 19, 0, 140, 95, 0, 0, 40, 0, 41,
+ 0, 42, 0, 43, 0, 0, 0, 58, 0, 59,
+ 0, 60, 0, 57, 4, 0, 124, 0, 8, 0,
+ 126, 0, 8, 0, 126, 0, 9, 0, 10, 0,
+ 11, 0, 12, 0, 13, 0, 14, 0, 15, 0,
+ 16, 0, 17, 0, 18, 0, 19, 0, 20, 0,
+ 21, 0, 44, 0, 125, 0, 153, 0, 96, 4,
+ 0, 123, 97, 128, 98, 0, 99, 4, 100, 126,
+ 101, 0, 102, 4, 100, 126, 103, 0, 104, 127,
+ 105, 0, 104, 105, 0, 126, 106, 0, 126, 0,
+ 127, 107, 126, 0, 127, 0, 127, 107, 36, 0,
+ 36, 0, 0, 124, 99, 131, 101, 0, 124, 99,
+ 101, 0, 124, 108, 24, 0, 124, 102, 131, 103,
+ 0, 124, 104, 131, 105, 0, 124, 104, 105, 0,
+ 124, 37, 0, 124, 38, 0, 124, 153, 0, 124,
+ 130, 0, 124, 26, 0, 115, 110, 0, 116, 4,
+ 0, 9, 27, 0, 9, 28, 0, 118, 7, 0,
+ 88, 97, 129, 35, 124, 98, 0, 86, 97, 129,
+ 167, 98, 0, 89, 97, 129, 107, 129, 107, 129,
+ 98, 0, 111, 97, 129, 107, 129, 98, 0, 112,
+ 97, 129, 107, 129, 98, 0, 113, 97, 129, 107,
+ 129, 98, 0, 114, 97, 129, 107, 129, 98, 0,
+ 131, 107, 129, 0, 129, 0, 32, 0, 33, 0,
+ 134, 0, 134, 149, 0, 134, 150, 0, 134, 25,
+ 0, 135, 0, 135, 119, 20, 122, 0, 135, 150,
+ 0, 135, 119, 120, 132, 129, 0, 135, 119, 46,
+ 132, 124, 0, 135, 47, 137, 0, 135, 54, 95,
+ 138, 0, 0, 52, 0, 51, 0, 49, 95, 136,
+ 0, 50, 95, 4, 0, 48, 95, 24, 0, 99,
+ 139, 101, 0, 139, 107, 24, 0, 24, 0, 0,
+ 22, 0, 24, 0, 140, 0, 0, 124, 141, 0,
+ 143, 107, 142, 0, 142, 0, 143, 0, 143, 107,
+ 36, 0, 36, 0, 0, 121, 122, 140, 97, 144,
+ 98, 0, 29, 0, 104, 0, 120, 145, 146, 0,
+ 30, 0, 105, 0, 156, 148, 0, 0, 31, 151,
+ 145, 0, 3, 0, 4, 0, 7, 0, 27, 0,
+ 28, 0, 37, 0, 38, 0, 102, 131, 103, 0,
+ 130, 0, 109, 0, 140, 0, 153, 0, 152, 0,
+ 124, 154, 0, 156, 157, 0, 147, 157, 0, 158,
+ 119, 159, 0, 158, 161, 0, 0, 23, 0, 61,
+ 155, 0, 61, 8, 0, 62, 21, 154, 0, 62,
+ 9, 154, 107, 21, 154, 107, 21, 154, 0, 63,
+ 117, 154, 107, 21, 154, 99, 160, 101, 0, 63,
+ 117, 154, 107, 21, 154, 99, 101, 0, 64, 121,
+ 122, 154, 97, 164, 98, 35, 21, 154, 65, 21,
+ 154, 0, 65, 0, 66, 0, 160, 117, 152, 107,
+ 21, 154, 0, 117, 152, 107, 21, 154, 0, 119,
+ 166, 0, 124, 99, 154, 107, 154, 101, 0, 162,
+ 107, 99, 154, 107, 154, 101, 0, 155, 0, 163,
+ 107, 155, 0, 163, 0, 0, 56, 55, 0, 55,
+ 0, 111, 124, 154, 107, 154, 0, 112, 124, 154,
+ 107, 154, 0, 113, 124, 154, 107, 154, 0, 45,
+ 155, 0, 114, 155, 107, 155, 0, 88, 155, 35,
+ 124, 0, 89, 155, 107, 155, 107, 155, 0, 92,
+ 155, 107, 124, 0, 93, 155, 107, 124, 0, 94,
+ 155, 107, 124, 0, 87, 162, 0, 165, 121, 122,
+ 154, 97, 164, 98, 0, 169, 0, 107, 163, 0,
+ 0, 34, 0, 0, 81, 124, 0, 81, 124, 107,
+ 53, 4, 0, 81, 124, 107, 15, 154, 0, 81,
+ 124, 107, 15, 154, 107, 53, 4, 0, 82, 124,
+ 0, 82, 124, 107, 53, 4, 0, 82, 124, 107,
+ 15, 154, 0, 82, 124, 107, 15, 154, 107, 53,
+ 4, 0, 83, 155, 0, 168, 84, 124, 154, 0,
+ 168, 85, 155, 107, 124, 154, 0, 86, 124, 154,
+ 167, 0
+};
#endif
-#if defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short int yysigned_char;
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 983, 984, 991, 992, 1001, 1001, 1001, 1001, 1001, 1002,
+ 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1005, 1005,
+ 1009, 1009, 1009, 1009, 1010, 1010, 1010, 1010, 1011, 1011,
+ 1012, 1012, 1015, 1018, 1022, 1022, 1023, 1024, 1025, 1028,
+ 1028, 1029, 1030, 1031, 1045, 1045, 1046, 1046, 1048, 1057,
+ 1057, 1057, 1057, 1057, 1057, 1057, 1058, 1058, 1058, 1058,
+ 1058, 1058, 1059, 1062, 1065, 1071, 1078, 1090, 1094, 1105,
+ 1114, 1117, 1125, 1129, 1134, 1135, 1138, 1141, 1151, 1176,
+ 1189, 1217, 1242, 1262, 1274, 1283, 1287, 1346, 1352, 1360,
+ 1365, 1370, 1373, 1376, 1383, 1393, 1424, 1431, 1452, 1459,
+ 1464, 1474, 1477, 1484, 1484, 1494, 1501, 1505, 1508, 1511,
+ 1524, 1544, 1546, 1550, 1554, 1556, 1558, 1563, 1564, 1566,
+ 1569, 1577, 1582, 1584, 1588, 1592, 1600, 1600, 1601, 1601,
+ 1603, 1609, 1614, 1620, 1623, 1628, 1632, 1636, 1716, 1716,
+ 1718, 1726, 1726, 1728, 1732, 1732, 1741, 1744, 1747, 1750,
+ 1753, 1756, 1759, 1762, 1786, 1793, 1796, 1801, 1801, 1807,
+ 1811, 1814, 1822, 1831, 1835, 1845, 1856, 1859, 1862, 1865,
+ 1868, 1882, 1886, 1939, 1942, 1948, 1956, 1966, 1973, 1978,
+ 1985, 1989, 1995, 1995, 1997, 2000, 2006, 2018, 2026, 2036,
+ 2048, 2055, 2062, 2069, 2074, 2093, 2115, 2129, 2186, 2192,
+ 2194, 2198, 2201, 2207, 2211, 2215, 2219, 2223, 2227, 2231,
+ 2235, 2239, 2246, 2256, 2269
+};
#endif
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 4
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1102
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 108
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 62
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 212
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 419
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 348
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const unsigned char yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 96, 97, 105, 2, 106, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 101, 94, 102, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 98, 95, 100, 2, 2, 2, 2, 2, 107,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 99, 2, 2, 103, 2, 104, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 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
-};
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned short int yyprhs[] =
-{
- 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
- 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
- 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
- 59, 61, 63, 65, 67, 70, 71, 73, 75, 77,
- 79, 80, 81, 83, 85, 87, 90, 92, 94, 96,
- 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
- 118, 120, 122, 124, 126, 128, 130, 132, 135, 140,
- 146, 152, 156, 159, 162, 164, 168, 170, 174, 176,
- 177, 182, 186, 190, 195, 200, 204, 207, 210, 213,
- 216, 219, 222, 225, 228, 231, 234, 241, 247, 256,
- 263, 270, 277, 284, 288, 290, 292, 294, 296, 299,
- 302, 305, 307, 312, 315, 321, 327, 331, 336, 337,
- 339, 341, 345, 349, 353, 357, 361, 363, 364, 366,
- 368, 370, 371, 374, 378, 380, 382, 386, 388, 389,
- 396, 398, 400, 404, 406, 408, 411, 412, 416, 418,
- 420, 422, 424, 426, 428, 430, 434, 436, 438, 440,
- 442, 444, 447, 450, 453, 457, 460, 461, 463, 466,
- 469, 473, 483, 493, 502, 516, 518, 520, 527, 533,
- 536, 543, 551, 553, 557, 559, 560, 563, 565, 571,
- 577, 583, 586, 591, 596, 603, 608, 613, 618, 621,
- 629, 631, 634, 635, 637, 638, 641, 647, 650, 656,
- 659, 664, 671
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","ESINT64VAL",
+"EUINT64VAL","SINTVAL","UINTVAL","FPVAL","VOID","BOOL","SBYTE","UBYTE","SHORT",
+"USHORT","INT","UINT","LONG","ULONG","FLOAT","DOUBLE","TYPE","LABEL","VAR_ID",
+"LABELSTR","STRINGCONSTANT","IMPLEMENTATION","ZEROINITIALIZER","TRUETOK","FALSETOK",
+"BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","VOLATILE","TO","DOTDOTDOT",
+"NULL_TOK","UNDEF","CONST","INTERNAL","LINKONCE","WEAK","APPENDING","OPAQUE",
+"NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN","POINTERSIZE","LITTLE","BIG","ALIGN",
+"DEPLIBS","CALL","TAIL","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK","RET","BR",
+"SWITCH","INVOKE","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV","REM","AND",
+"OR","XOR","SETLE","SETGE","SETLT","SETGT","SETEQ","SETNE","MALLOC","ALLOCA",
+"FREE","LOAD","STORE","GETELEMENTPTR","PHI_TOK","CAST","SELECT","SHL","SHR",
+"VAARG","VAARG_old","VANEXT_old","'='","'\\\\'","'('","')'","'['","'x'","']'",
+"'<'","'>'","'{'","'}'","'*'","','","'c'","INTVAL","EINT64VAL","ArithmeticOps",
+"LogicalOps","SetCondOps","ShiftOps","SIntType","UIntType","IntType","FPType",
+"OptAssign","OptLinkage","OptCallingConv","TypesV","UpRTypesV","Types","PrimType",
+"UpRTypes","TypeListI","ArgTypeListI","ConstVal","ConstExpr","ConstVector","GlobalType",
+"Module","FunctionList","ConstPool","BigOrLittle","TargetDefinition","LibrariesDefinition",
+"LibList","Name","OptName","ArgVal","ArgListH","ArgList","FunctionHeaderH","BEGIN",
+"FunctionHeader","END","Function","FunctionProto","@1","ConstValueRef","SymbolicValueRef",
+"ValueRef","ResolvedVal","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst",
+"JumpTable","Inst","PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal",
+"IndexList","OptVolatile","MemoryInst", NULL
};
+#endif
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short int yyrhs[] =
-{
- 133, 0, -1, 5, -1, 6, -1, 3, -1, 4,
- -1, 66, -1, 67, -1, 68, -1, 69, -1, 70,
- -1, 71, -1, 72, -1, 73, -1, 74, -1, 75,
- -1, 76, -1, 77, -1, 78, -1, 79, -1, 89,
- -1, 90, -1, 16, -1, 14, -1, 12, -1, 10,
- -1, 17, -1, 15, -1, 13, -1, 11, -1, 115,
- -1, 116, -1, 18, -1, 19, -1, 140, 94, -1,
- -1, 40, -1, 41, -1, 42, -1, 43, -1, -1,
- -1, 57, -1, 58, -1, 59, -1, 56, 4, -1,
- 124, -1, 8, -1, 126, -1, 8, -1, 126, -1,
- 9, -1, 10, -1, 11, -1, 12, -1, 13, -1,
- 14, -1, 15, -1, 16, -1, 17, -1, 18, -1,
- 19, -1, 20, -1, 21, -1, 44, -1, 125, -1,
- 153, -1, 95, 4, -1, 123, 96, 128, 97, -1,
- 98, 4, 99, 126, 100, -1, 101, 4, 99, 126,
- 102, -1, 103, 127, 104, -1, 103, 104, -1, 126,
- 105, -1, 126, -1, 127, 106, 126, -1, 127, -1,
- 127, 106, 36, -1, 36, -1, -1, 124, 98, 131,
- 100, -1, 124, 98, 100, -1, 124, 107, 24, -1,
- 124, 101, 131, 102, -1, 124, 103, 131, 104, -1,
- 124, 103, 104, -1, 124, 37, -1, 124, 38, -1,
- 124, 153, -1, 124, 130, -1, 124, 26, -1, 115,
- 110, -1, 116, 4, -1, 9, 27, -1, 9, 28,
- -1, 118, 7, -1, 87, 96, 129, 35, 124, 97,
- -1, 85, 96, 129, 167, 97, -1, 88, 96, 129,
- 106, 129, 106, 129, 97, -1, 111, 96, 129, 106,
- 129, 97, -1, 112, 96, 129, 106, 129, 97, -1,
- 113, 96, 129, 106, 129, 97, -1, 114, 96, 129,
- 106, 129, 97, -1, 131, 106, 129, -1, 129, -1,
- 32, -1, 33, -1, 134, -1, 134, 149, -1, 134,
- 150, -1, 134, 25, -1, 135, -1, 135, 119, 20,
- 122, -1, 135, 150, -1, 135, 119, 120, 132, 129,
- -1, 135, 119, 46, 132, 124, -1, 135, 47, 137,
- -1, 135, 53, 94, 138, -1, -1, 52, -1, 51,
- -1, 49, 94, 136, -1, 50, 94, 4, -1, 48,
- 94, 24, -1, 98, 139, 100, -1, 139, 106, 24,
- -1, 24, -1, -1, 22, -1, 24, -1, 140, -1,
- -1, 124, 141, -1, 143, 106, 142, -1, 142, -1,
- 143, -1, 143, 106, 36, -1, 36, -1, -1, 121,
- 122, 140, 96, 144, 97, -1, 29, -1, 103, -1,
- 120, 145, 146, -1, 30, -1, 104, -1, 156, 148,
- -1, -1, 31, 151, 145, -1, 3, -1, 4, -1,
- 7, -1, 27, -1, 28, -1, 37, -1, 38, -1,
- 101, 131, 102, -1, 130, -1, 109, -1, 140, -1,
- 153, -1, 152, -1, 124, 154, -1, 156, 157, -1,
- 147, 157, -1, 158, 119, 159, -1, 158, 161, -1,
- -1, 23, -1, 60, 155, -1, 60, 8, -1, 61,
- 21, 154, -1, 61, 9, 154, 106, 21, 154, 106,
- 21, 154, -1, 62, 117, 154, 106, 21, 154, 98,
- 160, 100, -1, 62, 117, 154, 106, 21, 154, 98,
- 100, -1, 63, 121, 122, 154, 96, 164, 97, 35,
- 21, 154, 64, 21, 154, -1, 64, -1, 65, -1,
- 160, 117, 152, 106, 21, 154, -1, 117, 152, 106,
- 21, 154, -1, 119, 166, -1, 124, 98, 154, 106,
- 154, 100, -1, 162, 106, 98, 154, 106, 154, 100,
- -1, 155, -1, 163, 106, 155, -1, 163, -1, -1,
- 55, 54, -1, 54, -1, 111, 124, 154, 106, 154,
- -1, 112, 124, 154, 106, 154, -1, 113, 124, 154,
- 106, 154, -1, 45, 155, -1, 114, 155, 106, 155,
- -1, 87, 155, 35, 124, -1, 88, 155, 106, 155,
- 106, 155, -1, 91, 155, 106, 124, -1, 92, 155,
- 106, 124, -1, 93, 155, 106, 124, -1, 86, 162,
- -1, 165, 121, 122, 154, 96, 164, 97, -1, 169,
- -1, 106, 163, -1, -1, 34, -1, -1, 80, 124,
- -1, 80, 124, 106, 15, 154, -1, 81, 124, -1,
- 81, 124, 106, 15, 154, -1, 82, 155, -1, 168,
- 83, 124, 154, -1, 168, 84, 155, 106, 124, 154,
- -1, 85, 124, 154, 167, -1
+static const short yyr1[] = { 0,
+ 109, 109, 110, 110, 111, 111, 111, 111, 111, 112,
+ 112, 112, 113, 113, 113, 113, 113, 113, 114, 114,
+ 115, 115, 115, 115, 116, 116, 116, 116, 117, 117,
+ 118, 118, 119, 119, 120, 120, 120, 120, 120, 121,
+ 121, 121, 121, 121, 122, 122, 123, 123, 124, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 127, 127, 128, 128, 128, 128, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 130, 130, 130, 130, 130, 130,
+ 130, 131, 131, 132, 132, 133, 134, 134, 134, 134,
+ 135, 135, 135, 135, 135, 135, 135, 136, 136, 137,
+ 137, 137, 138, 139, 139, 139, 140, 140, 141, 141,
+ 142, 143, 143, 144, 144, 144, 144, 145, 146, 146,
+ 147, 148, 148, 149, 151, 150, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 153, 153, 154, 154, 155,
+ 156, 156, 157, 158, 158, 158, 159, 159, 159, 159,
+ 159, 159, 159, 159, 159, 160, 160, 161, 162, 162,
+ 163, 163, 164, 164, 165, 165, 166, 166, 166, 166,
+ 166, 166, 166, 166, 166, 166, 166, 166, 166, 167,
+ 167, 168, 168, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169
};
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
-{<