Implemented shl, shl, & load instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp
index f3138b2..5d384ec 100644
--- a/lib/AsmParser/llvmAsmParser.cpp
+++ b/lib/AsmParser/llvmAsmParser.cpp
@@ -40,31 +40,33 @@
#define END 283
#define DECLARE 284
#define TO 285
-#define PHI 286
-#define CALL 287
-#define CAST 288
-#define RET 289
-#define BR 290
-#define SWITCH 291
-#define NOT 292
-#define ADD 293
-#define SUB 294
-#define MUL 295
-#define DIV 296
-#define REM 297
-#define SETLE 298
-#define SETGE 299
-#define SETLT 300
-#define SETGT 301
-#define SETEQ 302
-#define SETNE 303
-#define MALLOC 304
-#define ALLOCA 305
-#define FREE 306
-#define LOAD 307
-#define STORE 308
-#define GETFIELD 309
-#define PUTFIELD 310
+#define RET 286
+#define BR 287
+#define SWITCH 288
+#define NOT 289
+#define ADD 290
+#define SUB 291
+#define MUL 292
+#define DIV 293
+#define REM 294
+#define SETLE 295
+#define SETGE 296
+#define SETLT 297
+#define SETGT 298
+#define SETEQ 299
+#define SETNE 300
+#define MALLOC 301
+#define ALLOCA 302
+#define FREE 303
+#define LOAD 304
+#define STORE 305
+#define GETFIELD 306
+#define PUTFIELD 307
+#define PHI 308
+#define CALL 309
+#define CAST 310
+#define SHL 311
+#define SHR 312
#line 13 "llvmAsmParser.y"
@@ -420,6 +422,7 @@
Instruction::BinaryOps BinaryOpVal;
Instruction::TermOps TermOpVal;
Instruction::MemoryOps MemOpVal;
+ Instruction::OtherOps OtherOpVal;
} YYSTYPE;
#include <stdio.h>
@@ -431,26 +434,26 @@
-#define YYFINAL 234
+#define YYFINAL 248
#define YYFLAG -32768
-#define YYNTBASE 67
+#define YYNTBASE 69
-#define YYTRANSLATE(x) ((unsigned)(x) <= 310 ? yytranslate[x] : 103)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 312 ? yytranslate[x] : 107)
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, 64,
- 65, 66, 2, 63, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 66,
+ 67, 68, 2, 65, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 57, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 59, 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,
- 58, 2, 59, 2, 2, 2, 2, 2, 2, 2,
+ 60, 2, 61, 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, 60,
- 2, 2, 61, 2, 62, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 62,
+ 2, 2, 63, 2, 64, 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,
@@ -468,7 +471,8 @@
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
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58
};
#if YYDEBUG != 0
@@ -477,76 +481,78 @@
20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
- 80, 82, 84, 87, 88, 91, 94, 97, 100, 103,
- 106, 113, 119, 128, 136, 143, 148, 152, 154, 158,
- 159, 161, 164, 167, 169, 170, 173, 177, 179, 181,
- 182, 188, 192, 195, 197, 199, 201, 203, 205, 207,
- 209, 211, 213, 218, 222, 226, 232, 236, 239, 242,
- 244, 248, 251, 254, 257, 261, 264, 265, 269, 272,
- 276, 286, 296, 303, 309, 312, 319, 327, 330, 334,
- 336, 337, 343, 347, 353, 356, 363, 365, 368, 374,
- 377, 383
+ 80, 82, 84, 86, 88, 91, 92, 95, 98, 101,
+ 104, 107, 110, 117, 123, 132, 140, 147, 152, 156,
+ 158, 162, 163, 165, 168, 171, 173, 174, 177, 181,
+ 183, 185, 186, 192, 196, 199, 201, 203, 205, 207,
+ 209, 211, 213, 215, 217, 222, 226, 230, 236, 240,
+ 243, 246, 248, 252, 255, 258, 261, 265, 268, 269,
+ 273, 276, 280, 290, 300, 307, 313, 316, 323, 331,
+ 334, 338, 340, 341, 347, 351, 358, 364, 367, 374,
+ 376, 379, 380, 383, 389, 392, 398, 402
};
static const short yyrhs[] = { 5,
0, 6, 0, 3, 0, 4, 0, 8, 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, 69, 0, 7, 0, 38,
- 0, 39, 0, 40, 0, 41, 0, 42, 0, 43,
- 0, 44, 0, 45, 0, 46, 0, 47, 0, 48,
- 0, 49, 0, 15, 0, 13, 0, 11, 0, 9,
- 0, 16, 0, 14, 0, 12, 0, 10, 0, 73,
- 0, 74, 0, 22, 57, 0, 0, 73, 68, 0,
- 74, 4, 0, 8, 26, 0, 8, 27, 0, 19,
- 24, 0, 20, 69, 0, 58, 69, 59, 58, 78,
- 59, 0, 58, 69, 59, 58, 59, 0, 58, 4,
- 60, 69, 59, 58, 78, 59, 0, 58, 4, 60,
- 69, 59, 58, 59, 0, 61, 91, 62, 61, 78,
- 62, 0, 61, 62, 61, 62, 0, 78, 63, 77,
- 0, 77, 0, 79, 76, 77, 0, 0, 81, 0,
- 81, 88, 0, 79, 25, 0, 22, 0, 0, 69,
- 82, 0, 83, 63, 84, 0, 83, 0, 84, 0,
- 0, 70, 24, 64, 85, 65, 0, 86, 79, 28,
- 0, 92, 29, 0, 3, 0, 4, 0, 26, 0,
- 27, 0, 24, 0, 67, 0, 22, 0, 89, 0,
- 90, 0, 70, 64, 91, 65, 0, 70, 64, 65,
- 0, 58, 69, 59, 0, 58, 4, 60, 69, 59,
- 0, 61, 91, 62, 0, 61, 62, 0, 69, 66,
- 0, 69, 0, 91, 63, 69, 0, 92, 93, 0,
- 87, 93, 0, 94, 95, 0, 23, 94, 95, 0,
- 94, 97, 0, 0, 35, 69, 90, 0, 35, 7,
- 0, 36, 21, 90, 0, 36, 8, 90, 63, 21,
- 90, 63, 21, 90, 0, 37, 75, 90, 63, 21,
- 90, 58, 96, 59, 0, 96, 75, 89, 63, 21,
- 90, 0, 75, 89, 63, 21, 90, 0, 76, 101,
- 0, 69, 58, 90, 63, 90, 59, 0, 98, 63,
- 58, 90, 63, 90, 59, 0, 69, 90, 0, 99,
- 63, 90, 0, 99, 0, 0, 72, 69, 90, 63,
- 90, 0, 71, 69, 90, 0, 34, 69, 90, 31,
- 69, 0, 32, 98, 0, 33, 69, 90, 64, 100,
- 65, 0, 102, 0, 50, 69, 0, 50, 69, 63,
- 14, 90, 0, 51, 69, 0, 51, 69, 63, 14,
- 90, 0, 52, 69, 90, 0
+ 0, 20, 0, 21, 0, 71, 0, 7, 0, 35,
+ 0, 36, 0, 37, 0, 38, 0, 39, 0, 40,
+ 0, 41, 0, 42, 0, 43, 0, 44, 0, 45,
+ 0, 46, 0, 57, 0, 58, 0, 15, 0, 13,
+ 0, 11, 0, 9, 0, 16, 0, 14, 0, 12,
+ 0, 10, 0, 76, 0, 77, 0, 22, 59, 0,
+ 0, 76, 70, 0, 77, 4, 0, 8, 26, 0,
+ 8, 27, 0, 19, 24, 0, 20, 71, 0, 60,
+ 71, 61, 60, 81, 61, 0, 60, 71, 61, 60,
+ 61, 0, 60, 4, 62, 71, 61, 60, 81, 61,
+ 0, 60, 4, 62, 71, 61, 60, 61, 0, 63,
+ 94, 64, 63, 81, 64, 0, 63, 64, 63, 64,
+ 0, 81, 65, 80, 0, 80, 0, 82, 79, 80,
+ 0, 0, 84, 0, 84, 91, 0, 82, 25, 0,
+ 22, 0, 0, 71, 85, 0, 86, 65, 87, 0,
+ 86, 0, 87, 0, 0, 72, 24, 66, 88, 67,
+ 0, 89, 82, 28, 0, 95, 29, 0, 3, 0,
+ 4, 0, 26, 0, 27, 0, 24, 0, 69, 0,
+ 22, 0, 92, 0, 93, 0, 72, 66, 94, 67,
+ 0, 72, 66, 67, 0, 60, 71, 61, 0, 60,
+ 4, 62, 71, 61, 0, 63, 94, 64, 0, 63,
+ 64, 0, 71, 68, 0, 71, 0, 94, 65, 71,
+ 0, 95, 96, 0, 90, 96, 0, 97, 98, 0,
+ 23, 97, 98, 0, 97, 100, 0, 0, 32, 71,
+ 93, 0, 32, 7, 0, 33, 21, 93, 0, 33,
+ 8, 93, 65, 21, 93, 65, 21, 93, 0, 34,
+ 78, 93, 65, 21, 93, 60, 99, 61, 0, 99,
+ 78, 92, 65, 21, 93, 0, 78, 92, 65, 21,
+ 93, 0, 79, 104, 0, 71, 60, 93, 65, 93,
+ 61, 0, 101, 65, 60, 93, 65, 93, 61, 0,
+ 71, 93, 0, 102, 65, 93, 0, 102, 0, 0,
+ 74, 71, 93, 65, 93, 0, 73, 71, 93, 0,
+ 75, 71, 93, 65, 71, 93, 0, 56, 71, 93,
+ 31, 71, 0, 54, 101, 0, 55, 71, 93, 66,
+ 103, 67, 0, 106, 0, 65, 81, 0, 0, 47,
+ 71, 0, 47, 71, 65, 14, 93, 0, 48, 71,
+ 0, 48, 71, 65, 14, 93, 0, 49, 71, 93,
+ 0, 50, 71, 93, 105, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 432, 433, 440, 441, 452, 452, 452, 452, 452, 452,
- 452, 453, 453, 453, 453, 453, 453, 453, 456, 456,
- 461, 462, 462, 462, 462, 462, 463, 463, 463, 463,
- 463, 463, 467, 467, 467, 467, 468, 468, 468, 468,
- 469, 469, 471, 474, 478, 483, 488, 491, 494, 500,
- 503, 516, 520, 538, 545, 553, 567, 570, 576, 584,
- 595, 600, 605, 614, 614, 616, 624, 628, 633, 636,
- 640, 667, 671, 680, 683, 686, 689, 692, 697, 700,
- 703, 710, 718, 723, 727, 730, 733, 738, 741, 746,
- 750, 755, 759, 768, 773, 782, 786, 790, 793, 796,
- 799, 804, 815, 823, 833, 841, 846, 853, 857, 863,
- 863, 865, 870, 875, 878, 889, 926, 930, 935, 944,
- 949, 958
+ 434, 435, 442, 443, 454, 454, 454, 454, 454, 454,
+ 454, 455, 455, 455, 455, 455, 455, 455, 458, 458,
+ 463, 464, 464, 464, 464, 464, 465, 465, 465, 465,
+ 465, 465, 466, 466, 470, 470, 470, 470, 471, 471,
+ 471, 471, 472, 472, 474, 477, 481, 486, 491, 494,
+ 497, 503, 506, 519, 523, 541, 548, 556, 570, 573,
+ 579, 587, 598, 603, 608, 617, 617, 619, 627, 631,
+ 636, 639, 643, 670, 674, 683, 686, 689, 692, 695,
+ 700, 703, 706, 713, 721, 726, 730, 733, 736, 741,
+ 744, 749, 753, 758, 762, 771, 776, 785, 789, 793,
+ 796, 799, 802, 807, 818, 826, 836, 844, 849, 856,
+ 860, 866, 866, 868, 873, 878, 882, 885, 896, 933,
+ 938, 940, 944, 949, 958, 963, 972, 978
};
#endif
@@ -557,32 +563,33 @@
"EUINT64VAL","SINTVAL","UINTVAL","VOID","BOOL","SBYTE","UBYTE","SHORT","USHORT",
"INT","UINT","LONG","ULONG","FLOAT","DOUBLE","STRING","TYPE","LABEL","VAR_ID",
"LABELSTR","STRINGCONSTANT","IMPLEMENTATION","TRUE","FALSE","BEGINTOK","END",
-"DECLARE","TO","PHI","CALL","CAST","RET","BR","SWITCH","NOT","ADD","SUB","MUL",
-"DIV","REM","SETLE","SETGE","SETLT","SETGT","SETEQ","SETNE","MALLOC","ALLOCA",
-"FREE","LOAD","STORE","GETFIELD","PUTFIELD","'='","'['","']'","'x'","'{'","'}'",
-"','","'('","')'","'*'","INTVAL","EINT64VAL","Types","TypesV","UnaryOps","BinaryOps",
-"SIntType","UIntType","IntType","OptAssign","ConstVal","ConstVector","ConstPool",
-"Module","MethodList","OptVAR_ID","ArgVal","ArgListH","ArgList","MethodHeaderH",
-"MethodHeader","Method","ConstValueRef","ValueRef","TypeList","BasicBlockList",
-"BasicBlock","InstructionList","BBTerminatorInst","JumpTable","Inst","PHIList",
-"ValueRefList","ValueRefListE","InstVal","MemoryInst", NULL
+"DECLARE","TO","RET","BR","SWITCH","NOT","ADD","SUB","MUL","DIV","REM","SETLE",
+"SETGE","SETLT","SETGT","SETEQ","SETNE","MALLOC","ALLOCA","FREE","LOAD","STORE",
+"GETFIELD","PUTFIELD","PHI","CALL","CAST","SHL","SHR","'='","'['","']'","'x'",
+"'{'","'}'","','","'('","')'","'*'","INTVAL","EINT64VAL","Types","TypesV","UnaryOps",
+"BinaryOps","ShiftOps","SIntType","UIntType","IntType","OptAssign","ConstVal",
+"ConstVector","ConstPool","Module","MethodList","OptVAR_ID","ArgVal","ArgListH",
+"ArgList","MethodHeaderH","MethodHeader","Method","ConstValueRef","ValueRef",
+"TypeList","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst",
+"JumpTable","Inst","PHIList","ValueRefList","ValueRefListE","InstVal","UByteList",
+"MemoryInst", NULL
};
#endif
static const short yyr1[] = { 0,
- 67, 67, 68, 68, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 70, 70,
- 71, 72, 72, 72, 72, 72, 72, 72, 72, 72,
- 72, 72, 73, 73, 73, 73, 74, 74, 74, 74,
- 75, 75, 76, 76, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 78, 78, 79, 79,
- 80, 81, 81, 82, 82, 83, 84, 84, 85, 85,
- 86, 87, 88, 89, 89, 89, 89, 89, 90, 90,
- 90, 69, 69, 69, 69, 69, 69, 69, 69, 91,
- 91, 92, 92, 93, 93, 94, 94, 95, 95, 95,
- 95, 95, 96, 96, 97, 98, 98, 99, 99, 100,
- 100, 101, 101, 101, 101, 101, 101, 102, 102, 102,
- 102, 102
+ 69, 69, 70, 70, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71, 72, 72,
+ 73, 74, 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 75, 75, 76, 76, 76, 76, 77, 77,
+ 77, 77, 78, 78, 79, 79, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 81, 81,
+ 82, 82, 83, 84, 84, 85, 85, 86, 87, 87,
+ 88, 88, 89, 90, 91, 92, 92, 92, 92, 92,
+ 93, 93, 93, 71, 71, 71, 71, 71, 71, 71,
+ 71, 94, 94, 95, 95, 96, 96, 97, 97, 98,
+ 98, 98, 98, 98, 99, 99, 100, 101, 101, 102,
+ 102, 103, 103, 104, 104, 104, 104, 104, 104, 104,
+ 105, 105, 106, 106, 106, 106, 106, 106
};
static const short yyr2[] = { 0,
@@ -590,199 +597,207 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 0, 2, 2, 2, 2, 2, 2,
- 6, 5, 8, 7, 6, 4, 3, 1, 3, 0,
- 1, 2, 2, 1, 0, 2, 3, 1, 1, 0,
- 5, 3, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 4, 3, 3, 5, 3, 2, 2, 1,
- 3, 2, 2, 2, 3, 2, 0, 3, 2, 3,
- 9, 9, 6, 5, 2, 6, 7, 2, 3, 1,
- 0, 5, 3, 5, 2, 6, 1, 2, 5, 2,
- 5, 3
+ 1, 1, 1, 1, 2, 0, 2, 2, 2, 2,
+ 2, 2, 6, 5, 8, 7, 6, 4, 3, 1,
+ 3, 0, 1, 2, 2, 1, 0, 2, 3, 1,
+ 1, 0, 5, 3, 2, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 4, 3, 3, 5, 3, 2,
+ 2, 1, 3, 2, 2, 2, 3, 2, 0, 3,
+ 2, 3, 9, 9, 6, 5, 2, 6, 7, 2,
+ 3, 1, 0, 5, 3, 6, 5, 2, 6, 1,
+ 2, 0, 2, 5, 2, 5, 3, 4
};
-static const short yydefact[] = { 60,
- 44, 61, 0, 63, 0, 74, 75, 1, 2, 20,
+static const short yydefact[] = { 62,
+ 46, 63, 0, 65, 0, 76, 77, 1, 2, 20,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 80, 78, 76, 77, 0, 0,
- 79, 19, 0, 60, 97, 62, 81, 82, 97, 43,
- 0, 36, 40, 35, 39, 34, 38, 33, 37, 0,
- 0, 0, 0, 0, 0, 59, 75, 19, 0, 88,
- 90, 0, 89, 0, 0, 44, 97, 93, 44, 73,
- 92, 47, 48, 49, 50, 75, 19, 0, 0, 3,
- 4, 45, 46, 0, 85, 87, 0, 70, 84, 0,
- 72, 44, 0, 0, 0, 0, 94, 96, 0, 0,
- 0, 0, 19, 91, 65, 68, 69, 0, 83, 95,
- 99, 19, 0, 0, 41, 42, 0, 0, 0, 0,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 0, 0, 0, 0, 0, 105, 117, 19,
- 0, 56, 0, 86, 64, 66, 0, 71, 98, 0,
- 100, 0, 19, 115, 19, 19, 118, 120, 19, 19,
- 19, 0, 52, 58, 0, 0, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 122, 113, 0, 0, 51,
- 0, 55, 0, 0, 0, 0, 111, 0, 0, 0,
- 0, 54, 0, 57, 0, 0, 0, 0, 19, 110,
- 0, 114, 119, 121, 112, 53, 0, 0, 0, 0,
- 108, 0, 116, 0, 0, 0, 106, 0, 109, 101,
- 0, 102, 0, 107, 0, 0, 0, 0, 104, 0,
- 103, 0, 0, 0
+ 15, 16, 17, 18, 82, 80, 78, 79, 0, 0,
+ 81, 19, 0, 62, 99, 64, 83, 84, 99, 45,
+ 0, 38, 42, 37, 41, 36, 40, 35, 39, 0,
+ 0, 0, 0, 0, 0, 61, 77, 19, 0, 90,
+ 92, 0, 91, 0, 0, 46, 99, 95, 46, 75,
+ 94, 49, 50, 51, 52, 77, 19, 0, 0, 3,
+ 4, 47, 48, 0, 87, 89, 0, 72, 86, 0,
+ 74, 46, 0, 0, 0, 0, 96, 98, 0, 0,
+ 0, 0, 19, 93, 67, 70, 71, 0, 85, 97,
+ 101, 19, 0, 0, 43, 44, 0, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
+ 0, 0, 0, 0, 0, 0, 33, 34, 0, 0,
+ 0, 107, 120, 19, 0, 58, 0, 88, 66, 68,
+ 0, 73, 100, 0, 102, 0, 123, 125, 19, 19,
+ 19, 118, 19, 19, 19, 19, 19, 0, 54, 60,
+ 0, 0, 69, 0, 0, 0, 0, 127, 122, 0,
+ 0, 0, 0, 115, 0, 0, 0, 53, 0, 57,
+ 0, 0, 0, 0, 0, 128, 0, 0, 113, 0,
+ 0, 0, 56, 0, 59, 0, 0, 124, 126, 121,
+ 0, 0, 19, 112, 0, 117, 114, 19, 55, 0,
+ 0, 0, 0, 110, 0, 119, 116, 0, 0, 0,
+ 108, 0, 111, 103, 0, 104, 0, 109, 0, 0,
+ 0, 0, 106, 0, 105, 0, 0, 0
};
static const short yydefgoto[] = { 31,
- 82, 61, 59, 136, 137, 54, 55, 117, 5, 164,
- 165, 1, 232, 2, 146, 106, 107, 108, 34, 35,
- 36, 37, 38, 62, 39, 68, 69, 97, 216, 98,
- 154, 200, 201, 138, 139
+ 82, 61, 59, 139, 140, 141, 54, 55, 117, 5,
+ 170, 171, 1, 246, 2, 150, 106, 107, 108, 34,
+ 35, 36, 37, 38, 62, 39, 68, 69, 97, 230,
+ 98, 162, 214, 215, 142, 196, 143
};
static const short yypact[] = {-32768,
- 7, 319, 12,-32768, 26,-32768,-32768,-32768,-32768,-32768,
+ 19, 342, -51,-32768, 99,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 378, 234,
--32768, 13, -21,-32768, 86,-32768,-32768,-32768, 85,-32768,
- -22,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 88,
- 319, 403, 294, 64, 121,-32768, 66, 24, 74,-32768,
- -12, 81,-32768, 83, 209, 102,-32768,-32768, 22,-32768,
--32768,-32768,-32768,-32768, -12, 68, 54, 87, 96,-32768,
--32768,-32768,-32768, 319,-32768,-32768, 319, 319,-32768, 92,
--32768, 22, 462, 45, 189, 239,-32768,-32768, 319, 108,
- 113, 115, 63, -12, -1, 119,-32768, 127,-32768,-32768,
- 125, 4, 157, 157,-32768,-32768, 157, 319, 319, 319,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 319, 319, 319, 319, 319,-32768,-32768, 80,
- 3,-32768, 26,-32768,-32768,-32768, 319,-32768,-32768, 143,
--32768, 144, -33, 146, 4, 4, 90, 124, 4, 4,
- 4, 152,-32768,-32768, -8, 106,-32768, 211, 213, 157,
- 199, 195, 231, 249, 250,-32768,-32768, 202, 91,-32768,
- 26,-32768, 157, 157, 203, 157, 319, 319, 157, 157,
- 157,-32768, 33,-32768, 205, 217, 157, 206, 4, 230,
- 229, -12,-32768,-32768,-32768,-32768, 255, 189, 258, 157,
--32768, 157,-32768, 157, 170, 62,-32768, 260,-32768,-32768,
- 279,-32768, 170,-32768, 323, 284, 157, 327,-32768, 157,
--32768, 349, 350,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 403, 255,
+-32768, -3, -18,-32768, 142,-32768,-32768,-32768, 55,-32768,
+ 68,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 117,
+ 342, 428, 317, 118, 163,-32768, 131, 59, 112,-32768,
+ 11, 61,-32768, 129, 230, 95,-32768,-32768, 124,-32768,
+-32768,-32768,-32768,-32768, 11, 134, 82, 139, 96,-32768,
+-32768,-32768,-32768, 342,-32768,-32768, 342, 342,-32768, 75,
+-32768, 124, 489, 16, 160, 482,-32768,-32768, 342, 143,
+ 140, 144, 116, 11, 21, 145,-32768, 138,-32768,-32768,
+ 146, -1, 66, 66,-32768,-32768, 66,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 342,
+ 342, 342, 342, 342, 342, 342,-32768,-32768, 342, 342,
+ 342,-32768,-32768, 122, 20,-32768, 99,-32768,-32768,-32768,
+ 342,-32768,-32768, 149,-32768, 150, 98, 126, -1, -1,
+ 6, 152, -1, -1, -1, -1, -1, 148,-32768,-32768,
+ -54, 123,-32768, 188, 197, 205, 206,-32768, 156, 66,
+ 162, 157, 193,-32768, 161, 165, 43,-32768, 99,-32768,
+ 66, 66, 66, 66, 99,-32768, 166, 66, 342, 342,
+ 66, 342,-32768, -19,-32768, 190, 167,-32768,-32768, 213,
+ 66, 215, -1, 218, 158, 11,-32768, -1,-32768, 207,
+ 160, 192, 66,-32768, 66,-32768,-32768, 66, 72, 3,
+-32768, 223,-32768,-32768, 220,-32768, 72,-32768, 265, 222,
+ 66, 267,-32768, 66,-32768, 289, 291,-32768
};
static const short yypgoto[] = {-32768,
--32768, -2, 351,-32768,-32768, -93, -89, -128, -45, -4,
- -123, 317,-32768,-32768,-32768,-32768, 207,-32768,-32768,-32768,
--32768, -134, -19, -5,-32768, 318, 291, 267,-32768,-32768,
--32768,-32768,-32768,-32768,-32768
+-32768, -2, 290,-32768,-32768,-32768, -86, -85, -183, -47,
+ -4, -127, 260,-32768,-32768,-32768,-32768, 147,-32768,-32768,
+-32768,-32768, -113, -12, 8,-32768, 256, 229, 208,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768
};
-#define YYLAST 523
+#define YYLAST 552
static const short yytable[] = { 32,
- 56, 115, 64, 72, 73, 116, 6, 7, 8, 9,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 166,
- 145, 50, 51, 96, 170, 25, 58, 26, 3, 27,
- 28, 4, 63, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 65, 3, 50, 51, 96, 79, 75, 77,
- 180, -19, 113, 63, 181, 193, 93, 94, 95, 90,
- 52, 163, -19, 53, 63, 114, 80, 81, 40, 63,
- 42, 43, 44, 45, 46, 47, 48, 49, 63, 215,
- 221, 103, 85, 52, 104, 105, 53, 223, 226, 63,
- 112, 206, 149, 150, 151, 181, 140, 152, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 67, 67, 50,
- 51, 74, 100, 70, 115, 153, 155, 156, 116, 63,
- 222, 144, 115, 3, 83, 84, 116, 99, 63, 91,
- 157, 158, 159, 160, 161, 172, 173, 65, 162, 176,
- 177, 178, 86, 87, 105, 63, 88, 101, 52, 192,
- 185, 53, 174, -19, 87, 63, 109, 102, 87, 6,
- 7, 8, 9, 195, 196, 141, 198, 182, 181, 203,
- 204, 205, 6, 7, 142, 143, 194, 209, 25, 211,
- 26, 147, 27, 28, 199, 202, 175, -19, -20, 63,
- 218, 148, 219, 26, 220, 27, 28, 42, 43, 44,
- 45, 46, 47, 48, 49, 168, 169, 229, 171, 179,
- 231, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 183, 26, 184, 27, 28, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 186, 26, 187, 27,
- 28, 188, 189, 190, 191, 197, 29, 207, 210, 30,
- 118, 119, 120, 89, 208, 214, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 29, 212, 213, 30, 60, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 217, 26, 224, 27,
- 28, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 225, 26, 227, 27, 28, 228, 230, 233, 234,
- 66, 29, 33, 167, 30, 78, 71, 92, 110, 0,
+ 56, 6, 7, 8, 9, 64, 188, 40, 115, 116,
+ 189, 42, 43, 44, 45, 46, 47, 48, 49, 172,
+ 25, 96, 26, 113, 27, 28, 58, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 114, 229, 50, 51,
+ 3, 219, 149, 4, 96, 189, 237, 65, 75, 77,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 204,
+ 79, 50, 51, 236, 63, 180, 63, 210, 6, 7,
+ 8, 9, 90, 63, 6, 7, -19, 67, 63, 52,
+ 169, 103, 53, 70, 104, 105, -19, 25, 63, 26,
+ 112, 27, 28, 72, 73, 26, 144, 27, 28, 153,
+ 154, 155, 52, 203, 156, 53, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 235, 3, 50, 51, 85,
+ 80, 81, 91, 240, 86, 87, 63, 157, 158, 159,
+ 160, 161, 163, 164, 115, 116, 165, 166, 167, 87,
+ 74, 109, 100, 115, 116, 3, 178, 179, 105, 63,
+ 182, 183, 184, 185, 186, 93, 94, 95, 52, 102,
+ 87, 53, 176, -19, 67, 63, 83, 197, 42, 43,
+ 44, 45, 46, 47, 48, 49, 148, 65, 206, 207,
+ 208, 209, 168, 63, 205, 212, 190, 189, 217, 63,
+ 177, -19, 84, 63, 88, 99, 213, 216, 222, 218,
+ 224, 101, 145, 146, 152, 227, 147, 187, 191, 151,
+ 232, -20, 233, 174, 175, 234, 181, 192, 193, 194,
+ 195, 198, 199, 200, 226, 201, 221, 228, 243, 202,
+ 211, 245, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 231, 26, 220, 27, 28, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 189, 26, 223,
+ 27, 28, 225, 238, 239, 241, 242, 244, 247, 29,
+ 248, 33, 30, 66, 71, 92, 89, 173, 0, 110,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 29, 0, 0, 30,
- 6, 57, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 0, 26, 0, 27, 28, 6, 76, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 0, 26, 0, 27, 28,
- 0, 0, 0, 0, 0, 29, 0, 0, 30, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 29, 0, 0, 30, 6, 7, 8, 9, 111, 11,
+ 0, 0, 0, 0, 29, 0, 0, 30, 60, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 0,
+ 26, 0, 27, 28, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 0, 26, 0, 27, 28, 0,
+ 0, 0, 0, 0, 0, 0, 29, 0, 0, 30,
+ 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 29, 0, 0, 30, 6, 57, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 0, 26, 0, 27, 28,
+ 6, 76, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 0, 26, 0, 27, 28, 0, 0, 0, 0, 0,
+ 0, 0, 29, 0, 0, 30, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
- 0, 0, 30
+ 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
+ 30, 6, 7, 8, 9, 111, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 0, 26, 0, 27, 28, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 0, 0, 0, 134, 135, 136, 137, 138,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
+ 0, 30
};
static const short yycheck[] = { 2,
- 5, 95, 24, 26, 27, 95, 3, 4, 5, 6,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 143,
- 22, 19, 20, 69, 58, 22, 29, 24, 22, 26,
- 27, 25, 66, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 64, 22, 19, 20, 92, 53, 51, 52,
- 59, 64, 8, 66, 63, 179, 35, 36, 37, 65,
- 58, 59, 64, 61, 66, 21, 3, 4, 57, 66,
- 9, 10, 11, 12, 13, 14, 15, 16, 66, 208,
- 215, 84, 59, 58, 87, 88, 61, 216, 223, 66,
- 93, 59, 112, 113, 114, 63, 99, 117, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 23, 23, 19,
- 20, 24, 59, 29, 208, 118, 119, 120, 208, 66,
- 59, 59, 216, 22, 4, 60, 216, 60, 66, 28,
- 133, 134, 135, 136, 137, 155, 156, 64, 59, 159,
- 160, 161, 62, 63, 147, 66, 64, 61, 58, 59,
- 170, 61, 63, 64, 63, 66, 65, 62, 63, 3,
- 4, 5, 6, 183, 184, 58, 186, 62, 63, 189,
- 190, 191, 3, 4, 62, 61, 181, 197, 22, 199,
- 24, 63, 26, 27, 187, 188, 63, 64, 64, 66,
- 210, 65, 212, 24, 214, 26, 27, 9, 10, 11,
- 12, 13, 14, 15, 16, 63, 63, 227, 63, 58,
- 230, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 21, 24, 21, 26, 27, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 58, 24, 64, 26,
- 27, 31, 14, 14, 63, 63, 58, 63, 63, 61,
- 32, 33, 34, 65, 58, 21, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, 58, 63, 65, 61, 62, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 59, 24, 59, 26,
- 27, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 63, 24, 21, 26, 27, 63, 21, 0, 0,
- 34, 58, 2, 147, 61, 62, 39, 67, 92, -1,
+ 5, 3, 4, 5, 6, 24, 61, 59, 95, 95,
+ 65, 9, 10, 11, 12, 13, 14, 15, 16, 147,
+ 22, 69, 24, 8, 26, 27, 29, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 21, 221, 19, 20,
+ 22, 61, 22, 25, 92, 65, 230, 66, 51, 52,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 187,
+ 53, 19, 20, 61, 68, 60, 68, 195, 3, 4,
+ 5, 6, 65, 68, 3, 4, 66, 23, 68, 60,
+ 61, 84, 63, 29, 87, 88, 66, 22, 68, 24,
+ 93, 26, 27, 26, 27, 24, 99, 26, 27, 112,
+ 113, 114, 60, 61, 117, 63, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 229, 22, 19, 20, 61,
+ 3, 4, 28, 237, 64, 65, 68, 130, 131, 132,
+ 133, 134, 135, 136, 221, 221, 139, 140, 141, 65,
+ 24, 67, 61, 230, 230, 22, 159, 160, 151, 68,
+ 163, 164, 165, 166, 167, 32, 33, 34, 60, 64,
+ 65, 63, 65, 66, 23, 68, 4, 180, 9, 10,
+ 11, 12, 13, 14, 15, 16, 61, 66, 191, 192,
+ 193, 194, 61, 68, 189, 198, 64, 65, 201, 68,
+ 65, 66, 62, 68, 66, 62, 199, 200, 211, 202,
+ 213, 63, 60, 64, 67, 218, 63, 60, 21, 65,
+ 223, 66, 225, 65, 65, 228, 65, 21, 14, 14,
+ 65, 60, 66, 31, 67, 65, 60, 21, 241, 65,
+ 65, 244, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 61, 24, 65, 26, 27, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 65, 24, 65,
+ 26, 27, 65, 61, 65, 21, 65, 21, 0, 60,
+ 0, 2, 63, 34, 39, 67, 67, 151, -1, 92,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 58, -1, -1, 61,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- -1, 24, -1, 26, 27, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, -1, 24, -1, 26, 27,
- -1, -1, -1, -1, -1, 58, -1, -1, 61, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 58, -1, -1, 61, 3, 4, 5, 6, 7, 8,
+ -1, -1, -1, -1, 60, -1, -1, 63, 64, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+ 24, -1, 26, 27, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, -1, 24, -1, 26, 27, -1,
+ -1, -1, -1, -1, -1, -1, 60, -1, -1, 63,
+ 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 60, -1, -1, 63, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, -1, 24, -1, 26, 27,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ -1, 24, -1, 26, 27, -1, -1, -1, -1, -1,
+ -1, -1, 60, -1, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
- -1, -1, 61
+ -1, -1, -1, -1, -1, -1, -1, 60, -1, -1,
+ 63, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, -1, 24, -1, 26, 27, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, -1, -1, -1, 54, 55, 56, 57, 58,
+ -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
+ -1, 63
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/dcs/software/supported/encap/bison-1.28/share/bison.simple"
@@ -1328,7 +1343,7 @@
switch (yyn) {
case 2:
-#line 433 "llvmAsmParser.y"
+#line 435 "llvmAsmParser.y"
{
if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range!
ThrowException("Value too large for type!");
@@ -1336,55 +1351,55 @@
;
break;}
case 4:
-#line 441 "llvmAsmParser.y"
+#line 443 "llvmAsmParser.y"
{
if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range!
ThrowException("Value too large for type!");
yyval.SInt64Val = (int64_t)yyvsp[0].UInt64Val;
;
break;}
-case 43:
-#line 471 "llvmAsmParser.y"
+case 45:
+#line 474 "llvmAsmParser.y"
{
yyval.StrVal = yyvsp[-1].StrVal;
;
break;}
-case 44:
-#line 474 "llvmAsmParser.y"
+case 46:
+#line 477 "llvmAsmParser.y"
{
yyval.StrVal = 0;
;
break;}
-case 45:
-#line 478 "llvmAsmParser.y"
+case 47:
+#line 481 "llvmAsmParser.y"
{ // integral constants
if (!ConstPoolSInt::isValueValidForType(yyvsp[-1].TypeVal, yyvsp[0].SInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = new ConstPoolSInt(yyvsp[-1].TypeVal, yyvsp[0].SInt64Val);
;
break;}
-case 46:
-#line 483 "llvmAsmParser.y"
+case 48:
+#line 486 "llvmAsmParser.y"
{ // integral constants
if (!ConstPoolUInt::isValueValidForType(yyvsp[-1].TypeVal, yyvsp[0].UInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = new ConstPoolUInt(yyvsp[-1].TypeVal, yyvsp[0].UInt64Val);
;
break;}
-case 47:
-#line 488 "llvmAsmParser.y"
+case 49:
+#line 491 "llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = new ConstPoolBool(true);
;
break;}
-case 48:
-#line 491 "llvmAsmParser.y"
+case 50:
+#line 494 "llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = new ConstPoolBool(false);
;
break;}
-case 49:
-#line 494 "llvmAsmParser.y"
+case 51:
+#line 497 "llvmAsmParser.y"
{ // String constants
cerr << "FIXME: TODO: String constants [sbyte] not implemented yet!\n";
abort();
@@ -1392,14 +1407,14 @@
free(yyvsp[0].StrVal);
;
break;}
-case 50:
-#line 500 "llvmAsmParser.y"
+case 52:
+#line 503 "llvmAsmParser.y"
{ // Type constants
yyval.ConstVal = new ConstPoolType(yyvsp[0].TypeVal);
;
break;}
-case 51:
-#line 503 "llvmAsmParser.y"
+case 53:
+#line 506 "llvmAsmParser.y"
{ // Nonempty array constant
// Verify all elements are correct type!
const ArrayType *AT = ArrayType::getArrayType(yyvsp[-4].TypeVal);
@@ -1414,15 +1429,15 @@
delete yyvsp[-1].ConstVector;
;
break;}
-case 52:
-#line 516 "llvmAsmParser.y"
+case 54:
+#line 519 "llvmAsmParser.y"
{ // Empty array constant
vector<ConstPoolVal*> Empty;
yyval.ConstVal = new ConstPoolArray(ArrayType::getArrayType(yyvsp[-3].TypeVal), Empty);
;
break;}
-case 53:
-#line 520 "llvmAsmParser.y"
+case 55:
+#line 523 "llvmAsmParser.y"
{
// Verify all elements are correct type!
const ArrayType *AT = ArrayType::getArrayType(yyvsp[-4].TypeVal, (int)yyvsp[-6].UInt64Val);
@@ -1442,8 +1457,8 @@
delete yyvsp[-1].ConstVector;
;
break;}
-case 54:
-#line 538 "llvmAsmParser.y"
+case 56:
+#line 541 "llvmAsmParser.y"
{
if (yyvsp[-5].UInt64Val != 0)
ThrowException("Type mismatch: constant sized array initialized with 0"
@@ -1452,8 +1467,8 @@
yyval.ConstVal = new ConstPoolArray(ArrayType::getArrayType(yyvsp[-3].TypeVal, 0), Empty);
;
break;}
-case 55:
-#line 545 "llvmAsmParser.y"
+case 57:
+#line 548 "llvmAsmParser.y"
{
StructType::ElementTypes Types(yyvsp[-4].TypeList->begin(), yyvsp[-4].TypeList->end());
delete yyvsp[-4].TypeList;
@@ -1463,8 +1478,8 @@
delete yyvsp[-1].ConstVector;
;
break;}
-case 56:
-#line 553 "llvmAsmParser.y"
+case 58:
+#line 556 "llvmAsmParser.y"
{
const StructType *St =
StructType::getStructType(StructType::ElementTypes());
@@ -1472,21 +1487,21 @@
yyval.ConstVal = new ConstPoolStruct(St, Empty);
;
break;}
-case 57:
-#line 567 "llvmAsmParser.y"
+case 59:
+#line 570 "llvmAsmParser.y"
{
(yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(addConstValToConstantPool(yyvsp[0].ConstVal));
;
break;}
-case 58:
-#line 570 "llvmAsmParser.y"
+case 60:
+#line 573 "llvmAsmParser.y"
{
yyval.ConstVector = new vector<ConstPoolVal*>();
yyval.ConstVector->push_back(addConstValToConstantPool(yyvsp[0].ConstVal));
;
break;}
-case 59:
-#line 576 "llvmAsmParser.y"
+case 61:
+#line 579 "llvmAsmParser.y"
{
if (yyvsp[-1].StrVal) {
yyvsp[0].ConstVal->setName(yyvsp[-1].StrVal);
@@ -1496,38 +1511,38 @@
addConstValToConstantPool(yyvsp[0].ConstVal);
;
break;}
-case 60:
-#line 584 "llvmAsmParser.y"
+case 62:
+#line 587 "llvmAsmParser.y"
{
;
break;}
-case 61:
-#line 595 "llvmAsmParser.y"
+case 63:
+#line 598 "llvmAsmParser.y"
{
yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
CurModule.ModuleDone();
;
break;}
-case 62:
-#line 600 "llvmAsmParser.y"
+case 64:
+#line 603 "llvmAsmParser.y"
{
yyvsp[-1].ModuleVal->getMethodList().push_back(yyvsp[0].MethodVal);
CurMeth.MethodDone();
yyval.ModuleVal = yyvsp[-1].ModuleVal;
;
break;}
-case 63:
-#line 605 "llvmAsmParser.y"
+case 65:
+#line 608 "llvmAsmParser.y"
{
yyval.ModuleVal = CurModule.CurrentModule;
;
break;}
-case 65:
-#line 614 "llvmAsmParser.y"
+case 67:
+#line 617 "llvmAsmParser.y"
{ yyval.StrVal = 0; ;
break;}
-case 66:
-#line 616 "llvmAsmParser.y"
+case 68:
+#line 619 "llvmAsmParser.y"
{
yyval.MethArgVal = new MethodArgument(yyvsp[-1].TypeVal);
if (yyvsp[0].StrVal) { // Was the argument named?
@@ -1536,34 +1551,34 @@
}
;
break;}
-case 67:
-#line 624 "llvmAsmParser.y"
+case 69:
+#line 627 "llvmAsmParser.y"
{
yyval.MethodArgList = yyvsp[0].MethodArgList;
yyvsp[0].MethodArgList->push_front(yyvsp[-2].MethArgVal);
;
break;}
-case 68:
-#line 628 "llvmAsmParser.y"
+case 70:
+#line 631 "llvmAsmParser.y"
{
yyval.MethodArgList = new list<MethodArgument*>();
yyval.MethodArgList->push_front(yyvsp[0].MethArgVal);
;
break;}
-case 69:
-#line 633 "llvmAsmParser.y"
+case 71:
+#line 636 "llvmAsmParser.y"
{
yyval.MethodArgList = yyvsp[0].MethodArgList;
;
break;}
-case 70:
-#line 636 "llvmAsmParser.y"
+case 72:
+#line 639 "llvmAsmParser.y"
{
yyval.MethodArgList = 0;
;
break;}
-case 71:
-#line 640 "llvmAsmParser.y"
+case 73:
+#line 643 "llvmAsmParser.y"
{
MethodType::ParamTypes ParamTypeList;
if (yyvsp[-1].MethodArgList)
@@ -1591,68 +1606,68 @@
}
;
break;}
-case 72:
-#line 667 "llvmAsmParser.y"
+case 74:
+#line 670 "llvmAsmParser.y"
{
yyval.MethodVal = CurMeth.CurrentMethod;
;
break;}
-case 73:
-#line 671 "llvmAsmParser.y"
+case 75:
+#line 674 "llvmAsmParser.y"
{
yyval.MethodVal = yyvsp[-1].MethodVal;
;
break;}
-case 74:
-#line 680 "llvmAsmParser.y"
+case 76:
+#line 683 "llvmAsmParser.y"
{ // A reference to a direct constant
yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
;
break;}
-case 75:
-#line 683 "llvmAsmParser.y"
+case 77:
+#line 686 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
;
break;}
-case 76:
-#line 686 "llvmAsmParser.y"
+case 78:
+#line 689 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create((int64_t)1);
;
break;}
-case 77:
-#line 689 "llvmAsmParser.y"
+case 79:
+#line 692 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create((int64_t)0);
;
break;}
-case 78:
-#line 692 "llvmAsmParser.y"
+case 80:
+#line 695 "llvmAsmParser.y"
{ // Quoted strings work too... especially for methods
yyval.ValIDVal = ValID::create_conststr(yyvsp[0].StrVal);
;
break;}
-case 79:
-#line 697 "llvmAsmParser.y"
+case 81:
+#line 700 "llvmAsmParser.y"
{ // Is it an integer reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
;
break;}
-case 80:
-#line 700 "llvmAsmParser.y"
+case 82:
+#line 703 "llvmAsmParser.y"
{ // It must be a named reference then...
yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
;
break;}
-case 81:
-#line 703 "llvmAsmParser.y"
+case 83:
+#line 706 "llvmAsmParser.y"
{
yyval.ValIDVal = yyvsp[0].ValIDVal;
;
break;}
-case 82:
-#line 710 "llvmAsmParser.y"
+case 84:
+#line 713 "llvmAsmParser.y"
{
Value *D = getVal(Type::TypeTy, yyvsp[0].ValIDVal, true);
if (D == 0) ThrowException("Invalid user defined type: " + yyvsp[0].ValIDVal.getName());
@@ -1662,90 +1677,90 @@
yyval.TypeVal = CPT->getValue();
;
break;}
-case 83:
-#line 718 "llvmAsmParser.y"
+case 85:
+#line 721 "llvmAsmParser.y"
{ // Method derived type?
MethodType::ParamTypes Params(yyvsp[-1].TypeList->begin(), yyvsp[-1].TypeList->end());
delete yyvsp[-1].TypeList;
yyval.TypeVal = MethodType::getMethodType(yyvsp[-3].TypeVal, Params);
;
break;}
-case 84:
-#line 723 "llvmAsmParser.y"
+case 86:
+#line 726 "llvmAsmParser.y"
{ // Method derived type?
MethodType::ParamTypes Params; // Empty list
yyval.TypeVal = MethodType::getMethodType(yyvsp[-2].TypeVal, Params);
;
break;}
-case 85:
-#line 727 "llvmAsmParser.y"
+case 87:
+#line 730 "llvmAsmParser.y"
{
yyval.TypeVal = ArrayType::getArrayType(yyvsp[-1].TypeVal);
;
break;}
-case 86:
-#line 730 "llvmAsmParser.y"
+case 88:
+#line 733 "llvmAsmParser.y"
{
yyval.TypeVal = ArrayType::getArrayType(yyvsp[-1].TypeVal, (int)yyvsp[-3].UInt64Val);
;
break;}
-case 87:
-#line 733 "llvmAsmParser.y"
+case 89:
+#line 736 "llvmAsmParser.y"
{
StructType::ElementTypes Elements(yyvsp[-1].TypeList->begin(), yyvsp[-1].TypeList->end());
delete yyvsp[-1].TypeList;
yyval.TypeVal = StructType::getStructType(Elements);
;
break;}
-case 88:
-#line 738 "llvmAsmParser.y"
+case 90:
+#line 741 "llvmAsmParser.y"
{
yyval.TypeVal = StructType::getStructType(StructType::ElementTypes());
;
break;}
-case 89:
-#line 741 "llvmAsmParser.y"
+case 91:
+#line 744 "llvmAsmParser.y"
{
yyval.TypeVal = PointerType::getPointerType(yyvsp[-1].TypeVal);
;
break;}
-case 90:
-#line 746 "llvmAsmParser.y"
+case 92:
+#line 749 "llvmAsmParser.y"
{
yyval.TypeList = new list<const Type*>();
yyval.TypeList->push_back(yyvsp[0].TypeVal);
;
break;}
-case 91:
-#line 750 "llvmAsmParser.y"
+case 93:
+#line 753 "llvmAsmParser.y"
{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(yyvsp[0].TypeVal);
;
break;}
-case 92:
-#line 755 "llvmAsmParser.y"
+case 94:
+#line 758 "llvmAsmParser.y"
{
yyvsp[-1].MethodVal->getBasicBlocks().push_back(yyvsp[0].BasicBlockVal);
yyval.MethodVal = yyvsp[-1].MethodVal;
;
break;}
-case 93:
-#line 759 "llvmAsmParser.y"
+case 95:
+#line 762 "llvmAsmParser.y"
{ // Do not allow methods with 0 basic blocks
yyval.MethodVal = yyvsp[-1].MethodVal; // in them...
yyvsp[-1].MethodVal->getBasicBlocks().push_back(yyvsp[0].BasicBlockVal);
;
break;}
-case 94:
-#line 768 "llvmAsmParser.y"
+case 96:
+#line 771 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
InsertValue(yyvsp[-1].BasicBlockVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 95:
-#line 773 "llvmAsmParser.y"
+case 97:
+#line 776 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
yyvsp[-1].BasicBlockVal->setName(yyvsp[-2].StrVal);
@@ -1755,47 +1770,47 @@
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 96:
-#line 782 "llvmAsmParser.y"
+case 98:
+#line 785 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 97:
-#line 786 "llvmAsmParser.y"
+case 99:
+#line 789 "llvmAsmParser.y"
{
yyval.BasicBlockVal = new BasicBlock();
;
break;}
-case 98:
-#line 790 "llvmAsmParser.y"
+case 100:
+#line 793 "llvmAsmParser.y"
{ // Return with a result...
yyval.TermInstVal = new ReturnInst(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 99:
-#line 793 "llvmAsmParser.y"
+case 101:
+#line 796 "llvmAsmParser.y"
{ // Return with no result...
yyval.TermInstVal = new ReturnInst();
;
break;}
-case 100:
-#line 796 "llvmAsmParser.y"
+case 102:
+#line 799 "llvmAsmParser.y"
{ // Unconditional Branch...
yyval.TermInstVal = new BranchInst((BasicBlock*)getVal(Type::LabelTy, yyvsp[0].ValIDVal));
;
break;}
-case 101:
-#line 799 "llvmAsmParser.y"
+case 103:
+#line 802 "llvmAsmParser.y"
{
yyval.TermInstVal = new BranchInst((BasicBlock*)getVal(Type::LabelTy, yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[0].ValIDVal),
getVal(Type::BoolTy, yyvsp[-6].ValIDVal));
;
break;}
-case 102:
-#line 804 "llvmAsmParser.y"
+case 104:
+#line 807 "llvmAsmParser.y"
{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].TypeVal, yyvsp[-6].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-3].ValIDVal));
@@ -1807,8 +1822,8 @@
S->dest_push_back(I->first, I->second);
;
break;}
-case 103:
-#line 815 "llvmAsmParser.y"
+case 105:
+#line 818 "llvmAsmParser.y"
{
yyval.JumpTable = yyvsp[-5].JumpTable;
ConstPoolVal *V = (ConstPoolVal*)getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal, true);
@@ -1818,8 +1833,8 @@
yyval.JumpTable->push_back(make_pair(V, (BasicBlock*)getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal)));
;
break;}
-case 104:
-#line 823 "llvmAsmParser.y"
+case 106:
+#line 826 "llvmAsmParser.y"
{
yyval.JumpTable = new list<pair<ConstPoolVal*, BasicBlock*> >();
ConstPoolVal *V = (ConstPoolVal*)getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal, true);
@@ -1830,8 +1845,8 @@
yyval.JumpTable->push_back(make_pair(V, (BasicBlock*)getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal)));
;
break;}
-case 105:
-#line 833 "llvmAsmParser.y"
+case 107:
+#line 836 "llvmAsmParser.y"
{
if (yyvsp[-1].StrVal) // Is this definition named??
yyvsp[0].InstVal->setName(yyvsp[-1].StrVal); // if so, assign the name...
@@ -1840,64 +1855,71 @@
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 106:
-#line 841 "llvmAsmParser.y"
+case 108:
+#line 844 "llvmAsmParser.y"
{ // Used for PHI nodes
yyval.PHIList = new list<pair<Value*, BasicBlock*> >();
yyval.PHIList->push_back(make_pair(getVal(yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-1].ValIDVal)));
;
break;}
-case 107:
-#line 846 "llvmAsmParser.y"
+case 109:
+#line 849 "llvmAsmParser.y"
{
yyval.PHIList = yyvsp[-6].PHIList;
yyvsp[-6].PHIList->push_back(make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-1].ValIDVal)));
;
break;}
-case 108:
-#line 853 "llvmAsmParser.y"
+case 110:
+#line 856 "llvmAsmParser.y"
{ // Used for call statements...
yyval.ValueList = new list<Value*>();
yyval.ValueList->push_back(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 109:
-#line 857 "llvmAsmParser.y"
+case 111:
+#line 860 "llvmAsmParser.y"
{
yyval.ValueList = yyvsp[-2].ValueList;
yyvsp[-2].ValueList->push_back(getVal(yyvsp[-2].ValueList->front()->getType(), yyvsp[0].ValIDVal));
;
break;}
-case 111:
-#line 863 "llvmAsmParser.y"
+case 113:
+#line 866 "llvmAsmParser.y"
{ yyval.ValueList = 0; ;
break;}
-case 112:
-#line 865 "llvmAsmParser.y"
+case 114:
+#line 868 "llvmAsmParser.y"
{
yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, getVal(yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal), getVal(yyvsp[-3].TypeVal, yyvsp[0].ValIDVal));
if (yyval.InstVal == 0)
ThrowException("binary operator returned null!");
;
break;}
-case 113:
-#line 870 "llvmAsmParser.y"
+case 115:
+#line 873 "llvmAsmParser.y"
{
yyval.InstVal = UnaryOperator::create(yyvsp[-2].UnaryOpVal, getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
if (yyval.InstVal == 0)
ThrowException("unary operator returned null!");
;
break;}
-case 114:
-#line 875 "llvmAsmParser.y"
+case 116:
+#line 878 "llvmAsmParser.y"
+{
+ if (yyvsp[-1].TypeVal != Type::UByteTy) ThrowException("Shift amount must be ubyte!");
+ yyval.InstVal = new ShiftInst(yyvsp[-5].OtherOpVal, getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal), getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
+ ;
+ break;}
+case 117:
+#line 882 "llvmAsmParser.y"
{
yyval.InstVal = new CastInst(getVal(yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal), yyvsp[0].TypeVal);
;
break;}
-case 115:
-#line 878 "llvmAsmParser.y"
+case 118:
+#line 885 "llvmAsmParser.y"
{
const Type *Ty = yyvsp[0].PHIList->front().first->getType();
yyval.InstVal = new PHINode(Ty);
@@ -1910,8 +1932,8 @@
delete yyvsp[0].PHIList; // Free the list...
;
break;}
-case 116:
-#line 889 "llvmAsmParser.y"
+case 119:
+#line 896 "llvmAsmParser.y"
{
if (!yyvsp[-4].TypeVal->isMethodType())
ThrowException("Can only call methods: invalid type '" +
@@ -1950,22 +1972,34 @@
yyval.InstVal = new CallInst((Method*)V, Params);
;
break;}
-case 117:
-#line 926 "llvmAsmParser.y"
+case 120:
+#line 933 "llvmAsmParser.y"
{
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 118:
-#line 930 "llvmAsmParser.y"
+case 121:
+#line 938 "llvmAsmParser.y"
+{
+ yyval.ConstVector = yyvsp[0].ConstVector;
+;
+ break;}
+case 122:
+#line 940 "llvmAsmParser.y"
+{
+ yyval.ConstVector = new vector<ConstPoolVal*>();
+;
+ break;}
+case 123:
+#line 944 "llvmAsmParser.y"
{
const Type *Ty = PointerType::getPointerType(yyvsp[0].TypeVal);
addConstValToConstantPool(new ConstPoolType(Ty));
yyval.InstVal = new MallocInst(Ty);
;
break;}
-case 119:
-#line 935 "llvmAsmParser.y"
+case 124:
+#line 949 "llvmAsmParser.y"
{
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
@@ -1976,16 +2010,16 @@
yyval.InstVal = new MallocInst(Ty, ArrSize);
;
break;}
-case 120:
-#line 944 "llvmAsmParser.y"
+case 125:
+#line 958 "llvmAsmParser.y"
{
const Type *Ty = PointerType::getPointerType(yyvsp[0].TypeVal);
addConstValToConstantPool(new ConstPoolType(Ty));
yyval.InstVal = new AllocaInst(Ty);
;
break;}
-case 121:
-#line 949 "llvmAsmParser.y"
+case 126:
+#line 963 "llvmAsmParser.y"
{
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
@@ -1996,14 +2030,26 @@
yyval.InstVal = new AllocaInst(Ty, ArrSize);
;
break;}
-case 122:
-#line 958 "llvmAsmParser.y"
+case 127:
+#line 972 "llvmAsmParser.y"
{
if (!yyvsp[-1].TypeVal->isPointerType())
ThrowException("Trying to free nonpointer type " + yyvsp[-1].TypeVal->getName() + "!");
yyval.InstVal = new FreeInst(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
+case 128:
+#line 978 "llvmAsmParser.y"
+{
+ if (!yyvsp[-2].TypeVal->isPointerType())
+ ThrowException("Can't load from nonpointer type: " + yyvsp[-2].TypeVal->getName());
+ if (LoadInst::getIndexedType(yyvsp[-2].TypeVal, *yyvsp[0].ConstVector) == 0)
+ ThrowException("Invalid indices for load instruction!");
+
+ yyval.InstVal = new LoadInst(getVal(yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ConstVector);
+ delete yyvsp[0].ConstVector; // Free the vector...
+ ;
+ break;}
}
/* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/dcs/software/supported/encap/bison-1.28/share/bison.simple"
@@ -2226,7 +2272,7 @@
}
return 1;
}
-#line 964 "llvmAsmParser.y"
+#line 988 "llvmAsmParser.y"
int yyerror(const char *ErrorMsg) {
ThrowException(string("Parse error: ") + ErrorMsg);