Implementation of Store & GetElementPtr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp
index 5d384ec..95b9721 100644
--- a/lib/AsmParser/llvmAsmParser.cpp
+++ b/lib/AsmParser/llvmAsmParser.cpp
@@ -60,13 +60,12 @@
 #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
+#define	GETELEMENTPTR	306
+#define	PHI	307
+#define	CALL	308
+#define	CAST	309
+#define	SHL	310
+#define	SHR	311
 
 #line 13 "llvmAsmParser.y"
 
@@ -434,26 +433,26 @@
 
 
 
-#define	YYFINAL		248
+#define	YYFINAL		260
 #define	YYFLAG		-32768
-#define	YYNTBASE	69
+#define	YYNTBASE	68
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 312 ? yytranslate[x] : 107)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 311 ? yytranslate[x] : 106)
 
 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,    66,
-    67,    68,     2,    65,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,    65,
+    66,    67,     2,    64,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    59,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+    58,     2,     2,     2,     2,     2,     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,    61,     2,     2,     2,     2,     2,     2,     2,
+    59,     2,    60,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     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,    61,
+     2,     2,    62,     2,    63,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -472,7 +471,7 @@
     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
+    57
 };
 
 #if YYDEBUG != 0
@@ -488,52 +487,53 @@
    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
+   334,   339,   341,   342,   348,   352,   359,   365,   368,   375,
+   377,   380,   381,   384,   390,   393,   399,   403,   408,   416
 };
 
 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,    71,     0,     7,     0,    35,
+     0,    20,     0,    21,     0,    70,     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,    46,     0,    56,     0,    57,     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
+     0,    10,     0,    75,     0,    76,     0,    22,    58,     0,
+     0,    75,    69,     0,    76,     4,     0,     8,    26,     0,
+     8,    27,     0,    19,    24,     0,    20,    70,     0,    59,
+    70,    60,    59,    80,    60,     0,    59,    70,    60,    59,
+    60,     0,    59,     4,    61,    70,    60,    59,    80,    60,
+     0,    59,     4,    61,    70,    60,    59,    60,     0,    62,
+    93,    63,    62,    80,    63,     0,    62,    63,    62,    63,
+     0,    80,    64,    79,     0,    79,     0,    81,    78,    79,
+     0,     0,    83,     0,    83,    90,     0,    81,    25,     0,
+    22,     0,     0,    70,    84,     0,    85,    64,    86,     0,
+    85,     0,    86,     0,     0,    71,    24,    65,    87,    66,
+     0,    88,    81,    28,     0,    94,    29,     0,     3,     0,
+     4,     0,    26,     0,    27,     0,    24,     0,    68,     0,
+    22,     0,    91,     0,    92,     0,    71,    65,    93,    66,
+     0,    71,    65,    66,     0,    59,    70,    60,     0,    59,
+     4,    61,    70,    60,     0,    62,    93,    63,     0,    62,
+    63,     0,    70,    67,     0,    70,     0,    93,    64,    70,
+     0,    94,    95,     0,    89,    95,     0,    96,    97,     0,
+    23,    96,    97,     0,    96,    99,     0,     0,    32,    70,
+    92,     0,    32,     7,     0,    33,    21,    92,     0,    33,
+     8,    92,    64,    21,    92,    64,    21,    92,     0,    34,
+    77,    92,    64,    21,    92,    59,    98,    60,     0,    98,
+    77,    91,    64,    21,    92,     0,    77,    91,    64,    21,
+    92,     0,    78,   103,     0,    70,    59,    92,    64,    92,
+    60,     0,   100,    64,    59,    92,    64,    92,    60,     0,
+    70,    92,     0,   101,    64,    70,    92,     0,   101,     0,
+     0,    73,    70,    92,    64,    92,     0,    72,    70,    92,
+     0,    74,    70,    92,    64,    70,    92,     0,    55,    70,
+    92,    31,    70,     0,    53,   100,     0,    54,    70,    92,
+    65,   102,    66,     0,   105,     0,    64,    80,     0,     0,
+    47,    70,     0,    47,    70,    64,    14,    92,     0,    48,
+    70,     0,    48,    70,    64,    14,    92,     0,    49,    70,
+    92,     0,    50,    70,    92,   104,     0,    51,    70,    92,
+    64,    70,    92,   104,     0,    52,    70,    92,   104,     0
 };
 
 #endif
@@ -552,7 +552,7 @@
    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
+   938,   940,   944,   949,   958,   963,   972,   978,   987,   999
 };
 #endif
 
@@ -565,8 +565,8 @@
 "LABELSTR","STRINGCONSTANT","IMPLEMENTATION","TRUE","FALSE","BEGINTOK","END",
 "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",
+"GETELEMENTPTR","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",
@@ -577,19 +577,19 @@
 #endif
 
 static const short yyr1[] = {     0,
-    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
+    68,    68,    69,    69,    70,    70,    70,    70,    70,    70,
+    70,    70,    70,    70,    70,    70,    70,    70,    71,    71,
+    72,    73,    73,    73,    73,    73,    73,    73,    73,    73,
+    73,    73,    74,    74,    75,    75,    75,    75,    76,    76,
+    76,    76,    77,    77,    78,    78,    79,    79,    79,    79,
+    79,    79,    79,    79,    79,    79,    79,    79,    80,    80,
+    81,    81,    82,    83,    83,    84,    84,    85,    86,    86,
+    87,    87,    88,    89,    90,    91,    91,    91,    91,    91,
+    92,    92,    92,    70,    70,    70,    70,    70,    70,    70,
+    70,    93,    93,    94,    94,    95,    95,    96,    96,    97,
+    97,    97,    97,    97,    98,    98,    99,   100,   100,   101,
+   101,   102,   102,   103,   103,   103,   103,   103,   103,   103,
+   104,   104,   105,   105,   105,   105,   105,   105,   105,   105
 };
 
 static const short yyr2[] = {     0,
@@ -604,8 +604,8 @@
      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
+     4,     1,     0,     5,     3,     6,     5,     2,     6,     1,
+     2,     0,     2,     5,     2,     5,     3,     4,     7,     4
 };
 
 static const short yydefact[] = {    62,
@@ -622,182 +622,178 @@
      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
+     0,     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,    19,    19,   118,    19,    19,    19,    19,
+    19,     0,    54,    60,     0,     0,    69,     0,     0,     0,
+     0,   127,   122,     0,   122,     0,     0,     0,     0,   115,
+     0,     0,     0,    53,     0,    57,     0,     0,     0,     0,
+     0,   128,     0,   130,     0,     0,   113,     0,     0,     0,
+    56,     0,    59,     0,     0,   124,   126,   121,    19,     0,
+     0,    19,   112,     0,   117,   114,    19,    55,     0,     0,
+   122,     0,     0,   110,     0,   119,   116,     0,     0,     0,
+   129,   108,     0,    19,   103,     0,   104,     0,   109,   111,
+     0,     0,     0,     0,   106,     0,   105,     0,     0,     0
 };
 
 static const short yydefgoto[] = {    31,
-    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
+    82,    61,    59,   141,   142,   143,    54,    55,   117,     5,
+   174,   175,     1,   258,     2,   152,   106,   107,   108,    34,
+    35,    36,    37,    38,    62,    39,    68,    69,    97,   240,
+    98,   166,   223,   224,   144,   202,   145
 };
 
 static const short yypact[] = {-32768,
-    19,   342,   -51,-32768,    99,-32768,-32768,-32768,-32768,-32768,
+    70,   321,    -6,-32768,    90,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-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
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   381,   235,
+-32768,    45,   -20,-32768,    98,-32768,-32768,-32768,    93,-32768,
+    67,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    56,
+   321,   406,   296,   181,   142,-32768,    97,   -14,    96,-32768,
+    46,   123,-32768,   101,   210,   122,-32768,-32768,   135,-32768,
+-32768,-32768,-32768,-32768,    46,   111,    29,   112,   129,-32768,
+-32768,-32768,-32768,   321,-32768,-32768,   321,   321,-32768,    79,
+-32768,   135,   466,    13,   268,   461,-32768,-32768,   321,   118,
+   125,   119,    47,    46,    10,   126,-32768,   131,-32768,-32768,
+   133,     4,    52,    52,-32768,-32768,    52,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   321,
+   321,   321,   321,   321,   321,   321,   321,   321,-32768,-32768,
+   321,   321,   321,-32768,-32768,    48,     3,-32768,    90,-32768,
+-32768,-32768,   321,-32768,-32768,   138,-32768,   139,   106,   115,
+     4,     4,     4,     4,     0,   140,     4,     4,     4,     4,
+     4,   148,-32768,-32768,    99,   132,-32768,   178,   189,   197,
+   221,-32768,   194,   196,   194,    52,   204,   199,   234,-32768,
+   202,   203,    28,-32768,    90,-32768,    52,    52,    52,    52,
+    90,-32768,   321,-32768,   206,    52,   321,   321,    52,   321,
+-32768,   100,-32768,   207,   209,-32768,-32768,   211,     4,    52,
+   222,     4,   223,   208,    46,-32768,     4,-32768,   252,   268,
+   194,   225,    52,-32768,   321,-32768,-32768,    52,    57,   435,
+-32768,-32768,   228,     4,-32768,   226,-32768,    57,-32768,-32768,
+   270,   229,    52,   271,-32768,    52,-32768,   289,   295,-32768
 };
 
 static const short yypgoto[] = {-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
+-32768,    -2,   294,-32768,-32768,-32768,   -93,   -92,  -205,   -63,
+    -4,  -129,   285,-32768,-32768,-32768,-32768,   168,-32768,-32768,
+-32768,-32768,  -215,   -44,     1,-32768,   305,   279,   257,-32768,
+-32768,-32768,-32768,-32768,-32768,  -180,-32768
 };
 
 
-#define	YYLAST		552
+#define	YYLAST		528
 
 
 static const short yytable[] = {    32,
-    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,
+    56,   115,   116,    64,   204,    96,     6,     7,     8,     9,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,   176,
+   113,    50,    51,   246,   239,    25,    58,    26,    96,    27,
+    28,   151,   252,   114,   248,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    65,    85,    50,    51,    75,    77,
+   241,    40,    63,    79,     6,     7,     8,     9,   186,     6,
+     7,    52,   173,   212,    53,    90,    63,   155,   156,   157,
+    63,   218,   158,    25,   -19,    26,    63,    27,    28,    74,
+    26,   103,    27,    28,   104,   105,    52,   211,   100,    53,
+   112,     3,    72,    73,     4,    63,   146,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,   150,   172,    50,    51,
+   -19,    63,    63,    63,    63,    67,   182,   183,   184,   185,
+    67,    70,   188,   189,   190,   191,   192,   159,   160,   161,
+   162,   163,   164,   165,   167,   168,   115,   116,   169,   170,
+   171,   205,    87,     3,   109,    83,   115,   116,    52,    91,
+   105,    53,   214,   215,   216,   217,     3,    84,   194,   228,
+    65,   221,   195,   195,   226,    88,    93,    94,    95,   180,
+   -19,    99,    63,   101,   231,   232,   147,   234,   181,   -19,
+   149,    63,   237,    80,    81,    86,    87,   148,   243,   153,
+   213,   102,    87,   245,   196,   195,   154,   -20,   197,   250,
+   219,   178,   179,   187,   222,   225,   193,   227,   255,   198,
+   199,   257,     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,
+    24,    25,   244,    26,   200,    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,
+    19,    20,    21,    22,    23,    24,    25,   201,    26,   203,
+    27,    28,   206,   207,   208,   209,   210,   230,    29,   220,
+   229,    30,   238,   236,   195,    89,    42,    43,    44,    45,
+    46,    47,    48,    49,   242,   233,   235,   249,   259,   251,
+   253,   256,   254,    29,   260,    33,    30,    60,     6,     7,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    66,    26,
+   177,    27,    28,     6,     7,     8,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    71,    26,    92,    27,    28,   110,     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,    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,    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
+     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,    29,
+     0,     0,    30,    42,    43,    44,    45,    46,    47,    48,
+    49,     0,     0,     0,     0,     0,     0,     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,     0,   247,   118,   119,   120,   121,   122,
+   123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+   133,   134,   135,   136,   137,   138,   139,   140,     0,     0,
+     0,     0,     0,     0,    29,     0,     0,    30
 };
 
 static const short yycheck[] = {     2,
-     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,
+     5,    95,    95,    24,   185,    69,     3,     4,     5,     6,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,   149,
+     8,    19,    20,   239,   230,    22,    29,    24,    92,    26,
+    27,    22,   248,    21,   240,     8,     9,    10,    11,    12,
+    13,    14,    15,    16,    65,    60,    19,    20,    51,    52,
+   231,    58,    67,    53,     3,     4,     5,     6,    59,     3,
+     4,    59,    60,   193,    62,    65,    67,   112,   113,   114,
+    67,   201,   117,    22,    65,    24,    67,    26,    27,    24,
+    24,    84,    26,    27,    87,    88,    59,    60,    60,    62,
+    93,    22,    26,    27,    25,    67,    99,     8,     9,    10,
+    11,    12,    13,    14,    15,    16,    60,    60,    19,    20,
+    65,    67,    67,    67,    67,    23,   161,   162,   163,   164,
+    23,    29,   167,   168,   169,   170,   171,   130,   131,   132,
+   133,   134,   135,   136,   137,   138,   230,   230,   141,   142,
+   143,   186,    64,    22,    66,     4,   240,   240,    59,    28,
+   153,    62,   197,   198,   199,   200,    22,    61,    60,    60,
+    65,   206,    64,    64,   209,    65,    32,    33,    34,    64,
+    65,    61,    67,    62,   219,   220,    59,   222,    64,    65,
+    62,    67,   227,     3,     4,    63,    64,    63,   233,    64,
+   195,    63,    64,   238,    63,    64,    66,    65,    21,   244,
+   203,    64,    64,    64,   207,   208,    59,   210,   253,    21,
+    14,   256,     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,
+    21,    22,   235,    24,    14,    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,
+    16,    17,    18,    19,    20,    21,    22,    64,    24,    64,
+    26,    27,    59,    65,    31,    64,    64,    59,    59,    64,
+    64,    62,    21,    66,    64,    66,     9,    10,    11,    12,
+    13,    14,    15,    16,    60,    64,    64,    60,     0,    64,
+    21,    21,    64,    59,     0,     2,    62,    63,     3,     4,
+     5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+    15,    16,    17,    18,    19,    20,    21,    22,    34,    24,
+   153,    26,    27,     3,     4,     5,     6,     7,     8,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    39,    24,    67,    26,    27,    92,    -1,
+    -1,    -1,    -1,    -1,    59,    -1,    -1,    62,    63,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -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,    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
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
+    -1,    -1,    62,     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,    59,
+    -1,    -1,    62,     9,    10,    11,    12,    13,    14,    15,
+    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    59,    -1,    -1,    62,     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,    60,    35,    36,    37,    38,    39,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    53,    54,    55,    56,    57,    -1,    -1,
+    -1,    -1,    -1,    -1,    59,    -1,    -1,    62
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/dcs/software/supported/encap/bison-1.28/share/bison.simple"
@@ -1881,8 +1877,8 @@
 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));
+    yyval.ValueList = yyvsp[-3].ValueList;
+    yyvsp[-3].ValueList->push_back(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
   ;
     break;}
 case 113:
@@ -2050,6 +2046,33 @@
     delete yyvsp[0].ConstVector;   // Free the vector...
   ;
     break;}
+case 129:
+#line 987 "llvmAsmParser.y"
+{
+    if (!yyvsp[-2].TypeVal->isPointerType())
+      ThrowException("Can't store to a nonpointer type: " + yyvsp[-2].TypeVal->getName());
+    const Type *ElTy = StoreInst::getIndexedType(yyvsp[-2].TypeVal, *yyvsp[0].ConstVector);
+    if (ElTy == 0)
+      ThrowException("Can't store into that field list!");
+    if (ElTy != yyvsp[-5].TypeVal)
+      ThrowException("Can't store '" + yyvsp[-5].TypeVal->getName() + "' into space of type '"+
+		     ElTy->getName() + "'!");
+    yyval.InstVal = new StoreInst(getVal(yyvsp[-5].TypeVal, yyvsp[-4].ValIDVal), getVal(yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ConstVector);
+    delete yyvsp[0].ConstVector;
+  ;
+    break;}
+case 130:
+#line 999 "llvmAsmParser.y"
+{
+    if (!yyvsp[-2].TypeVal->isPointerType())
+      ThrowException("getelementptr insn requires pointer operand!");
+    if (!GetElementPtrInst::getIndexedType(yyvsp[-2].TypeVal, *yyvsp[0].ConstVector, true))
+      ThrowException("Can't get element ptr '" + yyvsp[-2].TypeVal->getName() + "'!");
+    yyval.InstVal = new GetElementPtrInst(getVal(yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ConstVector);
+    delete yyvsp[0].ConstVector;
+    addConstValToConstantPool(new ConstPoolType(yyval.InstVal->getType()));
+  ;
+    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"
@@ -2272,7 +2295,7 @@
     }
   return 1;
 }
-#line 988 "llvmAsmParser.y"
+#line 1009 "llvmAsmParser.y"
 
 int yyerror(const char *ErrorMsg) {
   ThrowException(string("Parse error: ") + ErrorMsg);