Added lexer and parser support for the extractelement operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25177 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp
index 93235c9..5922298 100644
--- a/lib/AsmParser/llvmAsmParser.cpp
+++ b/lib/AsmParser/llvmAsmParser.cpp
@@ -1,5 +1,5 @@
 
-/*  A Bison parser, made from /Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y
+/*  A Bison parser, made from /Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y
     by GNU Bison version 1.28  */
 
 #define YYBISON 1  /* Identify Bison output.  */
@@ -102,10 +102,11 @@
 #define	SHL	345
 #define	SHR	346
 #define	VAARG	347
-#define	VAARG_old	348
-#define	VANEXT_old	349
+#define	EXTRACTELEMENT	348
+#define	VAARG_old	349
+#define	VANEXT_old	350
 
-#line 14 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 
 #include "ParserInternals.h"
 #include "llvm/CallingConv.h"
@@ -964,7 +965,7 @@
 }
 
 
-#line 873 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 873 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 typedef union {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1014,26 +1015,26 @@
 
 
 
-#define	YYFINAL		444
+#define	YYFINAL		454
 #define	YYFLAG		-32768
-#define	YYNTBASE	110
+#define	YYNTBASE	111
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 349 ? yytranslate[x] : 179)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 350 ? yytranslate[x] : 180)
 
 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,    99,
-   100,   108,     2,    97,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,   104,
-    96,   105,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,   100,
+   101,   109,     2,    98,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,   105,
+    97,   106,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-   101,    98,   103,     2,     2,     2,     2,     2,   109,     2,
+   102,    99,   104,     2,     2,     2,     2,     2,   110,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,   102,
-     2,     2,   106,     2,   107,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,   103,
+     2,     2,   107,     2,   108,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1055,7 +1056,7 @@
     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95
+    87,    88,    89,    90,    91,    92,    93,    94,    95,    96
 };
 
 #if YYDEBUG != 0
@@ -1071,18 +1072,18 @@
    174,   178,   181,   184,   186,   190,   192,   196,   198,   199,
    204,   208,   212,   217,   222,   226,   229,   232,   235,   238,
    241,   244,   247,   250,   253,   256,   263,   269,   278,   285,
-   292,   299,   306,   310,   312,   314,   316,   318,   321,   324,
-   327,   329,   334,   337,   338,   346,   347,   355,   359,   364,
-   365,   367,   369,   373,   377,   381,   385,   389,   391,   392,
-   394,   396,   398,   399,   402,   406,   408,   410,   414,   416,
-   417,   426,   428,   430,   434,   436,   438,   441,   442,   446,
-   448,   450,   452,   454,   456,   458,   460,   462,   466,   468,
-   470,   472,   474,   476,   479,   482,   485,   489,   492,   493,
-   495,   498,   501,   505,   515,   525,   534,   548,   550,   552,
-   559,   565,   568,   575,   583,   585,   589,   591,   592,   595,
-   597,   603,   609,   615,   618,   623,   628,   635,   640,   645,
-   650,   653,   661,   663,   666,   667,   669,   670,   674,   681,
-   685,   692,   695,   700,   707
+   292,   299,   306,   313,   317,   319,   321,   323,   325,   328,
+   331,   334,   336,   341,   344,   345,   353,   354,   362,   366,
+   371,   372,   374,   376,   380,   384,   388,   392,   396,   398,
+   399,   401,   403,   405,   406,   409,   413,   415,   417,   421,
+   423,   424,   433,   435,   437,   441,   443,   445,   448,   449,
+   453,   455,   457,   459,   461,   463,   465,   467,   469,   473,
+   475,   477,   479,   481,   483,   486,   489,   492,   496,   499,
+   500,   502,   505,   508,   512,   522,   532,   541,   555,   557,
+   559,   566,   572,   575,   582,   590,   592,   596,   598,   599,
+   602,   604,   610,   616,   622,   625,   630,   635,   642,   647,
+   652,   657,   662,   665,   673,   675,   678,   679,   681,   682,
+   686,   693,   697,   704,   707,   712,   719
 };
 
 static const short yyrhs[] = {     5,
@@ -1091,73 +1092,74 @@
      0,    75,     0,    76,     0,    77,     0,    78,     0,    79,
      0,    80,     0,    81,     0,    91,     0,    92,     0,    16,
      0,    14,     0,    12,     0,    10,     0,    17,     0,    15,
-     0,    13,     0,    11,     0,   116,     0,   117,     0,    18,
-     0,    19,     0,   149,    96,     0,     0,    41,     0,    42,
+     0,    13,     0,    11,     0,   117,     0,   118,     0,    18,
+     0,    19,     0,   150,    97,     0,     0,    41,     0,    42,
      0,    43,     0,    44,     0,     0,     0,    59,     0,    60,
      0,    61,     0,    58,     4,     0,     0,    54,     4,     0,
-     0,    97,    54,     4,     0,    34,    24,     0,     0,   125,
-     0,     0,    97,   128,   127,     0,   125,     0,    54,     4,
-     0,   131,     0,     8,     0,   133,     0,     8,     0,   133,
+     0,    98,    54,     4,     0,    34,    24,     0,     0,   126,
+     0,     0,    98,   129,   128,     0,   126,     0,    54,     4,
+     0,   132,     0,     8,     0,   134,     0,     8,     0,   134,
      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,    45,     0,   132,
-     0,   162,     0,    98,     4,     0,   130,    99,   135,   100,
-     0,   101,     4,   102,   133,   103,     0,   104,     4,   102,
-   133,   105,     0,   106,   134,   107,     0,   106,   107,     0,
-   133,   108,     0,   133,     0,   134,    97,   133,     0,   134,
-     0,   134,    97,    37,     0,    37,     0,     0,   131,   101,
-   138,   103,     0,   131,   101,   103,     0,   131,   109,    24,
-     0,   131,   104,   138,   105,     0,   131,   106,   138,   107,
-     0,   131,   106,   107,     0,   131,    38,     0,   131,    39,
-     0,   131,   162,     0,   131,   137,     0,   131,    26,     0,
-   116,   111,     0,   117,     4,     0,     9,    27,     0,     9,
-    28,     0,   119,     7,     0,    89,    99,   136,    36,   131,
-   100,     0,    87,    99,   136,   176,   100,     0,    90,    99,
-   136,    97,   136,    97,   136,   100,     0,   112,    99,   136,
-    97,   136,   100,     0,   113,    99,   136,    97,   136,   100,
-     0,   114,    99,   136,    97,   136,   100,     0,   115,    99,
-   136,    97,   136,   100,     0,   138,    97,   136,     0,   136,
-     0,    32,     0,    33,     0,   141,     0,   141,   158,     0,
-   141,   159,     0,   141,    25,     0,   142,     0,   142,   120,
-    20,   129,     0,   142,   159,     0,     0,   142,   120,   121,
-   139,   136,   143,   127,     0,     0,   142,   120,    47,   139,
-   131,   144,   127,     0,   142,    48,   146,     0,   142,    55,
-    96,   147,     0,     0,    53,     0,    52,     0,    50,    96,
-   145,     0,    51,    96,     4,     0,    49,    96,    24,     0,
-   101,   148,   103,     0,   148,    97,    24,     0,    24,     0,
-     0,    22,     0,    24,     0,   149,     0,     0,   131,   150,
-     0,   152,    97,   151,     0,   151,     0,   152,     0,   152,
-    97,    37,     0,    37,     0,     0,   122,   129,   149,    99,
-   153,   100,   126,   123,     0,    29,     0,   106,     0,   121,
-   154,   155,     0,    30,     0,   107,     0,   165,   157,     0,
-     0,    31,   160,   154,     0,     3,     0,     4,     0,     7,
-     0,    27,     0,    28,     0,    38,     0,    39,     0,    26,
-     0,   104,   138,   105,     0,   137,     0,   110,     0,   149,
-     0,   162,     0,   161,     0,   131,   163,     0,   165,   166,
-     0,   156,   166,     0,   167,   120,   168,     0,   167,   170,
-     0,     0,    23,     0,    62,   164,     0,    62,     8,     0,
-    63,    21,   163,     0,    63,     9,   163,    97,    21,   163,
-    97,    21,   163,     0,    64,   118,   163,    97,    21,   163,
-   101,   169,   103,     0,    64,   118,   163,    97,    21,   163,
-   101,   103,     0,    65,   122,   129,   163,    99,   173,   100,
-    36,    21,   163,    66,    21,   163,     0,    66,     0,    67,
-     0,   169,   118,   161,    97,    21,   163,     0,   118,   161,
-    97,    21,   163,     0,   120,   175,     0,   131,   101,   163,
-    97,   163,   103,     0,   171,    97,   101,   163,    97,   163,
-   103,     0,   164,     0,   172,    97,   164,     0,   172,     0,
-     0,    57,    56,     0,    56,     0,   112,   131,   163,    97,
-   163,     0,   113,   131,   163,    97,   163,     0,   114,   131,
-   163,    97,   163,     0,    46,   164,     0,   115,   164,    97,
-   164,     0,    89,   164,    36,   131,     0,    90,   164,    97,
-   164,    97,   164,     0,    93,   164,    97,   131,     0,    94,
-   164,    97,   131,     0,    95,   164,    97,   131,     0,    88,
-   171,     0,   174,   122,   129,   163,    99,   173,   100,     0,
-   178,     0,    97,   172,     0,     0,    35,     0,     0,    82,
-   131,   124,     0,    82,   131,    97,    15,   163,   124,     0,
-    83,   131,   124,     0,    83,   131,    97,    15,   163,   124,
-     0,    84,   164,     0,   177,    85,   131,   163,     0,   177,
-    86,   164,    97,   131,   163,     0,    87,   131,   163,   176,
-     0
+     0,    19,     0,    20,     0,    21,     0,    45,     0,   133,
+     0,   163,     0,    99,     4,     0,   131,   100,   136,   101,
+     0,   102,     4,   103,   134,   104,     0,   105,     4,   103,
+   134,   106,     0,   107,   135,   108,     0,   107,   108,     0,
+   134,   109,     0,   134,     0,   135,    98,   134,     0,   135,
+     0,   135,    98,    37,     0,    37,     0,     0,   132,   102,
+   139,   104,     0,   132,   102,   104,     0,   132,   110,    24,
+     0,   132,   105,   139,   106,     0,   132,   107,   139,   108,
+     0,   132,   107,   108,     0,   132,    38,     0,   132,    39,
+     0,   132,   163,     0,   132,   138,     0,   132,    26,     0,
+   117,   112,     0,   118,     4,     0,     9,    27,     0,     9,
+    28,     0,   120,     7,     0,    89,   100,   137,    36,   132,
+   101,     0,    87,   100,   137,   177,   101,     0,    90,   100,
+   137,    98,   137,    98,   137,   101,     0,   113,   100,   137,
+    98,   137,   101,     0,   114,   100,   137,    98,   137,   101,
+     0,   115,   100,   137,    98,   137,   101,     0,   116,   100,
+   137,    98,   137,   101,     0,    94,   100,   137,    98,   137,
+   101,     0,   139,    98,   137,     0,   137,     0,    32,     0,
+    33,     0,   142,     0,   142,   159,     0,   142,   160,     0,
+   142,    25,     0,   143,     0,   143,   121,    20,   130,     0,
+   143,   160,     0,     0,   143,   121,   122,   140,   137,   144,
+   128,     0,     0,   143,   121,    47,   140,   132,   145,   128,
+     0,   143,    48,   147,     0,   143,    55,    97,   148,     0,
+     0,    53,     0,    52,     0,    50,    97,   146,     0,    51,
+    97,     4,     0,    49,    97,    24,     0,   102,   149,   104,
+     0,   149,    98,    24,     0,    24,     0,     0,    22,     0,
+    24,     0,   150,     0,     0,   132,   151,     0,   153,    98,
+   152,     0,   152,     0,   153,     0,   153,    98,    37,     0,
+    37,     0,     0,   123,   130,   150,   100,   154,   101,   127,
+   124,     0,    29,     0,   107,     0,   122,   155,   156,     0,
+    30,     0,   108,     0,   166,   158,     0,     0,    31,   161,
+   155,     0,     3,     0,     4,     0,     7,     0,    27,     0,
+    28,     0,    38,     0,    39,     0,    26,     0,   105,   139,
+   106,     0,   138,     0,   111,     0,   150,     0,   163,     0,
+   162,     0,   132,   164,     0,   166,   167,     0,   157,   167,
+     0,   168,   121,   169,     0,   168,   171,     0,     0,    23,
+     0,    62,   165,     0,    62,     8,     0,    63,    21,   164,
+     0,    63,     9,   164,    98,    21,   164,    98,    21,   164,
+     0,    64,   119,   164,    98,    21,   164,   102,   170,   104,
+     0,    64,   119,   164,    98,    21,   164,   102,   104,     0,
+    65,   123,   130,   164,   100,   174,   101,    36,    21,   164,
+    66,    21,   164,     0,    66,     0,    67,     0,   170,   119,
+   162,    98,    21,   164,     0,   119,   162,    98,    21,   164,
+     0,   121,   176,     0,   132,   102,   164,    98,   164,   104,
+     0,   172,    98,   102,   164,    98,   164,   104,     0,   165,
+     0,   173,    98,   165,     0,   173,     0,     0,    57,    56,
+     0,    56,     0,   113,   132,   164,    98,   164,     0,   114,
+   132,   164,    98,   164,     0,   115,   132,   164,    98,   164,
+     0,    46,   165,     0,   116,   165,    98,   165,     0,    89,
+   165,    36,   132,     0,    90,   165,    98,   165,    98,   165,
+     0,    93,   165,    98,   132,     0,    95,   165,    98,   132,
+     0,    96,   165,    98,   132,     0,    94,   165,    98,   165,
+     0,    88,   172,     0,   175,   123,   130,   164,   100,   174,
+   101,     0,   179,     0,    98,   173,     0,     0,    35,     0,
+     0,    82,   132,   125,     0,    82,   132,    98,    15,   164,
+   125,     0,    83,   132,   125,     0,    83,   132,    98,    15,
+   164,   125,     0,    84,   165,     0,   178,    85,   132,   164,
+     0,   178,    86,   165,    98,   132,   164,     0,    87,   132,
+   164,   177,     0
 };
 
 #endif
@@ -1175,18 +1177,18 @@
   1154,  1163,  1166,  1174,  1178,  1183,  1184,  1187,  1190,  1200,
   1225,  1238,  1266,  1291,  1311,  1323,  1332,  1336,  1395,  1401,
   1409,  1414,  1419,  1422,  1425,  1432,  1442,  1473,  1480,  1501,
-  1511,  1516,  1526,  1529,  1536,  1536,  1546,  1553,  1557,  1560,
-  1563,  1576,  1596,  1598,  1601,  1604,  1608,  1611,  1613,  1615,
-  1620,  1621,  1623,  1626,  1634,  1639,  1641,  1645,  1649,  1657,
-  1657,  1658,  1658,  1660,  1666,  1671,  1677,  1680,  1685,  1689,
-  1693,  1779,  1779,  1781,  1789,  1789,  1791,  1795,  1795,  1804,
-  1807,  1810,  1813,  1816,  1819,  1822,  1825,  1828,  1852,  1859,
-  1862,  1867,  1867,  1873,  1877,  1880,  1888,  1897,  1901,  1911,
-  1922,  1925,  1928,  1931,  1934,  1948,  1952,  2005,  2008,  2014,
-  2022,  2032,  2039,  2044,  2051,  2055,  2061,  2061,  2063,  2066,
-  2072,  2084,  2095,  2105,  2117,  2124,  2131,  2138,  2143,  2162,
-  2184,  2198,  2255,  2261,  2263,  2267,  2270,  2276,  2280,  2284,
-  2288,  2292,  2299,  2309,  2322
+  1511,  1516,  1523,  1533,  1536,  1543,  1543,  1553,  1560,  1564,
+  1567,  1570,  1583,  1603,  1605,  1608,  1611,  1615,  1618,  1620,
+  1622,  1627,  1628,  1630,  1633,  1641,  1646,  1648,  1652,  1656,
+  1664,  1664,  1665,  1665,  1667,  1673,  1678,  1684,  1687,  1692,
+  1696,  1700,  1786,  1786,  1788,  1796,  1796,  1798,  1802,  1802,
+  1811,  1814,  1817,  1820,  1823,  1826,  1829,  1832,  1835,  1859,
+  1866,  1869,  1874,  1874,  1880,  1884,  1887,  1895,  1904,  1908,
+  1918,  1929,  1932,  1935,  1938,  1941,  1955,  1959,  2012,  2015,
+  2021,  2029,  2039,  2046,  2051,  2058,  2062,  2068,  2068,  2070,
+  2073,  2079,  2091,  2102,  2112,  2124,  2131,  2138,  2145,  2150,
+  2169,  2191,  2199,  2213,  2270,  2276,  2278,  2282,  2285,  2291,
+  2295,  2299,  2303,  2307,  2314,  2324,  2337
 };
 #endif
 
@@ -1204,10 +1206,10 @@
 "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","OptAlign","OptCAlign","SectionString",
+"SHR","VAARG","EXTRACTELEMENT","VAARG_old","VANEXT_old","'='","','","'\\\\'",
+"'('","')'","'['","'x'","']'","'<'","'>'","'{'","'}'","'*'","'c'","INTVAL","EINT64VAL",
+"ArithmeticOps","LogicalOps","SetCondOps","ShiftOps","SIntType","UIntType","IntType",
+"FPType","OptAssign","OptLinkage","OptCallingConv","OptAlign","OptCAlign","SectionString",
 "OptSection","GlobalVarAttributes","GlobalVarAttribute","TypesV","UpRTypesV",
 "Types","PrimType","UpRTypes","TypeListI","ArgTypeListI","ConstVal","ConstExpr",
 "ConstVector","GlobalType","Module","FunctionList","ConstPool","@1","@2","BigOrLittle",
@@ -1221,29 +1223,29 @@
 #endif
 
 static const short yyr1[] = {     0,
-   110,   110,   111,   111,   112,   112,   112,   112,   112,   113,
-   113,   113,   114,   114,   114,   114,   114,   114,   115,   115,
-   116,   116,   116,   116,   117,   117,   117,   117,   118,   118,
-   119,   119,   120,   120,   121,   121,   121,   121,   121,   122,
-   122,   122,   122,   122,   123,   123,   124,   124,   125,   126,
-   126,   127,   127,   128,   128,   129,   129,   130,   130,   131,
-   132,   132,   132,   132,   132,   132,   132,   132,   132,   132,
-   132,   132,   132,   133,   133,   133,   133,   133,   133,   133,
-   133,   133,   133,   134,   134,   135,   135,   135,   135,   136,
-   136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
-   136,   136,   136,   136,   136,   137,   137,   137,   137,   137,
-   137,   137,   138,   138,   139,   139,   140,   141,   141,   141,
-   141,   142,   142,   143,   142,   144,   142,   142,   142,   142,
-   145,   145,   146,   146,   146,   147,   148,   148,   148,   149,
-   149,   150,   150,   151,   152,   152,   153,   153,   153,   153,
-   154,   155,   155,   156,   157,   157,   158,   160,   159,   161,
-   161,   161,   161,   161,   161,   161,   161,   161,   161,   162,
-   162,   163,   163,   164,   165,   165,   166,   167,   167,   167,
-   168,   168,   168,   168,   168,   168,   168,   168,   168,   169,
-   169,   170,   171,   171,   172,   172,   173,   173,   174,   174,
-   175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
-   175,   175,   175,   176,   176,   177,   177,   178,   178,   178,
-   178,   178,   178,   178,   178
+   111,   111,   112,   112,   113,   113,   113,   113,   113,   114,
+   114,   114,   115,   115,   115,   115,   115,   115,   116,   116,
+   117,   117,   117,   117,   118,   118,   118,   118,   119,   119,
+   120,   120,   121,   121,   122,   122,   122,   122,   122,   123,
+   123,   123,   123,   123,   124,   124,   125,   125,   126,   127,
+   127,   128,   128,   129,   129,   130,   130,   131,   131,   132,
+   133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
+   133,   133,   133,   134,   134,   134,   134,   134,   134,   134,
+   134,   134,   134,   135,   135,   136,   136,   136,   136,   137,
+   137,   137,   137,   137,   137,   137,   137,   137,   137,   137,
+   137,   137,   137,   137,   137,   138,   138,   138,   138,   138,
+   138,   138,   138,   139,   139,   140,   140,   141,   142,   142,
+   142,   142,   143,   143,   144,   143,   145,   143,   143,   143,
+   143,   146,   146,   147,   147,   147,   148,   149,   149,   149,
+   150,   150,   151,   151,   152,   153,   153,   154,   154,   154,
+   154,   155,   156,   156,   157,   158,   158,   159,   161,   160,
+   162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
+   163,   163,   164,   164,   165,   166,   166,   167,   168,   168,
+   168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
+   170,   170,   171,   172,   172,   173,   173,   174,   174,   175,
+   175,   176,   176,   176,   176,   176,   176,   176,   176,   176,
+   176,   176,   176,   176,   176,   177,   177,   178,   178,   179,
+   179,   179,   179,   179,   179,   179,   179
 };
 
 static const short yyr2[] = {     0,
@@ -1258,390 +1260,394 @@
      3,     2,     2,     1,     3,     1,     3,     1,     0,     4,
      3,     3,     4,     4,     3,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     6,     5,     8,     6,     6,
-     6,     6,     3,     1,     1,     1,     1,     2,     2,     2,
-     1,     4,     2,     0,     7,     0,     7,     3,     4,     0,
-     1,     1,     3,     3,     3,     3,     3,     1,     0,     1,
-     1,     1,     0,     2,     3,     1,     1,     3,     1,     0,
-     8,     1,     1,     3,     1,     1,     2,     0,     3,     1,
-     1,     1,     1,     1,     1,     1,     1,     3,     1,     1,
-     1,     1,     1,     2,     2,     2,     3,     2,     0,     1,
-     2,     2,     3,     9,     9,     8,    13,     1,     1,     6,
-     5,     2,     6,     7,     1,     3,     1,     0,     2,     1,
-     5,     5,     5,     2,     4,     4,     6,     4,     4,     4,
-     2,     7,     1,     2,     0,     1,     0,     3,     6,     3,
-     6,     2,     4,     6,     4
+     6,     6,     6,     3,     1,     1,     1,     1,     2,     2,
+     2,     1,     4,     2,     0,     7,     0,     7,     3,     4,
+     0,     1,     1,     3,     3,     3,     3,     3,     1,     0,
+     1,     1,     1,     0,     2,     3,     1,     1,     3,     1,
+     0,     8,     1,     1,     3,     1,     1,     2,     0,     3,
+     1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
+     1,     1,     1,     1,     2,     2,     2,     3,     2,     0,
+     1,     2,     2,     3,     9,     9,     8,    13,     1,     1,
+     6,     5,     2,     6,     7,     1,     3,     1,     0,     2,
+     1,     5,     5,     5,     2,     4,     4,     6,     4,     4,
+     4,     4,     2,     7,     1,     2,     0,     1,     0,     3,
+     6,     3,     6,     2,     4,     6,     4
 };
 
-static const short yydefact[] = {   130,
-    39,   121,   120,   158,    35,    36,    37,    38,    40,   179,
-   118,   119,   179,   140,   141,     0,     0,    39,     0,   123,
-    40,     0,    41,    42,    43,     0,     0,   180,   176,    34,
-   155,   156,   157,   175,     0,     0,     0,   128,     0,     0,
-     0,     0,    33,   159,    44,     1,     2,    57,    61,    62,
+static const short yydefact[] = {   131,
+    39,   122,   121,   159,    35,    36,    37,    38,    40,   180,
+   119,   120,   180,   141,   142,     0,     0,    39,     0,   124,
+    40,     0,    41,    42,    43,     0,     0,   181,   177,    34,
+   156,   157,   158,   176,     0,     0,     0,   129,     0,     0,
+     0,     0,    33,   160,    44,     1,     2,    57,    61,    62,
     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-    73,    74,     0,     0,     0,     0,   170,     0,     0,    56,
-    75,    60,   171,    76,   152,   153,   154,   217,   178,     0,
-     0,     0,   139,   129,   122,   115,   116,     0,     0,    77,
-     0,     0,    59,    82,    84,     0,     0,    89,    83,   216,
-     0,   200,     0,     0,     0,     0,    40,   188,   189,     5,
+    73,    74,     0,     0,     0,     0,   171,     0,     0,    56,
+    75,    60,   172,    76,   153,   154,   155,   219,   179,     0,
+     0,     0,   140,   130,   123,   116,   117,     0,     0,    77,
+     0,     0,    59,    82,    84,     0,     0,    89,    83,   218,
+     0,   201,     0,     0,     0,     0,    40,   189,   190,     5,
      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,     0,     0,     0,     0,     0,     0,     0,
-    19,    20,     0,     0,     0,     0,     0,     0,     0,   177,
-    40,   192,     0,   213,   135,   132,   131,   133,   134,   138,
-     0,   126,    61,    62,    63,    64,    65,    66,    67,    68,
-    69,    70,    71,     0,     0,     0,     0,   124,     0,     0,
-     0,    81,   150,    88,    86,     0,     0,   204,   199,   182,
-   181,     0,     0,    24,    28,    23,    27,    22,    26,    21,
-    25,    29,    30,     0,     0,    47,    47,   222,     0,     0,
-   211,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   136,    52,   103,   104,     3,     4,
-   101,   102,   105,   100,    96,    97,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    99,    98,    52,
-    58,    58,    85,   149,   143,   146,   147,     0,     0,    78,
-   160,   161,   162,   167,   163,   164,   165,   166,     0,   169,
-   173,   172,   174,     0,   183,     0,     0,     0,   218,     0,
-   220,   215,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   137,     0,   127,     0,
-     0,     0,    91,   114,     0,     0,    95,     0,    92,     0,
-     0,     0,     0,   125,    79,    80,   142,   144,     0,    50,
-    87,     0,     0,     0,     0,     0,     0,     0,     0,   225,
-     0,     0,   206,     0,   208,   209,   210,     0,     0,     0,
-   205,     0,   223,     0,     0,     0,    54,    52,   215,     0,
-     0,     0,    90,    93,    94,     0,     0,     0,     0,   148,
-   145,    51,    45,   168,     0,     0,   198,    47,    48,    47,
-   195,   214,     0,     0,     0,   201,   202,   203,   198,     0,
-    49,    55,    53,     0,     0,     0,   113,     0,     0,     0,
-     0,     0,   151,     0,     0,   197,     0,     0,   219,   221,
-     0,     0,     0,   207,     0,   224,   107,     0,     0,     0,
-     0,     0,     0,    46,     0,     0,     0,   196,   193,     0,
-   212,   106,     0,   109,   110,   111,   112,     0,   186,     0,
-     0,     0,   194,     0,   184,     0,   185,     0,     0,   108,
-     0,     0,     0,     0,     0,     0,   191,     0,     0,   190,
-   187,     0,     0,     0
+    19,    20,     0,     0,     0,     0,     0,     0,     0,     0,
+   178,    40,   193,     0,   215,   136,   133,   132,   134,   135,
+   139,     0,   127,    61,    62,    63,    64,    65,    66,    67,
+    68,    69,    70,    71,     0,     0,     0,     0,   125,     0,
+     0,     0,    81,   151,    88,    86,     0,     0,   205,   200,
+   183,   182,     0,     0,    24,    28,    23,    27,    22,    26,
+    21,    25,    29,    30,     0,     0,    47,    47,   224,     0,
+     0,   213,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   137,    52,   103,   104,
+     3,     4,   101,   102,   105,   100,    96,    97,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    99,    98,    52,    58,    58,    85,   150,   144,   147,   148,
+     0,     0,    78,   161,   162,   163,   168,   164,   165,   166,
+   167,     0,   170,   174,   173,   175,     0,   184,     0,     0,
+     0,   220,     0,   222,   217,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   138,     0,   128,     0,     0,     0,     0,    91,   115,     0,
+     0,    95,     0,    92,     0,     0,     0,     0,   126,    79,
+    80,   143,   145,     0,    50,    87,     0,     0,     0,     0,
+     0,     0,     0,     0,   227,     0,     0,   207,     0,   209,
+   212,   210,   211,     0,     0,     0,   206,     0,   225,     0,
+     0,     0,    54,    52,   217,     0,     0,     0,     0,    90,
+    93,    94,     0,     0,     0,     0,   149,   146,    51,    45,
+   169,     0,     0,   199,    47,    48,    47,   196,   216,     0,
+     0,     0,   202,   203,   204,   199,     0,    49,    55,    53,
+     0,     0,     0,     0,   114,     0,     0,     0,     0,     0,
+   152,     0,     0,   198,     0,     0,   221,   223,     0,     0,
+     0,   208,     0,   226,   107,     0,     0,     0,     0,     0,
+     0,     0,    46,     0,     0,     0,   197,   194,     0,   214,
+   106,     0,   113,   109,   110,   111,   112,     0,   187,     0,
+     0,     0,   195,     0,   185,     0,   186,     0,     0,   108,
+     0,     0,     0,     0,     0,     0,   192,     0,     0,   191,
+   188,     0,     0,     0
 };
 
 static const short yydefgoto[] = {    67,
-   221,   234,   235,   236,   237,   164,   165,   194,   166,    18,
-     9,    26,   383,   269,   337,   353,   289,   338,    68,    69,
-   167,    71,    72,    96,   176,   294,   260,   295,    88,   442,
-     1,     2,   240,   216,   148,    38,    84,   151,    73,   308,
-   246,   247,   248,    27,    77,    10,    33,    11,    12,    21,
-   261,    74,   263,   361,    13,    29,    30,   140,   421,    79,
-   201,   386,   387,   141,   142,   320,   143,   144
+   223,   237,   238,   239,   240,   165,   166,   195,   167,    18,
+     9,    26,   391,   272,   343,   360,   293,   344,    68,    69,
+   168,    71,    72,    96,   177,   299,   263,   300,    88,   452,
+     1,     2,   243,   218,   149,    38,    84,   152,    73,   313,
+   249,   250,   251,    27,    77,    10,    33,    11,    12,    21,
+   264,    74,   266,   368,    13,    29,    30,   141,   431,    79,
+   202,   394,   395,   142,   143,   325,   144,   145
 };
 
 static const short yypact[] = {-32768,
-    43,   304,-32768,-32768,-32768,-32768,-32768,-32768,    94,   -17,
--32768,-32768,   -11,-32768,-32768,    72,   -58,    47,   -35,-32768,
-    94,    66,-32768,-32768,-32768,   995,   -25,-32768,-32768,   111,
--32768,-32768,-32768,-32768,    -3,    10,    23,-32768,    35,   995,
-   112,   112,-32768,-32768,-32768,-32768,-32768,    42,-32768,-32768,
+    41,   181,-32768,-32768,-32768,-32768,-32768,-32768,    62,    12,
+-32768,-32768,   -14,-32768,-32768,   100,    -8,    49,     0,-32768,
+    62,    38,-32768,-32768,-32768,   979,   -19,-32768,-32768,   112,
+-32768,-32768,-32768,-32768,     8,    27,    68,-32768,    36,   979,
+   -13,   -13,-32768,-32768,-32768,-32768,-32768,    69,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   134,   142,   146,   512,-32768,   111,    58,-32768,
--32768,   -39,-32768,-32768,-32768,-32768,-32768,  1110,-32768,   139,
-    27,   163,   149,-32768,-32768,-32768,-32768,  1015,  1059,-32768,
-    79,    80,-32768,-32768,   -39,   -87,    85,   752,-32768,-32768,
-  1015,-32768,   133,  1117,    50,   115,    94,-32768,-32768,-32768,
+-32768,-32768,   169,   171,   173,   491,-32768,   112,    78,-32768,
+-32768,   -82,-32768,-32768,-32768,-32768,-32768,  1140,-32768,   156,
+    24,   177,   158,-32768,-32768,-32768,-32768,  1017,  1055,-32768,
+    81,    83,-32768,-32768,   -82,   -77,    90,   789,-32768,-32768,
+  1017,-32768,   136,  1093,     4,   116,    62,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1015,  1015,  1015,  1015,  1015,  1015,  1015,
--32768,-32768,  1015,  1015,  1015,  1015,  1015,  1015,  1015,-32768,
-    94,-32768,    63,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   -20,-32768,   132,   158,   184,   168,   187,   172,   188,   174,
-   189,   190,   191,   176,   195,   193,   410,-32768,  1015,  1015,
-  1015,-32768,   790,-32768,    97,    95,   576,-32768,-32768,    42,
--32768,   576,   576,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   576,   995,   104,   105,-32768,   576,   102,
-   107,   169,   113,   114,   116,   117,   576,   576,   576,   118,
-   995,  1015,  1015,   185,-32768,   125,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   124,   126,   127,   854,
-  1059,   532,   203,   129,   130,   135,   136,-32768,-32768,   125,
-   -69,   -13,   -39,-32768,   111,-32768,   141,   131,   892,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1059,-32768,
--32768,-32768,-32768,   143,-32768,   147,   576,    -6,-32768,     3,
--32768,   151,   576,   138,  1015,  1015,  1015,  1015,  1015,   157,
-   159,   164,  1015,   576,   576,   165,-32768,   -19,-32768,  1059,
-  1059,  1059,-32768,-32768,    40,   -33,-32768,   -31,-32768,  1059,
-  1059,  1059,  1059,-32768,-32768,-32768,-32768,-32768,   957,   178,
--32768,   -32,   212,   215,   144,   576,   251,   576,  1015,-32768,
-   166,   576,-32768,   167,-32768,-32768,-32768,   576,   576,   576,
--32768,   161,-32768,  1015,   241,   262,-32768,   125,   151,   231,
-   171,  1059,-32768,-32768,-32768,   173,   177,   179,   180,-32768,
--32768,-32768,   217,-32768,   576,   576,  1015,   181,-32768,   181,
--32768,   183,   576,   192,  1015,-32768,-32768,-32768,  1015,   576,
--32768,-32768,-32768,   182,  1015,  1059,-32768,  1059,  1059,  1059,
-  1059,   265,-32768,   194,   198,   183,   200,   227,-32768,-32768,
-  1015,   201,   576,-32768,   206,-32768,-32768,   207,   213,   209,
-   214,   218,   219,-32768,   263,    11,   252,-32768,-32768,   222,
--32768,-32768,  1059,-32768,-32768,-32768,-32768,   576,-32768,   655,
-    39,   269,-32768,   221,-32768,   233,-32768,   655,   576,-32768,
-   282,   235,   249,   576,   312,   313,-32768,   576,   576,-32768,
--32768,   338,   340,-32768
+-32768,-32768,-32768,  1017,  1017,  1017,  1017,  1017,  1017,  1017,
+-32768,-32768,  1017,  1017,  1017,  1017,  1017,  1017,  1017,  1017,
+-32768,    62,-32768,    59,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   -24,-32768,   126,   152,   189,   155,   190,   157,   191,
+   160,   192,   193,   195,   168,   194,   197,   360,-32768,  1017,
+  1017,  1017,-32768,   827,-32768,   101,   105,   610,-32768,-32768,
+    69,-32768,   610,   610,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   610,   979,   113,   117,-32768,   610,
+   114,   119,   196,   128,   132,   133,   137,   139,   610,   610,
+   610,   140,   979,  1017,  1017,   210,-32768,   141,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   142,   143,
+   144,   147,   865,  1055,   567,   216,   148,   149,   151,   159,
+-32768,-32768,   141,    33,    37,   -82,-32768,   112,-32768,   162,
+   163,   903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,  1055,-32768,-32768,-32768,-32768,   165,-32768,   167,   610,
+     7,-32768,     9,-32768,   170,   610,   164,  1017,  1017,  1017,
+  1017,  1017,  1017,   172,   174,   175,  1017,   610,   610,   176,
+-32768,    52,-32768,  1055,  1055,  1055,  1055,-32768,-32768,   -17,
+   -83,-32768,   -72,-32768,  1055,  1055,  1055,  1055,-32768,-32768,
+-32768,-32768,-32768,   941,   207,-32768,   -33,   237,   246,   179,
+   610,   265,   610,  1017,-32768,   183,   610,-32768,   184,-32768,
+-32768,-32768,-32768,   610,   610,   610,-32768,   185,-32768,  1017,
+   247,   271,-32768,   141,   170,   241,   188,   208,  1055,-32768,
+-32768,-32768,   209,   211,   213,   215,-32768,-32768,-32768,   229,
+-32768,   610,   610,  1017,   217,-32768,   217,-32768,   219,   610,
+   220,  1017,-32768,-32768,-32768,  1017,   610,-32768,-32768,-32768,
+   186,  1017,  1055,  1055,-32768,  1055,  1055,  1055,  1055,   285,
+-32768,   224,   206,   219,   222,   236,-32768,-32768,  1017,   221,
+   610,-32768,   223,-32768,-32768,   228,   235,   238,   239,   240,
+   242,   243,-32768,   273,    35,   259,-32768,-32768,   232,-32768,
+-32768,  1055,-32768,-32768,-32768,-32768,-32768,   610,-32768,   691,
+    43,   316,-32768,   244,-32768,   249,-32768,   691,   610,-32768,
+   321,   250,   283,   610,   330,   331,-32768,   610,   610,-32768,
+-32768,   353,   354,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,   264,   266,   275,   277,  -105,  -104,  -374,-32768,   311,
-   339,   -78,-32768,  -190,    48,-32768,  -223,-32768,   -37,-32768,
-   -26,-32768,   -53,   271,-32768,   -84,   196,  -201,   319,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    14,-32768,
-    53,-32768,-32768,   343,-32768,-32768,-32768,-32768,   368,-32768,
-  -323,   -43,    38,   -93,-32768,   358,-32768,-32768,-32768,-32768,
--32768,    54,     5,-32768,-32768,    33,-32768,-32768
+-32768,   277,   279,   281,   282,  -105,  -103,  -403,-32768,   332,
+   343,   -78,-32768,  -191,    48,-32768,  -226,-32768,   -34,-32768,
+   -26,-32768,   -55,   266,-32768,   -87,   199,  -167,   326,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,     2,-32768,
+    55,-32768,-32768,   349,-32768,-32768,-32768,-32768,   369,-32768,
+  -359,   -43,   121,   -96,-32768,   359,-32768,-32768,-32768,-32768,
+-32768,    50,    -1,-32768,-32768,    31,-32768,-32768
 };
 
 
-#define	YYLAST		1223
+#define	YYLAST		1236
 
 
 static const short yytable[] = {    70,
-   192,   193,    85,    75,   168,    28,   271,   178,   316,   171,
-   181,    28,    95,    70,   335,    19,   304,   318,    31,   172,
-   184,   185,   186,   187,   188,   189,   190,   191,   195,   296,
-   298,   420,   198,   305,   336,   202,   203,    39,    99,   204,
-   205,   206,  -117,    19,    95,   210,   428,   317,   184,   185,
-   186,   187,   188,   189,   190,   191,   317,   312,   182,   -58,
-    43,   152,   211,   342,   342,   342,    40,     3,    99,    45,
-   183,   344,   354,     4,   177,   345,   214,   177,   146,   147,
-    76,    97,   215,     5,     6,     7,     8,     5,     6,     7,
-     8,   306,    80,    41,    99,    32,   426,   196,   197,   177,
-   199,   200,   177,   177,   432,    81,   177,   177,   177,   207,
-   208,   209,   177,   419,   373,   241,   242,   243,    82,   286,
-    35,    36,    37,   239,   184,   185,   186,   187,   188,   189,
-   190,   191,    14,   262,    15,    83,   342,    90,   262,   262,
-   -59,   427,   343,    86,    87,    91,   245,   212,   213,    92,
-   262,    22,    23,    24,    25,   262,    98,   267,   217,   218,
-   -24,   -24,   145,   262,   262,   262,   149,   389,    70,   390,
-   -23,   -23,   150,   284,   -22,   -22,   -21,   -21,   219,   220,
-   169,   170,   324,   173,    70,   285,   177,   -28,   179,   331,
-   -27,   -26,   -25,   249,   250,   243,   -31,   -32,   222,   223,
-   268,   270,   273,   274,   275,   339,   340,   341,   287,   276,
-   277,   335,   278,   279,   283,   346,   347,   348,   349,   264,
-   265,   288,   290,   262,   291,   292,   299,   300,   301,   262,
-   310,   266,   355,   302,   303,   356,   272,   309,   322,   313,
-   262,   262,   357,   314,   280,   281,   282,   319,   323,   177,
-   325,   326,   327,   328,   359,   329,   177,   377,   307,   369,
-   330,   334,   363,   365,   371,   372,   375,   376,   404,   378,
-   382,   394,   262,   379,   262,   380,   381,   388,   262,   391,
-   317,   397,   245,   418,   262,   262,   262,   422,   393,   429,
-   405,   399,   177,   400,   401,   402,   403,   408,   406,   407,
-   192,   193,   434,   409,   315,   411,   412,   370,   414,   413,
-   321,   262,   262,   415,   436,   192,   193,   416,   417,   262,
-   430,   332,   333,   -34,   423,    14,   262,    15,   424,   431,
-   177,   435,   438,   439,     4,   -34,   -34,   443,   177,   444,
-    78,   136,   177,   137,   -34,   -34,   -34,   -34,   398,   262,
-   -34,    16,   138,   358,   139,   360,    42,   352,    17,   364,
-    89,   351,   238,    44,   177,   366,   367,   368,   175,    20,
-    34,   374,   362,   395,   262,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   262,     0,     0,     0,     0,
-   262,     0,   384,   385,   262,   262,     0,     0,     0,     0,
-   392,     0,     0,     0,     0,     0,     0,   396,     0,     0,
-     0,     0,     0,     0,    46,    47,     0,     0,     0,     0,
+   193,   169,   194,    19,   179,    85,   274,   182,    28,    75,
+    95,   430,   183,    70,   349,    31,   309,   -58,    86,    87,
+   172,   321,   351,   323,   184,   349,    99,   438,   196,   199,
+   173,    19,   203,   204,    28,   352,   205,   206,   207,   208,
+  -118,    45,    95,   212,   185,   186,   187,   188,   189,   190,
+   191,   192,   185,   186,   187,   188,   189,   190,   191,   192,
+   322,   153,   322,   213,   349,     3,   301,   303,    40,    97,
+   436,     4,   361,   216,   178,   147,   148,   178,   442,   217,
+   349,     5,     6,     7,     8,   341,   350,    76,    39,     5,
+     6,     7,     8,    32,   317,    41,    43,   197,   198,   178,
+   200,   201,   178,   178,    80,   342,   178,   178,   178,   178,
+   209,   210,   211,   178,   244,   245,   246,   380,   290,    22,
+    23,    24,    25,    81,   242,   185,   186,   187,   188,   189,
+   190,   191,   192,    14,   265,    15,   310,    83,   429,   265,
+   265,    99,   311,   214,   215,    99,   437,   248,    35,    36,
+    37,   265,   219,   220,   -24,   -24,   265,   -23,   -23,   -22,
+   -22,   270,   -21,   -21,    82,   265,   265,   265,   -59,    70,
+   221,   222,    90,   397,    91,   398,    92,    98,   288,   146,
+   150,   151,   329,   170,   331,   171,    70,   289,   178,   174,
+   337,   180,   -28,   -27,   -26,   -25,   246,   224,   252,   -31,
+   -34,   -32,    14,   225,    15,   253,   345,   346,   347,   348,
+   271,     4,   -34,   -34,   273,   276,   277,   353,   354,   355,
+   356,   -34,   -34,   -34,   -34,   279,   265,   -34,    16,   280,
+   281,   278,   265,   291,   282,    17,   283,   287,   292,   304,
+   341,   294,   295,   296,   265,   265,   297,   305,   306,   312,
+   307,   328,   178,   330,   178,   332,   333,   362,   308,   314,
+   178,   385,   318,   315,   319,   327,   363,   324,   366,   334,
+   378,   335,   336,   340,   379,   402,   382,   265,   364,   265,
+   370,   372,   390,   265,   376,   383,   405,   248,   413,   322,
+   265,   265,   265,   428,   432,   407,   408,   178,   409,   410,
+   411,   412,   417,   267,   268,   384,   386,   415,   387,   193,
+   388,   194,   389,   377,   396,   269,   399,   401,   265,   265,
+   275,   414,   416,   420,   418,   193,   265,   194,   421,   284,
+   285,   286,   422,   265,   434,   433,   439,   178,   423,   424,
+   425,   444,   426,   427,   440,   178,   441,   445,   446,   178,
+   448,   449,   453,   454,   137,   406,   138,   265,   139,   140,
+    42,    78,   359,   176,    46,    47,   241,    89,   358,    44,
+    20,    34,   178,   369,   403,   381,     0,     0,     0,     0,
+     0,    14,     0,    15,   265,   226,     0,     0,     0,     0,
+   320,     0,     0,     0,     0,   265,   326,   227,   228,     0,
+   265,     0,     0,     0,   265,   265,     0,     0,   338,   339,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   410,    14,     0,    15,     0,   224,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   225,   226,     0,
-     0,     0,     0,     0,     0,   425,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   433,     0,     0,     0,
-     0,   437,     0,     0,     0,   440,   441,   110,   111,   112,
+     0,     0,     0,     0,     0,     0,     0,   110,   111,   112,
    113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-   123,     0,     0,     0,     0,     0,   227,     0,   228,   229,
-   131,   132,     0,     0,     0,     0,     0,     0,     0,     0,
-   230,     0,     0,   231,     0,   232,    46,    47,   233,    93,
-    49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-    59,    60,    61,    14,     0,    15,    46,    47,     0,    93,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-   163,    60,    61,    14,     0,    15,    62,     0,     0,     0,
+   123,   365,     0,   367,     0,     0,   229,   371,   230,   231,
+   131,   132,     0,   232,   373,   374,   375,     0,     0,     0,
+     0,   233,     0,     0,   234,     0,   235,     0,     0,   236,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    62,     0,   251,   252,
-    46,    47,   253,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    14,     0,    15,
-     0,   254,   255,   256,     0,     0,     0,     0,     0,    63,
-     0,     0,    64,   257,   258,    65,     0,    66,    94,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    63,
-     0,     0,    64,     0,     0,    65,     0,    66,   297,     0,
-     0,     0,     0,   110,   111,   112,   113,   114,   115,   116,
-   117,   118,   119,   120,   121,   122,   123,   251,   252,     0,
-     0,   253,   227,     0,   228,   229,   131,   132,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   259,
-   254,   255,   256,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   257,   258,     0,     0,     0,     0,     0,     0,
+     0,     0,   392,   393,     0,     0,     0,     0,     0,     0,
+   400,     0,     0,     0,     0,    46,    47,   404,    93,    49,
+    50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+    60,    61,    14,     0,    15,     0,     0,     0,     0,     0,
+     0,   419,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    62,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   435,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   443,
+     0,     0,     0,     0,   447,     0,     0,     0,   450,   451,
+     0,    46,    47,     0,    93,   154,   155,   156,   157,   158,
+   159,   160,   161,   162,   163,   164,    60,    61,    14,    63,
+    15,     0,    64,     0,     0,    65,     0,    66,    94,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    62,   254,   255,    46,    47,   256,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    14,     0,    15,     0,   257,   258,   259,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   260,   261,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    63,     0,     0,    64,     0,
+     0,    65,     0,    66,   302,     0,     0,   110,   111,   112,
+   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+   123,     0,     0,   254,   255,     0,   229,   256,   230,   231,
+   131,   132,     0,   232,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   262,     0,   257,   258,   259,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   260,   261,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   110,   111,   112,   113,   114,   115,   116,   117,
-   118,   119,   120,   121,   122,   123,     0,     0,     0,     0,
-     0,   227,     0,   228,   229,   131,   132,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    46,    47,   259,    93,
-    49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-    59,    60,    61,    14,     0,    15,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   174,     0,
-     0,     0,     0,     0,    46,    47,    62,    93,    49,    50,
-    51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-    61,    14,     0,    15,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   244,     0,     0,     0,
-     0,     0,     0,     0,    62,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    63,
-     0,     0,    64,     0,     0,    65,     0,    66,    46,    47,
-     0,    93,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,   162,   163,    60,    61,    14,     0,    15,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    63,     0,     0,
-    64,     0,     0,    65,     0,    66,    46,    47,    62,    93,
-    49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-    59,    60,    61,    14,     0,    15,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   311,     0,
-     0,     0,     0,     0,     0,     0,    62,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    63,     0,     0,    64,     0,   293,    65,     0,    66,
-     0,    46,    47,     0,    93,    49,    50,    51,    52,    53,
-    54,    55,    56,    57,    58,    59,    60,    61,    14,     0,
-    15,     0,     0,     0,     0,     0,     0,     0,     0,    63,
-     0,     0,    64,   350,     0,    65,     0,    66,     0,    46,
-    47,    62,    48,    49,    50,    51,    52,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    14,     0,    15,    46,
-    47,     0,    93,    49,    50,    51,    52,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    14,     0,    15,    62,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    63,     0,     0,    64,     0,    62,
-    65,     0,    66,    46,    47,     0,    93,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,   162,   163,    60,    61,
+     0,     0,     0,     0,     0,     0,     0,     0,   110,   111,
+   112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+   122,   123,     0,     0,     0,     0,     0,   229,     0,   230,
+   231,   131,   132,     0,   232,     0,     0,     0,     0,     0,
+     0,     0,     0,    46,    47,   262,    93,    49,    50,    51,
+    52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
     14,     0,    15,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    63,     0,     0,    64,     0,     0,    65,     0,
-    66,     0,     0,    62,     0,     0,     0,     0,     0,     0,
-     0,     0,    63,     0,     0,    64,     0,     0,    65,     0,
-    66,    46,    47,     0,   180,    49,    50,    51,    52,    53,
+     0,     0,     0,     0,     0,   175,     0,     0,     0,     0,
+     0,    46,    47,    62,    93,    49,    50,    51,    52,    53,
     54,    55,    56,    57,    58,    59,    60,    61,    14,     0,
-    15,     0,     0,     0,   100,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   101,    63,     0,     0,    64,
-     0,    62,    65,     0,    66,   102,   103,     0,     0,     0,
+    15,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   247,     0,     0,     0,     0,     0,    46,
+    47,    62,    93,   154,   155,   156,   157,   158,   159,   160,
+   161,   162,   163,   164,    60,    61,    14,    63,    15,     0,
+    64,     0,     0,    65,     0,    66,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    46,    47,    62,
+    93,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+    58,    59,    60,    61,    14,    63,    15,     0,    64,     0,
+     0,    65,     0,    66,     0,     0,     0,     0,     0,   316,
+     0,     0,     0,     0,     0,    46,    47,    62,    93,    49,
+    50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+    60,    61,    14,    63,    15,     0,    64,     0,   298,    65,
+     0,    66,     0,     0,     0,     0,     0,   357,     0,     0,
+     0,     0,     0,    46,    47,    62,    48,    49,    50,    51,
+    52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+    14,    63,    15,     0,    64,     0,     0,    65,     0,    66,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    46,    47,    62,    93,    49,    50,    51,    52,    53,
+    54,    55,    56,    57,    58,    59,    60,    61,    14,    63,
+    15,     0,    64,     0,     0,    65,     0,    66,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
+    47,    62,    93,   154,   155,   156,   157,   158,   159,   160,
+   161,   162,   163,   164,    60,    61,    14,    63,    15,     0,
+    64,     0,     0,    65,     0,    66,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    46,    47,    62,
+   181,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+    58,    59,    60,    61,    14,    63,    15,     0,    64,     0,
+     0,    65,     0,    66,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    62,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    63,     0,     0,    64,     0,     0,    65,
+     0,    66,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   100,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   101,     0,     0,     0,     0,
+     0,    63,     0,     0,    64,   102,   103,    65,     0,    66,
      0,   104,   105,   106,   107,   108,   109,   110,   111,   112,
    113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
    123,   124,   125,   126,     0,     0,   127,   128,   129,   130,
-   131,   132,   133,   134,   135,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    63,     0,     0,    64,     0,     0,
-    65,     0,    66
+   131,   132,   133,   134,   135,   136
 };
 
 static const short yycheck[] = {    26,
-   106,   106,    40,    29,    89,    23,   197,   101,    15,    97,
-   104,    23,    66,    40,    34,     2,   240,    15,    30,   107,
-    10,    11,    12,    13,    14,    15,    16,    17,   107,   231,
-   232,   406,   126,   103,    54,   129,   130,    96,   108,   133,
-   134,   135,     0,    30,    98,   139,   421,    54,    10,    11,
-    12,    13,    14,    15,    16,    17,    54,   259,     9,    99,
-    96,    88,   141,    97,    97,    97,    20,    25,   108,     4,
-    21,   105,   105,    31,   101,   107,    97,   104,    52,    53,
-   106,    68,   103,    41,    42,    43,    44,    41,    42,    43,
-    44,   105,    96,    47,   108,   107,   420,   124,   125,   126,
-   127,   128,   129,   130,   428,    96,   133,   134,   135,   136,
-   137,   138,   139,   103,   338,   169,   170,   171,    96,   213,
-    49,    50,    51,   167,    10,    11,    12,    13,    14,    15,
-    16,    17,    22,   177,    24,   101,    97,     4,   182,   183,
-    99,   103,   103,    32,    33,     4,   173,    85,    86,     4,
-   194,    58,    59,    60,    61,   199,    99,   195,    27,    28,
-     3,     4,    24,   207,   208,   209,     4,   358,   195,   360,
-     3,     4,    24,   211,     3,     4,     3,     4,     3,     4,
-   102,   102,   276,    99,   211,   212,   213,     4,    56,   283,
-     4,     4,     4,    97,   100,   249,     7,     7,     4,     7,
-    97,    97,   101,    97,    36,   290,   291,   292,    24,    97,
-    97,    34,    97,    97,    97,   300,   301,   302,   303,   182,
-   183,    97,    99,   267,    99,    99,    24,    99,    99,   273,
-   100,   194,    21,    99,    99,    21,   199,    97,   101,    97,
-   284,   285,    99,    97,   207,   208,   209,    97,   275,   276,
-   277,   278,   279,    97,     4,    97,   283,   342,   245,    99,
-    97,    97,    97,    97,    24,     4,    36,    97,     4,    97,
-    54,   365,   316,    97,   318,    97,    97,    97,   322,    97,
-    54,   100,   309,    21,   328,   329,   330,    36,    97,    21,
-    97,   376,   319,   378,   379,   380,   381,   391,   101,   100,
-   406,   406,    21,   103,   267,   100,   100,   334,   100,    97,
-   273,   355,   356,   100,    66,   421,   421,   100,   100,   363,
-   100,   284,   285,    20,   103,    22,   370,    24,   413,    97,
-   357,    97,    21,    21,    31,    32,    33,     0,   365,     0,
-    30,    78,   369,    78,    41,    42,    43,    44,   375,   393,
-    47,    48,    78,   316,    78,   318,    18,   310,    55,   322,
-    42,   309,   167,    21,   391,   328,   329,   330,    98,     2,
-    13,   339,   319,   369,   418,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,    -1,
-   434,    -1,   355,   356,   438,   439,    -1,    -1,    -1,    -1,
-   363,    -1,    -1,    -1,    -1,    -1,    -1,   370,    -1,    -1,
-    -1,    -1,    -1,    -1,     5,     6,    -1,    -1,    -1,    -1,
+   106,    89,   106,     2,   101,    40,   198,   104,    23,    29,
+    66,   415,     9,    40,    98,    30,   243,   100,    32,    33,
+    98,    15,   106,    15,    21,    98,   109,   431,   107,   126,
+   108,    30,   129,   130,    23,   108,   133,   134,   135,   136,
+     0,     4,    98,   140,    10,    11,    12,    13,    14,    15,
+    16,    17,    10,    11,    12,    13,    14,    15,    16,    17,
+    54,    88,    54,   142,    98,    25,   234,   235,    20,    68,
+   430,    31,   106,    98,   101,    52,    53,   104,   438,   104,
+    98,    41,    42,    43,    44,    34,   104,   107,    97,    41,
+    42,    43,    44,   108,   262,    47,    97,   124,   125,   126,
+   127,   128,   129,   130,    97,    54,   133,   134,   135,   136,
+   137,   138,   139,   140,   170,   171,   172,   344,   215,    58,
+    59,    60,    61,    97,   168,    10,    11,    12,    13,    14,
+    15,    16,    17,    22,   178,    24,   104,   102,   104,   183,
+   184,   109,   106,    85,    86,   109,   104,   174,    49,    50,
+    51,   195,    27,    28,     3,     4,   200,     3,     4,     3,
+     4,   196,     3,     4,    97,   209,   210,   211,   100,   196,
+     3,     4,     4,   365,     4,   367,     4,   100,   213,    24,
+     4,    24,   279,   103,   281,   103,   213,   214,   215,   100,
+   287,    56,     4,     4,     4,     4,   252,     4,    98,     7,
+    20,     7,    22,     7,    24,   101,   294,   295,   296,   297,
+    98,    31,    32,    33,    98,   102,    98,   305,   306,   307,
+   308,    41,    42,    43,    44,    98,   270,    47,    48,    98,
+    98,    36,   276,    24,    98,    55,    98,    98,    98,    24,
+    34,   100,   100,   100,   288,   289,   100,   100,   100,   248,
+   100,   278,   279,   280,   281,   282,   283,    21,   100,    98,
+   287,   349,    98,   101,    98,   102,    21,    98,     4,    98,
+    24,    98,    98,    98,     4,   372,    36,   321,   100,   323,
+    98,    98,    54,   327,   100,    98,   101,   314,     4,    54,
+   334,   335,   336,    21,    36,   383,   384,   324,   386,   387,
+   388,   389,   399,   183,   184,    98,    98,   102,    98,   415,
+    98,   415,    98,   340,    98,   195,    98,    98,   362,   363,
+   200,    98,   101,   101,   104,   431,   370,   431,   101,   209,
+   210,   211,    98,   377,   422,   104,    21,   364,   101,   101,
+   101,    21,   101,   101,   101,   372,    98,    98,    66,   376,
+    21,    21,     0,     0,    78,   382,    78,   401,    78,    78,
+    18,    30,   315,    98,     5,     6,   168,    42,   314,    21,
+     2,    13,   399,   324,   376,   345,    -1,    -1,    -1,    -1,
+    -1,    22,    -1,    24,   428,    26,    -1,    -1,    -1,    -1,
+   270,    -1,    -1,    -1,    -1,   439,   276,    38,    39,    -1,
+   444,    -1,    -1,    -1,   448,   449,    -1,    -1,   288,   289,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   393,    22,    -1,    24,    -1,    26,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,   418,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,
-    -1,   434,    -1,    -1,    -1,   438,   439,    68,    69,    70,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-    81,    -1,    -1,    -1,    -1,    -1,    87,    -1,    89,    90,
-    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,   104,    -1,   106,     5,     6,   109,     8,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    -1,    24,     5,     6,    -1,     8,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    -1,    24,    45,    -1,    -1,    -1,
+    81,   321,    -1,   323,    -1,    -1,    87,   327,    89,    90,
+    91,    92,    -1,    94,   334,   335,   336,    -1,    -1,    -1,
+    -1,   102,    -1,    -1,   105,    -1,   107,    -1,    -1,   110,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,     3,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    22,    -1,    24,
-    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    98,
-    -1,    -1,   101,    38,    39,   104,    -1,   106,   107,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
-    -1,    -1,   101,    -1,    -1,   104,    -1,   106,   107,    -1,
-    -1,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
-    75,    76,    77,    78,    79,    80,    81,     3,     4,    -1,
-    -1,     7,    87,    -1,    89,    90,    91,    92,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
-    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    38,    39,    -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,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    80,    81,    -1,    -1,    -1,    -1,
-    -1,    87,    -1,    89,    90,    91,    92,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,   104,     8,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
-    -1,    -1,    -1,    -1,     5,     6,    45,     8,     9,    10,
-    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
-    -1,    -1,   101,    -1,    -1,   104,    -1,   106,     5,     6,
-    -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    -1,    24,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    -1,    -1,
-   101,    -1,    -1,   104,    -1,   106,     5,     6,    45,     8,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    98,    -1,    -1,   101,    -1,   103,   104,    -1,   106,
+    -1,    -1,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+   370,    -1,    -1,    -1,    -1,     5,     6,   377,     8,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,
+    -1,   401,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   439,
+    -1,    -1,    -1,    -1,   444,    -1,    -1,    -1,   448,   449,
     -1,     5,     6,    -1,     8,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    -1,
-    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
-    -1,    -1,   101,    37,    -1,   104,    -1,   106,    -1,     5,
-     6,    45,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    -1,    24,     5,
-     6,    -1,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    -1,    24,    45,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    99,
+    24,    -1,   102,    -1,    -1,   105,    -1,   107,   108,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    98,    -1,    -1,   101,    -1,    45,
-   104,    -1,   106,     5,     6,    -1,     8,     9,    10,    11,
+    -1,    45,     3,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    22,    -1,    24,    -1,    26,    27,    28,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,
+    -1,   105,    -1,   107,   108,    -1,    -1,    68,    69,    70,
+    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+    81,    -1,    -1,     3,     4,    -1,    87,     7,    89,    90,
+    91,    92,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   105,    -1,    26,    27,    28,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,
+    -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,    68,    69,
+    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    -1,    89,
+    90,    91,    92,    -1,    94,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,     5,     6,   105,     8,     9,    10,    11,
     12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     22,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    98,    -1,    -1,   101,    -1,    -1,   104,    -1,
-   106,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    98,    -1,    -1,   101,    -1,    -1,   104,    -1,
-   106,     5,     6,    -1,     8,     9,    10,    11,    12,    13,
+    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
+    -1,     5,     6,    45,     8,     9,    10,    11,    12,    13,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    -1,
-    24,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    46,    98,    -1,    -1,   101,
-    -1,    45,   104,    -1,   106,    56,    57,    -1,    -1,    -1,
+    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,     5,
+     6,    45,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    99,    24,    -1,
+   102,    -1,    -1,   105,    -1,   107,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,    45,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    99,    24,    -1,   102,    -1,
+    -1,   105,    -1,   107,    -1,    -1,    -1,    -1,    -1,    37,
+    -1,    -1,    -1,    -1,    -1,     5,     6,    45,     8,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    99,    24,    -1,   102,    -1,   104,   105,
+    -1,   107,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
+    -1,    -1,    -1,     5,     6,    45,     8,     9,    10,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    99,    24,    -1,   102,    -1,    -1,   105,    -1,   107,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,     5,     6,    45,     8,     9,    10,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    99,
+    24,    -1,   102,    -1,    -1,   105,    -1,   107,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
+     6,    45,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    99,    24,    -1,
+   102,    -1,    -1,   105,    -1,   107,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,    45,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    99,    24,    -1,   102,    -1,
+    -1,   105,    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,
+    -1,    99,    -1,    -1,   102,    56,    57,   105,    -1,   107,
     -1,    62,    63,    64,    65,    66,    67,    68,    69,    70,
     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
     81,    82,    83,    84,    -1,    -1,    87,    88,    89,    90,
-    91,    92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    98,    -1,    -1,   101,    -1,    -1,
-   104,    -1,   106
+    91,    92,    93,    94,    95,    96
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/share/bison.simple"
@@ -2187,7 +2193,7 @@
   switch (yyn) {
 
 case 2:
-#line 992 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 992 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX)     // Outside of my range!
     ThrowException("Value too large for type!");
@@ -2195,7 +2201,7 @@
 ;
     break;}
 case 4:
-#line 1000 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1000 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX)     // Outside of my range!
     ThrowException("Value too large for type!");
@@ -2203,55 +2209,55 @@
 ;
     break;}
 case 33:
-#line 1023 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1023 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.StrVal = yyvsp[-1].StrVal;
   ;
     break;}
 case 34:
-#line 1026 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1026 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.StrVal = 0;
   ;
     break;}
 case 35:
-#line 1030 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1030 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.Linkage = GlobalValue::InternalLinkage; ;
     break;}
 case 36:
-#line 1031 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1031 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.Linkage = GlobalValue::LinkOnceLinkage; ;
     break;}
 case 37:
-#line 1032 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1032 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.Linkage = GlobalValue::WeakLinkage; ;
     break;}
 case 38:
-#line 1033 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1033 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.Linkage = GlobalValue::AppendingLinkage; ;
     break;}
 case 39:
-#line 1034 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1034 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.Linkage = GlobalValue::ExternalLinkage; ;
     break;}
 case 40:
-#line 1036 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1036 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = CallingConv::C; ;
     break;}
 case 41:
-#line 1037 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1037 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = CallingConv::C; ;
     break;}
 case 42:
-#line 1038 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1038 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = CallingConv::Fast; ;
     break;}
 case 43:
-#line 1039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1039 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = CallingConv::Cold; ;
     break;}
 case 44:
-#line 1040 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1040 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
                    if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val)
                      ThrowException("Calling conv too large!");
@@ -2259,11 +2265,11 @@
                  ;
     break;}
 case 45:
-#line 1048 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1048 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = 0; ;
     break;}
 case 46:
-#line 1049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1049 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.UIntVal = yyvsp[0].UInt64Val;
   if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
@@ -2271,11 +2277,11 @@
 ;
     break;}
 case 47:
-#line 1054 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1054 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.UIntVal = 0; ;
     break;}
 case 48:
-#line 1055 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1055 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.UIntVal = yyvsp[0].UInt64Val;
   if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
@@ -2283,7 +2289,7 @@
 ;
     break;}
 case 49:
-#line 1062 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1062 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   for (unsigned i = 0, e = strlen(yyvsp[0].StrVal); i != e; ++i)
     if (yyvsp[0].StrVal[i] == '"' || yyvsp[0].StrVal[i] == '\\')
@@ -2292,30 +2298,30 @@
 ;
     break;}
 case 50:
-#line 1069 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1069 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.StrVal = 0; ;
     break;}
 case 51:
-#line 1070 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1070 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.StrVal = yyvsp[0].StrVal; ;
     break;}
 case 52:
-#line 1075 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1075 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {;
     break;}
 case 53:
-#line 1076 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1076 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {;
     break;}
 case 54:
-#line 1077 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1077 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurGV->setSection(yyvsp[0].StrVal);
     free(yyvsp[0].StrVal);
   ;
     break;}
 case 55:
-#line 1081 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1081 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[0].UInt64Val != 0 && !isPowerOf2_32(yyvsp[0].UInt64Val))
       ThrowException("Alignment must be a power of two!");
@@ -2323,15 +2329,15 @@
   ;
     break;}
 case 57:
-#line 1094 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1094 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
     break;}
 case 59:
-#line 1095 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1095 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
     break;}
 case 60:
-#line 1097 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1097 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!UpRefs.empty())
       ThrowException("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
@@ -2339,25 +2345,25 @@
   ;
     break;}
 case 74:
-#line 1108 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1108 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TypeVal = new PATypeHolder(OpaqueType::get());
   ;
     break;}
 case 75:
-#line 1111 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType);
   ;
     break;}
 case 76:
-#line 1114 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1114 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {            // Named types are also simple types...
   yyval.TypeVal = new PATypeHolder(getTypeVal(yyvsp[0].ValIDVal));
 ;
     break;}
 case 77:
-#line 1120 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1120 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                   // Type UpReference
     if (yyvsp[0].UInt64Val > (uint64_t)~0U) ThrowException("Value out of range!");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -2367,7 +2373,7 @@
   ;
     break;}
 case 78:
-#line 1127 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1127 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {           // Function derived type?
     std::vector<const Type*> Params;
     for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
@@ -2382,14 +2388,14 @@
   ;
     break;}
 case 79:
-#line 1139 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1139 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {          // Sized array type?
     yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
     delete yyvsp[-1].TypeVal;
   ;
     break;}
 case 80:
-#line 1143 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1143 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {          // Packed array type?
      const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get();
      if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val)
@@ -2403,7 +2409,7 @@
   ;
     break;}
 case 81:
-#line 1154 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1154 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
@@ -2415,51 +2421,51 @@
   ;
     break;}
 case 82:
-#line 1163 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1163 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                                  // Empty structure type?
     yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>()));
   ;
     break;}
 case 83:
-#line 1166 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1166 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                             // Pointer type?
     yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal)));
     delete yyvsp[-1].TypeVal;
   ;
     break;}
 case 84:
-#line 1174 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1174 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TypeList = new std::list<PATypeHolder>();
     yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
   ;
     break;}
 case 85:
-#line 1178 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1178 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     (yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
   ;
     break;}
 case 87:
-#line 1184 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1184 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     (yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy);
   ;
     break;}
 case 88:
-#line 1187 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1187 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     (yyval.TypeList = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
   ;
     break;}
 case 89:
-#line 1190 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1190 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TypeList = new std::list<PATypeHolder>();
   ;
     break;}
 case 90:
-#line 1200 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1200 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { // Nonempty unsized arr
     const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get());
     if (ATy == 0)
@@ -2487,7 +2493,7 @@
   ;
     break;}
 case 91:
-#line 1225 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1225 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
     if (ATy == 0)
@@ -2503,7 +2509,7 @@
   ;
     break;}
 case 92:
-#line 1238 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1238 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
     if (ATy == 0)
@@ -2534,7 +2540,7 @@
   ;
     break;}
 case 93:
-#line 1266 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1266 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { // Nonempty unsized arr
     const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get());
     if (PTy == 0)
@@ -2562,7 +2568,7 @@
   ;
     break;}
 case 94:
-#line 1291 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1291 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get());
     if (STy == 0)
@@ -2585,7 +2591,7 @@
   ;
     break;}
 case 95:
-#line 1311 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1311 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get());
     if (STy == 0)
@@ -2600,7 +2606,7 @@
   ;
     break;}
 case 96:
-#line 1323 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1323 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
     if (PTy == 0)
@@ -2612,14 +2618,14 @@
   ;
     break;}
 case 97:
-#line 1332 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1332 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get());
     delete yyvsp[-1].TypeVal;
   ;
     break;}
 case 98:
-#line 1336 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1336 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
     if (Ty == 0)
@@ -2681,7 +2687,7 @@
   ;
     break;}
 case 99:
-#line 1395 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1395 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType())
       ThrowException("Mismatched types for constant expression!");
@@ -2690,7 +2696,7 @@
   ;
     break;}
 case 100:
-#line 1401 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1401 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const Type *Ty = yyvsp[-1].TypeVal->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
@@ -2700,7 +2706,7 @@
   ;
     break;}
 case 101:
-#line 1409 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1409 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {      // integral constants
     if (!ConstantSInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val))
       ThrowException("Constant value doesn't fit in type!");
@@ -2708,7 +2714,7 @@
   ;
     break;}
 case 102:
-#line 1414 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1414 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {            // integral constants
     if (!ConstantUInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val))
       ThrowException("Constant value doesn't fit in type!");
@@ -2716,19 +2722,19 @@
   ;
     break;}
 case 103:
-#line 1419 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1419 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                      // Boolean constants
     yyval.ConstVal = ConstantBool::True;
   ;
     break;}
 case 104:
-#line 1422 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1422 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                     // Boolean constants
     yyval.ConstVal = ConstantBool::False;
   ;
     break;}
 case 105:
-#line 1425 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1425 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal))
       ThrowException("Floating point constant invalid for type!!");
@@ -2736,7 +2742,7 @@
   ;
     break;}
 case 106:
-#line 1432 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1432 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!yyvsp[-3].ConstVal->getType()->isFirstClassType())
       ThrowException("cast constant expression from a non-primitive type: '" +
@@ -2749,7 +2755,7 @@
   ;
     break;}
 case 107:
-#line 1442 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1442 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!isa<PointerType>(yyvsp[-2].ConstVal->getType()))
       ThrowException("GetElementPtr requires a pointer operand!");
@@ -2783,7 +2789,7 @@
   ;
     break;}
 case 108:
-#line 1473 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1473 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-5].ConstVal->getType() != Type::BoolTy)
       ThrowException("Select condition must be of boolean type!");
@@ -2793,7 +2799,7 @@
   ;
     break;}
 case 109:
-#line 1480 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1480 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
       ThrowException("Binary operator types must match!");
@@ -2817,7 +2823,7 @@
   ;
     break;}
 case 110:
-#line 1501 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1501 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
       ThrowException("Logical operator types must match!");
@@ -2830,7 +2836,7 @@
   ;
     break;}
 case 111:
-#line 1511 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1511 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
       ThrowException("setcc operand types must match!");
@@ -2838,7 +2844,7 @@
   ;
     break;}
 case 112:
-#line 1516 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1516 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-1].ConstVal->getType() != Type::UByteTy)
       ThrowException("Shift count for shift constant must be unsigned byte!");
@@ -2848,54 +2854,65 @@
   ;
     break;}
 case 113:
-#line 1526 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1523 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{
+        if (!isa<PackedType>(yyvsp[-3].ConstVal->getType()))
+      ThrowException("First operand of extractelement must be "
+                     "packed type!");
+    if (yyvsp[-1].ConstVal->getType() != Type::UIntTy)
+      ThrowException("Second operand of extractelement must be uint!");
+    yyval.ConstVal = ConstantExpr::getExtractElement(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+  ;
+    break;}
+case 114:
+#line 1533 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal);
   ;
     break;}
-case 114:
-#line 1529 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 115:
+#line 1536 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ConstVector = new std::vector<Constant*>();
     yyval.ConstVector->push_back(yyvsp[0].ConstVal);
   ;
     break;}
-case 115:
-#line 1536 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 116:
+#line 1543 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.BoolVal = false; ;
     break;}
-case 116:
-#line 1536 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 117:
+#line 1543 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.BoolVal = true; ;
     break;}
-case 117:
-#line 1546 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 118:
+#line 1553 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
   CurModule.ModuleDone();
 ;
     break;}
-case 118:
-#line 1553 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 119:
+#line 1560 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ModuleVal = yyvsp[-1].ModuleVal;
     CurFun.FunctionDone();
   ;
     break;}
-case 119:
-#line 1557 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ModuleVal = yyvsp[-1].ModuleVal;
-  ;
-    break;}
 case 120:
-#line 1560 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1564 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ModuleVal = yyvsp[-1].ModuleVal;
   ;
     break;}
 case 121:
-#line 1563 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1567 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{
+    yyval.ModuleVal = yyvsp[-1].ModuleVal;
+  ;
+    break;}
+case 122:
+#line 1570 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ModuleVal = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
@@ -2908,8 +2925,8 @@
     }
   ;
     break;}
-case 122:
-#line 1576 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 123:
+#line 1583 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     // Eagerly resolve types.  This is not an optimization, this is a
     // requirement that is due to the fact that we could have this:
@@ -2931,69 +2948,69 @@
     delete yyvsp[0].TypeVal;
   ;
     break;}
-case 123:
-#line 1596 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 124:
+#line 1603 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {       // Function prototypes can be in const pool
   ;
     break;}
-case 124:
-#line 1598 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 125:
+#line 1605 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[0].ConstVal == 0) ThrowException("Global value initializer is not a constant!");
     CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, yyvsp[-2].Linkage, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal);
                                                        ;
     break;}
-case 125:
-#line 1601 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 126:
+#line 1608 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurGV = 0;
   ;
     break;}
-case 126:
-#line 1604 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 127:
+#line 1611 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage,
                                              yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
     delete yyvsp[0].TypeVal;
                                                    ;
     break;}
-case 127:
-#line 1608 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 128:
+#line 1615 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurGV = 0;
   ;
     break;}
-case 128:
-#line 1611 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ 
-  ;
-    break;}
 case 129:
-#line 1613 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+#line 1618 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{ 
   ;
     break;}
 case 130:
-#line 1615 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ 
+#line 1620 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{
   ;
     break;}
 case 131:
-#line 1620 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Endianness = Module::BigEndian; ;
+#line 1622 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{ 
+  ;
     break;}
 case 132:
-#line 1621 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Endianness = Module::LittleEndian; ;
+#line 1627 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Endianness = Module::BigEndian; ;
     break;}
 case 133:
-#line 1623 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1628 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Endianness = Module::LittleEndian; ;
+    break;}
+case 134:
+#line 1630 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness);
   ;
     break;}
-case 134:
-#line 1626 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 135:
+#line 1633 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[0].UInt64Val == 32)
       CurModule.CurrentModule->setPointerSize(Module::Pointer32);
@@ -3003,89 +3020,89 @@
       ThrowException("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!");
   ;
     break;}
-case 135:
-#line 1634 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 136:
+#line 1641 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal);
     free(yyvsp[0].StrVal);
   ;
     break;}
-case 137:
-#line 1641 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
-          free(yyvsp[0].StrVal);
-        ;
-    break;}
 case 138:
-#line 1645 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1648 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
           CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
           free(yyvsp[0].StrVal);
         ;
     break;}
 case 139:
-#line 1649 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1652 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{
+          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
+          free(yyvsp[0].StrVal);
+        ;
+    break;}
+case 140:
+#line 1656 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
         ;
     break;}
-case 143:
-#line 1658 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 144:
+#line 1665 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.StrVal = 0; ;
     break;}
-case 144:
-#line 1660 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 145:
+#line 1667 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   if (*yyvsp[-1].TypeVal == Type::VoidTy)
     ThrowException("void typed arguments are invalid!");
   yyval.ArgVal = new std::pair<PATypeHolder*, char*>(yyvsp[-1].TypeVal, yyvsp[0].StrVal);
 ;
     break;}
-case 145:
-#line 1666 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 146:
+#line 1673 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = yyvsp[-2].ArgList;
     yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal);
     delete yyvsp[0].ArgVal;
   ;
     break;}
-case 146:
-#line 1671 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 147:
+#line 1678 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
     yyval.ArgList->push_back(*yyvsp[0].ArgVal);
     delete yyvsp[0].ArgVal;
   ;
     break;}
-case 147:
-#line 1677 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 148:
+#line 1684 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = yyvsp[0].ArgList;
   ;
     break;}
-case 148:
-#line 1680 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 149:
+#line 1687 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = yyvsp[-2].ArgList;
     yyval.ArgList->push_back(std::pair<PATypeHolder*,
                             char*>(new PATypeHolder(Type::VoidTy), 0));
   ;
     break;}
-case 149:
-#line 1685 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 150:
+#line 1692 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
     yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0));
   ;
     break;}
-case 150:
-#line 1689 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 151:
+#line 1696 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ArgList = 0;
   ;
     break;}
-case 151:
-#line 1694 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 152:
+#line 1701 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   UnEscapeLexed(yyvsp[-5].StrVal);
   std::string FunctionName(yyvsp[-5].StrVal);
@@ -3171,8 +3188,8 @@
   }
 ;
     break;}
-case 154:
-#line 1781 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 155:
+#line 1788 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.FunctionVal = CurFun.CurrentFunction;
 
@@ -3181,73 +3198,73 @@
   yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage);
 ;
     break;}
-case 157:
-#line 1791 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 158:
+#line 1798 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.FunctionVal = yyvsp[-1].FunctionVal;
 ;
     break;}
-case 158:
-#line 1795 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 159:
+#line 1802 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { CurFun.isDeclare = true; ;
     break;}
-case 159:
-#line 1795 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 160:
+#line 1802 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   yyval.FunctionVal = CurFun.CurrentFunction;
   CurFun.FunctionDone();
 ;
     break;}
-case 160:
-#line 1804 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 161:
+#line 1811 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {    // A reference to a direct constant
     yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
   ;
     break;}
-case 161:
-#line 1807 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 162:
+#line 1814 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
   ;
     break;}
-case 162:
-#line 1810 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 163:
+#line 1817 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                     // Perhaps it's an FP constant?
     yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
   ;
     break;}
-case 163:
-#line 1813 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 164:
+#line 1820 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::create(ConstantBool::True);
   ;
     break;}
-case 164:
-#line 1816 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 165:
+#line 1823 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::create(ConstantBool::False);
   ;
     break;}
-case 165:
-#line 1819 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 166:
+#line 1826 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::createNull();
   ;
     break;}
-case 166:
-#line 1822 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 167:
+#line 1829 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::createUndef();
   ;
     break;}
-case 167:
-#line 1825 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 168:
+#line 1832 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {     // A vector zero constant.
     yyval.ValIDVal = ValID::createZeroInit();
   ;
     break;}
-case 168:
-#line 1828 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 169:
+#line 1835 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { // Nonempty unsized packed vector
     const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType();
     int NumElements = yyvsp[-1].ConstVector->size(); 
@@ -3273,44 +3290,44 @@
     delete PTy; delete yyvsp[-1].ConstVector;
   ;
     break;}
-case 169:
-#line 1852 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 170:
+#line 1859 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal);
   ;
     break;}
-case 170:
-#line 1859 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 171:
+#line 1866 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {  // Is it an integer reference...?
     yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
   ;
     break;}
-case 171:
-#line 1862 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 172:
+#line 1869 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                   // Is it a named reference...?
     yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
   ;
     break;}
-case 174:
-#line 1873 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 175:
+#line 1880 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal;
   ;
     break;}
-case 175:
-#line 1877 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 176:
+#line 1884 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.FunctionVal = yyvsp[-1].FunctionVal;
   ;
     break;}
-case 176:
-#line 1880 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 177:
+#line 1887 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { // Do not allow functions with 0 basic blocks   
     yyval.FunctionVal = yyvsp[-1].FunctionVal;
   ;
     break;}
-case 177:
-#line 1888 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 178:
+#line 1895 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal);
     InsertValue(yyvsp[0].TermInstVal);
@@ -3320,15 +3337,15 @@
     yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal;
   ;
     break;}
-case 178:
-#line 1897 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 179:
+#line 1904 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
     yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
   ;
     break;}
-case 179:
-#line 1901 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 180:
+#line 1908 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BasicBlockVal = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
 
@@ -3340,8 +3357,8 @@
     BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
   ;
     break;}
-case 180:
-#line 1911 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 181:
+#line 1918 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BasicBlockVal = CurBB = getBBVal(ValID::create(yyvsp[0].StrVal), true);
 
@@ -3353,32 +3370,32 @@
     BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
   ;
     break;}
-case 181:
-#line 1922 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 182:
+#line 1929 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {              // Return with a result...
     yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal);
   ;
     break;}
-case 182:
-#line 1925 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 183:
+#line 1932 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                                       // Return with no result...
     yyval.TermInstVal = new ReturnInst();
   ;
     break;}
-case 183:
-#line 1928 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 184:
+#line 1935 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {                         // Unconditional Branch...
     yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[0].ValIDVal));
   ;
     break;}
-case 184:
-#line 1931 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 185:
+#line 1938 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {  
     yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[-3].ValIDVal), getBBVal(yyvsp[0].ValIDVal), getVal(Type::BoolTy, yyvsp[-6].ValIDVal));
   ;
     break;}
-case 185:
-#line 1934 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 186:
+#line 1941 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal), getBBVal(yyvsp[-3].ValIDVal), yyvsp[-1].JumpTable->size());
     yyval.TermInstVal = S;
@@ -3394,15 +3411,15 @@
     delete yyvsp[-1].JumpTable;
   ;
     break;}
-case 186:
-#line 1948 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 187:
+#line 1955 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     SwitchInst *S = new SwitchInst(getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal), getBBVal(yyvsp[-2].ValIDVal), 0);
     yyval.TermInstVal = S;
   ;
     break;}
-case 187:
-#line 1953 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 188:
+#line 1960 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -3456,20 +3473,20 @@
     delete yyvsp[-7].ValueList;
   ;
     break;}
-case 188:
-#line 2005 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 189:
+#line 2012 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TermInstVal = new UnwindInst();
   ;
     break;}
-case 189:
-#line 2008 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 190:
+#line 2015 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.TermInstVal = new UnreachableInst();
   ;
     break;}
-case 190:
-#line 2014 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 191:
+#line 2021 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.JumpTable = yyvsp[-5].JumpTable;
     Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
@@ -3479,8 +3496,8 @@
     yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
   ;
     break;}
-case 191:
-#line 2022 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 192:
+#line 2029 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
@@ -3491,8 +3508,8 @@
     yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
   ;
     break;}
-case 192:
-#line 2032 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 193:
+#line 2039 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
   // Is this definition named?? if so, assign the name...
   setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal);
@@ -3500,54 +3517,54 @@
   yyval.InstVal = yyvsp[0].InstVal;
 ;
     break;}
-case 193:
-#line 2039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 194:
+#line 2046 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {    // Used for PHI nodes
     yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >();
     yyval.PHIList->push_back(std::make_pair(getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal)));
     delete yyvsp[-5].TypeVal;
   ;
     break;}
-case 194:
-#line 2044 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 195:
+#line 2051 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.PHIList = yyvsp[-6].PHIList;
     yyvsp[-6].PHIList->push_back(std::make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal),
                                  getBBVal(yyvsp[-1].ValIDVal)));
   ;
     break;}
-case 195:
-#line 2051 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 196:
+#line 2058 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {    // Used for call statements, and memory insts...
     yyval.ValueList = new std::vector<Value*>();
     yyval.ValueList->push_back(yyvsp[0].ValueVal);
   ;
     break;}
-case 196:
-#line 2055 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 197:
+#line 2062 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.ValueList = yyvsp[-2].ValueList;
     yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal);
   ;
     break;}
-case 198:
-#line 2061 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 199:
+#line 2068 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { yyval.ValueList = 0; ;
     break;}
-case 199:
-#line 2063 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 200:
+#line 2070 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BoolVal = true;
   ;
     break;}
-case 200:
-#line 2066 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 201:
+#line 2073 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BoolVal = false;
   ;
     break;}
-case 201:
-#line 2072 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 202:
+#line 2079 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && 
         !isa<PackedType>((*yyvsp[-3].TypeVal).get()))
@@ -3561,8 +3578,8 @@
     delete yyvsp[-3].TypeVal;
   ;
     break;}
-case 202:
-#line 2084 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 203:
+#line 2091 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!(*yyvsp[-3].TypeVal)->isIntegral()) {
       if (!isa<PackedType>(yyvsp[-3].TypeVal->get()) ||
@@ -3575,8 +3592,8 @@
     delete yyvsp[-3].TypeVal;
   ;
     break;}
-case 203:
-#line 2095 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 204:
+#line 2102 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) {
       ThrowException(
@@ -3588,8 +3605,8 @@
     delete yyvsp[-3].TypeVal;
   ;
     break;}
-case 204:
-#line 2105 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 205:
+#line 2112 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     std::cerr << "WARNING: Use of eliminated 'not' instruction:"
               << " Replacing with 'xor'.\n";
@@ -3603,8 +3620,8 @@
       ThrowException("Could not create a xor instruction!");
   ;
     break;}
-case 205:
-#line 2117 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 206:
+#line 2124 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[0].ValueVal->getType() != Type::UByteTy)
       ThrowException("Shift amount must be ubyte!");
@@ -3613,8 +3630,8 @@
     yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
   ;
     break;}
-case 206:
-#line 2124 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 207:
+#line 2131 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!yyvsp[0].TypeVal->get()->isFirstClassType())
       ThrowException("cast instruction to a non-primitive type: '" +
@@ -3623,8 +3640,8 @@
     delete yyvsp[0].TypeVal;
   ;
     break;}
-case 207:
-#line 2131 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 208:
+#line 2138 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (yyvsp[-4].ValueVal->getType() != Type::BoolTy)
       ThrowException("select condition must be boolean!");
@@ -3633,16 +3650,16 @@
     yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
   ;
     break;}
-case 208:
-#line 2138 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 209:
+#line 2145 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     NewVarArgs = true;
     yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
     delete yyvsp[0].TypeVal;
   ;
     break;}
-case 209:
-#line 2143 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 210:
+#line 2150 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     ObsoleteVarArgs = true;
     const Type* ArgTy = yyvsp[-2].ValueVal->getType();
@@ -3663,8 +3680,8 @@
     delete yyvsp[0].TypeVal;
   ;
     break;}
-case 210:
-#line 2162 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 211:
+#line 2169 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     ObsoleteVarArgs = true;
     const Type* ArgTy = yyvsp[-2].ValueVal->getType();
@@ -3688,8 +3705,19 @@
     delete yyvsp[0].TypeVal;
   ;
     break;}
-case 211:
-#line 2184 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 212:
+#line 2191 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
+{
+    if (!isa<PackedType>(yyvsp[-2].ValueVal->getType()))
+      ThrowException("First operand of extractelement must be a "
+                     "packed type val!");
+    if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+      ThrowException("Second operand of extractelement must be a uint!");
+    yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+  ;
+    break;}
+case 213:
+#line 2199 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const Type *Ty = yyvsp[0].PHIList->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -3705,8 +3733,8 @@
     delete yyvsp[0].PHIList;  // Free the list...
   ;
     break;}
-case 212:
-#line 2198 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 214:
+#line 2213 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -3765,66 +3793,66 @@
     delete yyvsp[-1].ValueList;
   ;
     break;}
-case 213:
-#line 2255 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 215:
+#line 2270 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.InstVal = yyvsp[0].InstVal;
   ;
     break;}
-case 214:
-#line 2261 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 216:
+#line 2276 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { 
     yyval.ValueList = yyvsp[0].ValueList; 
   ;
     break;}
-case 215:
-#line 2263 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 217:
+#line 2278 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 { 
     yyval.ValueList = new std::vector<Value*>(); 
   ;
     break;}
-case 216:
-#line 2267 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 218:
+#line 2282 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BoolVal = true;
   ;
     break;}
-case 217:
-#line 2270 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 219:
+#line 2285 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.BoolVal = false;
   ;
     break;}
-case 218:
-#line 2276 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 220:
+#line 2291 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
     delete yyvsp[-1].TypeVal;
   ;
     break;}
-case 219:
-#line 2280 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 221:
+#line 2295 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal);
     delete yyvsp[-4].TypeVal;
   ;
     break;}
-case 220:
-#line 2284 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 222:
+#line 2299 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
     delete yyvsp[-1].TypeVal;
   ;
     break;}
-case 221:
-#line 2288 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 223:
+#line 2303 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal), yyvsp[0].UIntVal);
     delete yyvsp[-4].TypeVal;
   ;
     break;}
-case 222:
-#line 2292 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 224:
+#line 2307 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!isa<PointerType>(yyvsp[0].ValueVal->getType()))
       ThrowException("Trying to free nonpointer type " + 
@@ -3832,8 +3860,8 @@
     yyval.InstVal = new FreeInst(yyvsp[0].ValueVal);
   ;
     break;}
-case 223:
-#line 2299 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 225:
+#line 2314 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!isa<PointerType>(yyvsp[-1].TypeVal->get()))
       ThrowException("Can't load from nonpointer type: " +
@@ -3845,8 +3873,8 @@
     delete yyvsp[-1].TypeVal;
   ;
     break;}
-case 224:
-#line 2309 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 226:
+#line 2324 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
     if (!PT)
@@ -3861,8 +3889,8 @@
     delete yyvsp[-1].TypeVal;
   ;
     break;}
-case 225:
-#line 2322 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+case 227:
+#line 2337 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 {
     if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
       ThrowException("getelementptr insn requires pointer operand!");
@@ -4107,7 +4135,7 @@
     }
   return 1;
 }
-#line 2345 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2360 "/Users/bocchino/vllvm-checkin/src/lib/AsmParser/llvmAsmParser.y"
 
 int yyerror(const char *ErrorMsg) {
   std::string where