diff --git a/lib/AsmParser/Lexer.cpp.cvs b/lib/AsmParser/Lexer.cpp.cvs
index a36a753..f480d1c 100644
--- a/lib/AsmParser/Lexer.cpp.cvs
+++ b/lib/AsmParser/Lexer.cpp.cvs
@@ -317,38 +317,37 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 147
-#define YY_END_OF_BUFFER 148
-static yyconst short int yy_acclist[225] =
+#define YY_NUM_RULES 141
+#define YY_END_OF_BUFFER 142
+static yyconst short int yy_acclist[219] =
     {   0,
-      148,  146,  147,  145,  146,  147,  145,  147,  146,  147,
-      146,  147,  146,  147,  146,  147,  146,  147,  146,  147,
-      138,  146,  147,  138,  146,  147,    1,  146,  147,  146,
-      147,  146,  147,  146,  147,  146,  147,  146,  147,  146,
-      147,  146,  147,  146,  147,  146,  147,  146,  147,  146,
-      147,  146,  147,  146,  147,  146,  147,  146,  147,  146,
-      147,  146,  147,  146,  147,  146,  147,  146,  147,  146,
-      147,  137,  135,  134,  134,  141,  139,  143,  138,    1,
-      120,   38,   80,   81,   70,   22,  137,  134,  134,  142,
-      143,   19,  143,  144,   60,   69,   36,   31,   39,    3,
+      142,  140,  141,  139,  140,  141,  139,  141,  140,  141,
+      140,  141,  140,  141,  140,  141,  140,  141,  140,  141,
+      132,  140,  141,  132,  140,  141,    1,  140,  141,  140,
+      141,  140,  141,  140,  141,  140,  141,  140,  141,  140,
+      141,  140,  141,  140,  141,  140,  141,  140,  141,  140,
+      141,  140,  141,  140,  141,  140,  141,  140,  141,  140,
+      141,  140,  141,  140,  141,  140,  141,  140,  141,  140,
+      141,  131,  129,  128,  128,  135,  133,  137,  132,    1,
+      114,   38,   74,   75,   70,   22,  131,  128,  128,  136,
+      137,   19,  137,  138,   60,   69,   36,   31,   39,    3,
 
-       51,   62,   90,   95,   93,   94,   92,   91,   96,  100,
-      119,   85,   83,  115,   84,   82,   61,   98,   89,   87,
-       88,   86,   99,   97,   71,  136,  143,  143,  117,   46,
-      101,   79,   65,  127,   68,   78,  128,   53,  116,   21,
-      140,   64,  104,   67,   23,    4,   58,   63,   52,   66,
-       45,   11,  103,  143,   33,    2,    5,   55,  106,   57,
-       47,   73,   77,   75,   76,   74,   72,   49,  129,  102,
-       48,   54,   20,  126,   42,   56,   27,   41,  110,  109,
-        7,  122,   30,  125,   35,   59,  114,  108,  121,   24,
-       25,  107,  123,   50,  118,  113,   40,    6,   26,  105,
+       51,   62,   84,   89,   87,   88,   86,   85,   90,   94,
+      113,   79,   77,  109,   78,   76,   61,   92,   83,   81,
+       82,   80,   93,   91,   71,  130,  137,  137,  111,   46,
+       95,   73,   65,  121,   68,   72,  122,   53,  110,   21,
+      134,   64,   98,   67,   23,    4,   58,   63,   52,   66,
+       45,   11,   97,  137,   33,    2,    5,   55,  100,   57,
+       47,   49,  123,   96,   48,   54,   20,  120,   42,   56,
+       27,   41,  104,  103,    7,  116,   30,  119,   35,   59,
+      108,  102,  115,   24,   25,  101,  117,   50,  112,  107,
+       40,    6,   26,   99,   34,    8,   16,    9,  105,   10,
 
-       34,    8,   16,    9,  111,   10,  112,   32,   12,   14,
-       13,   29,   37,   15,   28,  124,  130,  132,  133,   43,
-      131,   17,   44,   18
+      106,   32,   12,   14,   13,   29,   37,   15,   28,  118,
+      124,  126,  127,   43,  125,   17,   44,   18
     } ;
 
-static yyconst short int yy_accept[581] =
+static yyconst short int yy_accept[570] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   11,   13,   15,
        17,   19,   21,   24,   27,   30,   32,   34,   36,   38,
@@ -372,47 +371,46 @@
       102,  102,  102,  102,  102,  102,  103,  103,  104,  105,
       106,  107,  108,  109,  109,  110,  111,  111,  111,  112,
 
-      112,  112,  112,  112,  112,  112,  112,  113,  114,  115,
-      115,  115,  115,  115,  116,  117,  117,  117,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  119,  120,  121,
-      121,  121,  122,  122,  123,  123,  124,  125,  125,  125,
-      125,  125,  125,  125,  125,  125,  125,  126,  126,  126,
-      127,  128,  128,  128,  128,  129,  129,  129,  129,  130,
-      130,  130,  131,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  133,  134,
-      134,  134,  134,  134,  135,  136,  136,  136,  137,  137,
-      137,  137,  137,  137,  137,  137,  137,  138,  139,  140,
+      112,  112,  112,  112,  112,  112,  113,  114,  115,  115,
+      115,  115,  115,  116,  117,  117,  117,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  119,  120,  121,  121,
+      121,  122,  122,  123,  123,  124,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  126,  126,  126,  127,
+      128,  128,  128,  128,  129,  129,  129,  129,  130,  130,
+      130,  131,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  133,  134,  134,
+      134,  134,  134,  135,  136,  136,  136,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  138,  139,  140,  140,
 
-      140,  140,  141,  141,  141,  141,  142,  142,  143,  143,
-      143,  143,  143,  143,  143,  144,  144,  144,  144,  144,
-      145,  145,  145,  146,  146,  146,  147,  147,  148,  148,
-      149,  150,  150,  150,  150,  150,  150,  151,  151,  151,
-      152,  152,  153,  153,  153,  154,  155,  156,  156,  156,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  158,  158,  159,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  160,  160,  161,  161,
-      161,  161,  161,  161,  161,  161,  162,  162,  162,  163,
-      164,  165,  166,  167,  168,  169,  169,  169,  169,  170,
+      140,  141,  141,  141,  141,  142,  142,  143,  143,  143,
+      144,  144,  144,  144,  144,  145,  145,  145,  146,  146,
+      146,  147,  147,  148,  148,  149,  150,  150,  150,  150,
+      150,  150,  151,  151,  151,  152,  152,  153,  153,  153,
+      154,  155,  156,  156,  156,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  158,
+      158,  159,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  161,  161,  161,  161,  161,  161,  161,
+      161,  162,  162,  162,  163,  163,  163,  163,  164,  164,
+      164,  164,  165,  166,  166,  167,  168,  168,  168,  168,
 
-      170,  170,  170,  171,  172,  172,  173,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  175,  175,  175,  176,
-      176,  176,  176,  176,  176,  176,  176,  177,  178,  178,
-      178,  179,  180,  181,  181,  181,  182,  182,  182,  182,
-      182,  183,  183,  184,  185,  186,  187,  187,  187,  187,
-      188,  188,  188,  189,  190,  191,  192,  193,  193,  194,
-      195,  196,  196,  196,  196,  196,  196,  197,  197,  198,
-      198,  199,  200,  200,  200,  200,  200,  200,  201,  201,
-      201,  201,  201,  201,  201,  201,  201,  202,  202,  202,
-      202,  202,  202,  202,  202,  202,  203,  203,  203,  203,
+      168,  168,  168,  168,  168,  169,  169,  169,  170,  170,
+      170,  170,  170,  170,  170,  170,  171,  172,  172,  172,
+      173,  174,  175,  175,  175,  176,  176,  176,  176,  176,
+      177,  177,  178,  179,  180,  181,  181,  181,  181,  182,
+      182,  182,  183,  184,  185,  186,  187,  187,  188,  189,
+      190,  190,  190,  190,  190,  190,  191,  191,  192,  192,
+      193,  194,  194,  194,  194,  194,  194,  195,  195,  195,
+      195,  195,  195,  195,  195,  195,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  197,  197,  197,  197,  197,
+      198,  198,  198,  198,  198,  199,  200,  201,  201,  202,
 
-      203,  204,  204,  204,  204,  204,  205,  206,  207,  207,
-      208,  208,  208,  208,  209,  209,  209,  209,  210,  210,
-      211,  212,  212,  212,  212,  212,  212,  212,  212,  212,
-      212,  212,  212,  212,  213,  213,  213,  213,  213,  213,
-      213,  213,  214,  214,  214,  214,  214,  215,  215,  215,
-      215,  215,  216,  216,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  218,  218,  219,
-      220,  220,  221,  221,  222,  223,  224,  224,  225,  225
+      202,  202,  202,  203,  203,  203,  203,  204,  204,  205,
+      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
+      206,  206,  206,  207,  207,  207,  207,  207,  207,  207,
+      207,  208,  208,  208,  208,  208,  209,  209,  209,  209,
+      209,  210,  210,  211,  211,  211,  211,  211,  211,  211,
+      211,  211,  211,  211,  211,  211,  212,  212,  213,  214,
+      214,  215,  215,  216,  217,  218,  218,  219,  219
     } ;
 
 static yyconst int yy_ec[256] =
@@ -456,143 +454,141 @@
         3,    3,    3
     } ;
 
-static yyconst short int yy_base[585] =
+static yyconst short int yy_base[574] =
     {   0,
-        0,    0, 1248, 1249, 1249, 1249, 1243, 1232,   36,   40,
+        0,    0, 1226, 1227, 1227, 1227, 1221, 1210,   36,   40,
        44,   50,   56,   62,    0,   63,   66,   81,   89,   47,
       108,   91,   95,   92,   72,  109,  134,  119,  117,  160,
-      120,  191,  139,  121,  136,  150, 1241, 1249, 1230, 1249,
+      120,  191,  139,  121,  136,  150, 1219, 1227, 1208, 1227,
         0,  165,  180,  197,  219,   70,  224,  239,  244,    0,
-       68,  152,   93,  128,  158,  190,  245,   31, 1229,  188,
-      182,  211,   48,  207,  248,  210,  122,  124, 1228,  209,
+       68,  152,   93,  128,  158,  190,  245,   31, 1207,  188,
+      182,  211,   48,  207,  248,  210,  122,  124, 1206,  209,
       257,  258,  185,  259,  260,  261,  262,  263,  264,  265,
-      266,  276,  273,  287,  286,  278,  294,  295, 1227,  297,
+      266,  276,  273,  287,  286,  278,  294,  295, 1205,  297,
       299,  300,  305,  306,  303,  313,  307,  311,  301,  316,
 
-       46,  317,  318,  325,  326,  329,  333,  327,  334,  337,
-      351,  346,  354, 1226,  358,  342,  338,  360,  363,  365,
-      362,  368,  372,  369,  364,  271,  384,  387,  231,  389,
-      394, 1225,    0,  404,  408, 1224,  426,  443,    0, 1223,
-      408,  395, 1222,  409,  412, 1221,  414, 1220,  431,  430,
-      432, 1219,  420,  434,  444,  446,  448,  449,  452,  454,
-      455,  450,  457,  458,  466,  180,  462,  469,  470,  473,
-      474,  472,  475,  477,  484,  486,  480,  490,  487,  497,
-      500,  502,  503,  504,  505, 1218,  506, 1217, 1216, 1215,
-     1214, 1213, 1212,  396, 1211, 1210,  510,  507, 1209,  535,
+       46,  317,  318,  325,  326,  329,  333,  327,  334,  330,
+      351,  342,  346, 1204,  358,  354,  337,  361,  360,  363,
+      362,  366,  369,  383,  364,  271,  381,  388,  231,  370,
+      397, 1203,    0,  402,  406, 1202,  429,  446,    0, 1201,
+      406,  412, 1200,  407,  410, 1199,  408, 1198,  413,  419,
+      422, 1197,  433,  414,  447,  448,  435,  449,  452,  451,
+      454,  459,  455,  458,  460,  180,  466,  462,  469,  475,
+      463,  470,  473,  478,  474,  485,  482,  486,  488,  496,
+      497,  498,  499,  501,  503, 1196,  506, 1195, 1194, 1193,
+     1192, 1191, 1190,  504, 1189, 1188,  511,  507, 1187,  535,
 
-      512,  511,  516,  514,  546,  525, 1208, 1207, 1206,  526,
-      518,  549,  550, 1205, 1204,  551,  552, 1203,  553,  554,
-      559,  556,  562,  565,  560,  564, 1202, 1201, 1200,  572,
-      566, 1199,  577, 1198,  578, 1197, 1196,  581,  580,  582,
-      585,  517,  588,  586,  592,  597, 1195,  599,  600, 1249,
-      611,  628,  632,  636,  641,  602,  604,  642, 1194,  643,
-      613, 1193, 1192,  605,  644,  645,  646,  647,  649,  648,
-      650,  654,  651,  653,  658,  655,  665, 1191, 1190,  657,
-      670,  673,  676, 1189, 1188,  671,  677, 1187,  678,  681,
-      683,  685,  684,  679,  688,  690, 1186, 1185, 1184,  689,
+      512,  514,  513,  517,  523, 1186, 1185, 1184,  529,  515,
+      547,  548, 1183, 1182,  549,  551, 1181,  552,  553,  558,
+      554,  561,  555,  557,  559, 1180, 1179, 1178,  560,  563,
+     1177,  562, 1176,  567, 1175, 1174,  577,  574,  582,  571,
+      585,  510,  588,  591,  592, 1173,  594,  595, 1227,  604,
+      623,  612,  627,  632,  597,  599,  633, 1172,  634,  635,
+     1171, 1170,  636,  615,  637,  639,  641,  642,  644,  645,
+      647,  648,  649,  652,  656,  659, 1169, 1168,  658,  663,
+      667,  664, 1167, 1166,  668,  669, 1165,  673,  672,  675,
+      676,  678,  680,  679,  684, 1164, 1163, 1162,  685,  687,
 
-      696, 1183,  691,  699,  692,    0,  708, 1182,  701,  709,
-      712,  718,  719,  720, 1181,  713,  721,  724,  725, 1180,
-      730,  737, 1179,  734,  723, 1178,  740, 1177,  745, 1176,
-     1175,  746,  748,  750,  752,  749, 1174,  751,  753, 1173,
-      755, 1172,  758,  762, 1171,  785, 1170,  764,  763, 1169,
-      765,  770,  785,  779,  788,  773,  761,  776,  789,  791,
-      792,  796,  797, 1168,  798, 1167, 1166,  799,  801,  802,
-      806,  803,  807,  810,  811,  816,  817, 1165,  820,  821,
-      822,  825,  827,  831,  832, 1164,  824,  838, 1163, 1162,
-     1161, 1160, 1159, 1158, 1157,  839,  841,  843, 1156,  844,
+     1161,  677,  690,  698,    0,  700, 1160,  704,  705, 1159,
+      706,  708,  710,  711, 1158,  714,  715, 1157,  724,  720,
+     1156,  725, 1155,  727, 1154, 1153,  728,  726,  730,  734,
+      731, 1152,  741,  742, 1151,  743, 1150,  745,  744, 1149,
+      753, 1148,  753,  746, 1147,  747,  761,  759,  765,  770,
+      756,  773,  771,  774,  776,  778,  780,  781, 1146,  782,
+     1145, 1144,  783,  786,  784,  791,  787,  792,  794,  798,
+      803,  804, 1143,  806,  805,  809,  810,  811,  812,  818,
+     1142,  807,  824, 1141,  826,  827,  829, 1140,  411,  828,
+      830, 1139, 1138,  833, 1137, 1136,  835,  832,  834,  838,
 
-      846,  848, 1155, 1154,  847, 1153, 1152,  852,  850,  849,
-      853,  855,  860,  863,  867, 1151,  870,  871, 1150,  873,
-      874,  875,  876,  877,  878,  879, 1149, 1148,  887,  882,
-     1147, 1146, 1145,  888,  893, 1144,  880,  898,  901,  900,
-     1143,  904, 1142, 1141, 1140, 1139,  908,  902,  910, 1138,
-      912,  914, 1137, 1136, 1135, 1134, 1133,  913, 1132, 1131,
-     1130,  915,  916,  918,  920,  917, 1129,  922, 1128,  928,
-     1127, 1126,  931,  932,  935,  936,  939, 1125,  940,  937,
-      941,  942,  943,  950,  944,  947, 1124,  955,  958,  960,
-      962,  963,  968,  969,  972, 1123,  973,  976,  977,  978,
+      843,  845,  836,  844, 1135,  853,  846, 1134,  854,  855,
+      858,  863,  860,  865,  867, 1133, 1132,  870,  864, 1131,
+     1130, 1129,  873,  868, 1128,  879,  881,  889,  876, 1127,
+      891, 1126, 1125, 1124, 1123,  892,  878,  893, 1122,  896,
+      897, 1121, 1120, 1119, 1118, 1117,  900, 1116, 1115, 1114,
+      901,  902,  903,  904,  906, 1113,  908, 1112,  909, 1111,
+     1110,  914,  915,  918,  919,  920, 1109,  921,  922,  925,
+      926,  928,  933,  932,  937, 1108,  938,  943,  945,  946,
+      947,  951,  948,  953, 1107,  956,  959,  961,  957, 1106,
+      962,  968,  965,  967, 1105, 1104, 1103,  973, 1102,  969,
 
-     1122,  974,  979,  981,  982, 1121, 1118, 1108,  985, 1107,
-      984,  988, 1001, 1106, 1002, 1003, 1005, 1105,  990, 1103,
-     1102, 1006, 1010,  994, 1015, 1012, 1014, 1016, 1021, 1022,
-     1024, 1025, 1026, 1101, 1027, 1030, 1032, 1033, 1036, 1038,
-     1034, 1100, 1039, 1035, 1049, 1052, 1098, 1053, 1042, 1055,
-     1054, 1097, 1058, 1093, 1059, 1063, 1060, 1061, 1066, 1072,
-     1069, 1075, 1077, 1079, 1080, 1081, 1091, 1082, 1083,  726,
-     1088,  616, 1085,  615,  515,  476, 1089,  370, 1249, 1124,
-     1126,  341, 1130,  151
+      972,  975, 1101,  983,  987,  989, 1098,  974, 1088, 1086,
+      991,  994,  993,  995,  998,  999, 1001, 1004, 1005, 1006,
+     1007, 1010, 1085, 1009, 1013, 1012, 1017, 1021, 1024, 1018,
+     1084, 1025, 1032, 1035, 1036, 1083, 1037, 1019, 1026, 1038,
+     1082, 1043, 1077, 1044, 1045, 1049, 1048, 1053, 1054, 1056,
+     1057, 1060, 1063, 1058, 1066, 1076, 1064, 1073,  877, 1068,
+      760, 1071,  707,  604,  522, 1069,  368, 1227, 1104, 1106,
+      349, 1110,  151
     } ;
 
-static yyconst short int yy_def[585] =
+static yyconst short int yy_def[574] =
     {   0,
-      579,    1,  579,  579,  579,  579,  580,  581,  582,  579,
-      581,  581,  581,  581,  583,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  580,  579,  581,  579,
-      584,  584,  579,  579,  581,  581,  581,  581,  581,  583,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      568,    1,  568,  568,  568,  568,  569,  570,  571,  568,
+      570,  570,  570,  570,  572,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  569,  568,  570,  568,
+      573,  573,  568,  568,  570,  570,  570,  570,  570,  572,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
 
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  579,  584,  584,  579,  581,  581,  581,   49,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,   49,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  568,  573,  573,  568,  570,  570,  570,   49,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,   49,
 
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  579,
-      579,  579,  579,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  568,  568,
+      568,  568,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
 
-      581,  581,  581,  581,  581,  200,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  579,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      570,  570,  570,  570,  200,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      568,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
 
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
 
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  581,  581,    0,  579,
-      579,  579,  579,  579
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,    0,  568,  568,
+      568,  568,  568
     } ;
 
-static yyconst short int yy_nxt[1293] =
+static yyconst short int yy_nxt[1271] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   14,   14,    4,   15,    8,    8,    8,   16,   17,
@@ -617,107 +613,105 @@
        43,   43,   43,   40,  109,   40,  110,  111,   40,  112,
 
       101,   40,  152,   40,   40,  135,   44,   44,   44,   44,
-      117,  166,  118,  119,  147,  120,  151,  121,  279,  122,
+      117,  166,  118,  119,  147,  120,  151,  121,  278,  122,
        40,  123,   40,   40,   40,  124,  125,   47,   45,   45,
        45,   45,   40,  137,  137,  137,  137,   40,  159,  153,
-      138,  154,  246,  156,   40,  162,  138,   47,   48,   48,
+      138,  154,  245,  156,   40,  162,  138,   47,   48,   48,
        48,   48,   40,  139,  139,  139,  139,   40,   40,  139,
       139,   40,  139,  139,  139,  139,  139,  139,  157,  148,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-      158,  149,  168,  170,   40,  163,   40,  165,  242,   40,
+      158,  149,  168,  170,   40,  163,   40,  165,  241,   40,
       167,   40,  164,  173,  172,  178,  169,  174,  171,   40,
 
        40,  175,  176,  179,  177,  181,  184,   40,   40,  180,
        40,  183,   40,   40,   40,  185,   40,  182,   40,   40,
        40,  194,  189,  186,   40,  187,   40,  191,  193,   40,
        40,   40,  188,  196,  195,  198,  190,  197,   40,   40,
-       40,  192,   40,   41,  202,  203,   40,   40,  207,  214,
-       40,   40,  199,  204,  212,   40,  216,  209,  201,   40,
-      210,  205,  208,  215,   40,  206,  211,   40,  217,  213,
-      218,   40,  219,   40,  224,   40,   40,   40,   40,  225,
-      220,   40,   40,   40,  222,   40,  226,  228,  221,  241,
-      232,  240,  230,  235,  236,  223,  227,   40,  231,  233,
+       40,  192,   40,   40,  202,  203,   40,   40,  206,  213,
+       40,   41,  199,  204,  211,   40,  215,  208,  201,   40,
+      209,  216,  207,  214,   40,  205,  210,   40,  218,  212,
+      217,   40,  219,   40,   40,   40,   40,   40,  224,   40,
+      220,   40,   40,   40,  221,  227,  223,  225,  231,  240,
+      234,  235,  229,  226,   40,  222,   40,  232,  230,  228,
 
-       40,  229,   40,  237,  234,  245,  238,   40,   40,   40,
-      243,  239,  244,  134,  134,  134,  134,  251,  251,  251,
-      251,   40,   40,  247,  252,   40,  257,   40,  248,  303,
-      252,  258,  256,   40,  249,  137,  137,  137,  137,   40,
-      260,  264,  138,   40,   40,   40,  259,   40,  138,  253,
-      254,  261,  255,  255,  255,  255,   40,   40,  262,   40,
-      263,   40,   40,   40,  267,   40,  266,   40,   40,  265,
-       40,   40,  274,  272,  270,   40,  268,  269,  271,   40,
-      280,  273,   40,   40,  275,   40,   40,   40,   40,   40,
-       40,  287,  276,   40,  277,  284,  286,   40,  278,   40,
+      236,   40,  233,  237,  246,  239,  244,  242,  238,  243,
+       40,  134,  134,  134,  134,  250,  250,  250,  250,   40,
+       40,   40,  251,   40,   40,   40,   40,   40,  251,  257,
+      255,  247,   40,  260,  259,   40,  443,  248,  137,  137,
+      137,  137,   40,  256,  258,  138,   40,  261,   40,  264,
+      262,  138,  252,  253,  263,  254,  254,  254,  254,   40,
+       40,   40,   40,  267,   40,   40,  266,   40,   40,  265,
+      271,   40,   40,   40,  269,   40,   40,  268,  270,   40,
+      272,  273,   40,   40,  279,  285,   40,   40,   40,  286,
+      275,   40,  277,  274,  276,   40,  289,  283,   40,   40,
 
-       40,  282,  285,   40,  283,  289,  290,  288,  291,  281,
-       40,  293,  294,   40,  295,   40,   40,   40,   40,   40,
-       40,  297,  292,   40,   40,   40,  298,   40,   40,   40,
-       40,   40,  300,  296,  302,  339,  310,  299,   40,   40,
-      304,  317,  301,  305,  306,  306,  306,  306,  307,  308,
-      306,  306,  309,  306,  306,  306,  306,  306,  306,   40,
-      316,  315,   40,   40,   40,   40,   40,   40,  311,   40,
-      312,  318,   40,   40,  313,   40,  314,   40,   40,   40,
-      320,  319,  323,  324,  326,   40,  321,  328,  325,  322,
-       40,   40,  327,   40,   40,   40,  329,  332,   40,   40,
+      281,   40,  280,  282,  284,  287,  288,  290,  293,   40,
+       40,   40,   40,  292,   40,  294,   40,   40,  296,   40,
+       40,  291,  297,   40,   40,   40,   40,   40,   40,  299,
+       40,  335,  295,  298,  301,   40,   40,  302,  312,  309,
+      300,  303,   40,  304,  305,  305,  305,  305,  306,  308,
+      305,  305,  307,  305,  305,  305,  305,  305,  305,  310,
+       40,   40,   40,  311,   40,   40,   40,   40,   40,  313,
+       40,   40,   40,   40,   40,   40,   40,  323,  315,  314,
+       40,  318,  319,  321,   40,  316,  320,   40,  317,  329,
+       40,  322,  328,  324,  327,   40,  326,  325,   40,  330,
 
-      334,   40,  330,  335,  341,   40,  336,  333,  331,  340,
-       40,  337,   40,   40,  343,   40,  338,   40,   40,  342,
-      251,  251,  251,  251,  348,  352,   40,  252,   40,   40,
-      344,  351,  347,  252,  253,  253,  345,  346,  346,  346,
-      346,  346,  346,  346,  346,  255,  255,  255,  255,   40,
-      255,  255,  255,  255,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,  356,   40,   40,   40,  361,
-       40,   40,  349,  350,  355,  357,  363,  364,   40,  359,
-      353,  354,  360,   40,   40,  365,   40,  362,  358,   40,
-       40,   40,   40,  366,   40,  372,   40,   40,   40,  371,
+      331,   40,  333,  334,   40,   40,  336,   40,   40,  338,
+       40,  332,   40,  250,  250,  250,  250,   40,  337,  343,
+      251,  341,  341,  341,  341,  339,  251,  342,   40,  252,
+      252,  340,  341,  341,  341,  341,  254,  254,  254,  254,
+       40,  254,  254,  254,  254,   40,   40,   40,   40,   40,
+       40,  348,   40,  346,   40,   40,  347,   40,   40,  351,
+       40,   40,   40,  344,  345,   40,  356,  350,  352,   40,
+      358,   40,   40,  349,  354,  355,   40,   40,  359,  360,
+       40,   40,   40,  357,  353,   40,   40,  367,   40,   40,
+       40,   40,   40,   40,  361,  368,  366,   40,   40,  362,
 
-      373,   40,   40,   40,   40,   40,  367,  378,  368,   40,
-      369,  377,   40,  370,   40,  374,  376,  375,  380,  379,
-      381,   40,   40,  385,  382,   40,   40,  387,  383,  388,
-      386,   40,   40,   40,   40,  384,   40,   40,   40,   40,
-      390,  392,  394,   40,  396,  389,  397,   40,  398,  395,
-       40,  402,  399,   40,  391,  393,  401,  400,   40,   40,
-      403,   40,   40,   40,   40,   40,   40,  404,   40,  405,
-      408,   40,  406,  407,   40,   40,   40,   40,   40,  409,
-      424,  413,  416,   40,  417,  410,   40,  411,  415,   40,
-      419,  412,   40,  414,  346,  346,  346,  346,   40,  421,
+       40,  365,  363,   40,  364,  372,  369,  371,  373,  370,
+      374,   40,  375,   40,  378,  377,  376,   40,   40,   40,
+       40,   40,  381,   40,   40,  383,  379,   40,   40,  380,
+      382,  385,  386,   40,  387,  389,  388,   40,   40,   40,
+       40,   40,  384,   40,   40,  392,  390,   40,  391,  393,
+      395,  394,  397,  396,   40,   40,   40,   40,   40,   40,
+       40,  398,  341,  341,  341,  341,   40,  406,  402,   40,
+      404,  405,   40,   40,   40,  399,  400,  409,   40,  401,
+      403,  408,  407,   40,   40,  410,   40,   40,  411,   40,
+      412,   40,  413,   40,   40,   40,   40,   40,  416,   40,
 
-      418,   40,   40,  420,   40,   40,  422,  423,  425,   40,
-       40,   40,   40,  427,   40,   40,   40,  430,  431,   40,
-       40,  426,  428,   40,   40,  432,  429,  433,  435,   40,
-       40,  436,  434,   40,   40,   40,  437,   40,   40,  441,
-       40,  439,  444,  443,   40,   40,  438,  445,  440,  446,
-      442,   40,   40,  447,   40,  449,   40,   40,  448,   40,
-       40,   40,   40,   40,  452,   40,   40,  451,   40,  454,
-      456,  459,  458,   40,  450,  453,   40,  461,  463,  457,
-       40,  462,  455,   40,   40,  460,   40,   40,   40,   40,
-       40,   40,   40,   40,  469,   40,  466,  465,  471,  464,
+       40,  419,  420,  414,   40,   40,  415,   40,  417,  421,
+      418,   40,  422,  424,  423,  425,   40,   40,   40,   40,
+       40,  426,   40,   40,   40,   40,  430,  432,  428,  433,
+      427,   40,  434,  435,  436,  429,  431,   40,  438,   40,
+       40,   40,   40,   40,  437,   40,   40,   40,   40,   40,
+      441,   40,  445,  448,  440,  447,   40,   40,   40,   40,
+      439,  442,  450,  452,  444,  446,   40,   40,   40,  451,
+      449,   40,  453,   40,  454,  458,   40,   40,   40,  455,
+       40,   40,  456,   40,  457,  460,   40,  464,  465,   40,
+       40,   40,   40,  467,   40,  461,  462,  468,  463,  459,
 
-       40,   40,  480,  468,  475,  476,   40,  467,  478,  473,
-      474,   40,  472,   40,   40,   40,  470,   40,  477,  482,
-      481,   40,  479,   40,  484,   40,   40,   40,   40,   40,
-       40,   40,  486,   40,  488,   40,  483,  489,  490,  493,
-      487,   40,  485,  491,   40,   40,  494,  495,   40,   40,
-       40,  492,   40,   40,   40,   40,   40,   40,  496,  497,
-       40,  502,  503,   40,  501,  498,  499,  504,   40,  505,
-      506,   40,  508,   40,  500,   40,   40,  507,  513,  509,
-      512,   40,   40,  510,  514,   40,   40,   40,  516,   40,
-       40,   40,   40,  511,   40,   40,  518,   40,   40,  515,
+      466,  469,   40,  470,   40,   40,   40,  471,  475,   40,
+       40,  473,  472,   40,   40,   40,   40,   40,  477,   40,
+      478,   40,   40,  476,  482,  479,  474,   40,   40,  480,
+      483,   40,   40,   40,   40,   40,  484,  481,   40,   40,
+      486,   40,  491,  492,  485,   40,   40,  490,  487,  488,
+       40,   40,  493,  494,  495,  497,   40,  489,   40,   40,
+       40,   40,  496,  502,   40,  501,   40,  498,  503,   40,
+       40,  505,   40,  499,   40,   40,  500,  507,   40,  511,
+       40,   40,   40,  504,  506,   40,   40,   40,   40,  515,
+      512,  517,  518,  508,  519,  509,   40,  510,  513,  516,
 
-      522,   40,  523,   40,  526,  517,  528,   40,  529,  524,
-      519,  527,  520,  521,   40,   40,   40,  525,   40,   40,
-      530,  532,  531,   40,  535,   40,  534,   40,   40,   40,
-      537,  533,  536,  538,   40,   40,  541,   40,   40,   40,
-       40,  539,  544,   40,  546,   40,   40,   40,   40,   40,
-      543,   40,   40,  545,  547,   40,  540,  542,  551,  548,
-      552,  554,   40,  555,  549,   40,   40,   40,   40,  550,
-      553,   40,   40,   40,   40,  558,   40,  556,  559,   40,
-      557,  560,   40,  564,  561,   40,  565,  563,   40,  562,
-       40,  566,   40,   40,   40,   40,   40,  571,   40,  572,
+       40,  514,   40,  520,   40,  521,   40,   40,   40,  524,
+      523,   40,   40,  527,   40,  522,  525,   40,   40,   40,
+       40,  530,   40,   40,  533,   40,   40,  528,  535,  526,
+       40,   40,   40,  532,   40,  534,  536,   40,   40,   40,
+      531,  529,  537,  540,  538,   40,  541,  543,   40,   40,
+       40,   40,  549,  539,  542,  548,   40,   40,   40,  547,
+      544,   40,   40,  545,  546,  553,   40,   40,  550,   40,
+       40,   40,  552,   40,  551,  554,   40,   40,  555,   40,
+      560,   40,   40,  561,   40,  557,   40,  556,  565,   40,
+       40,  559,  558,  566,  564,   40,   40,   40,   40,   40,
 
-      567,   40,   40,  568,   40,  569,   40,  577,  576,  570,
-       40,   40,  575,   40,   40,   40,   40,  574,   40,   40,
-       40,   40,  573,  578,   37,   37,   37,   37,   39,   39,
+      562,   40,  563,  567,   37,   37,   37,   37,   39,   39,
        50,   40,   50,   50,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
@@ -725,21 +719,19 @@
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
 
        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,  250,   40,
-       40,   40,   40,   40,  132,   40,   38,  579,    3,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579
-
+       40,   40,   40,   40,   40,   40,  249,   40,   40,   40,
+       40,   40,  132,   40,   38,  568,    3,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568
     } ;
 
-static yyconst short int yy_chk[1293] =
+static yyconst short int yy_chk[1271] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -757,7 +749,7 @@
        19,   21,   26,   24,   23,   23,   21,   24,   21,   21,
        29,   26,   28,   31,   34,   67,   21,   68,   31,   29,
        21,   54,   21,   34,   28,   68,   26,   27,   35,   35,
-       28,   31,   33,  584,   31,   28,   27,   33,   27,   67,
+       28,   31,   33,  573,   31,   28,   27,   33,   27,   67,
        54,   31,   27,   36,   27,   52,   27,   35,   27,   30,
        33,   55,   36,   30,   42,   42,   42,   42,   52,   30,
        52,   30,   30,   55,   30,   30,   30,   55,   30,   43,
@@ -778,112 +770,108 @@
        90,   85,   91,   92,   99,   87,   95,   84,   93,   94,
        97,   95,   92,   88,   98,   90,   96,   93,   94,  100,
       102,  103,   91,   97,   96,   99,   92,   98,  104,  105,
-      108,   93,  106,  582,  103,  104,  107,  109,  105,  108,
-      110,  117,  100,  104,  107,  116,  109,  106,  102,  112,
-      106,  104,  105,  108,  111,  104,  106,  113,  110,  107,
-      111,  115,  112,  118,  116,  121,  119,  125,  120,  117,
-      113,  122,  124,  578,  115,  123,  118,  120,  113,  125,
-      122,  124,  121,  123,  123,  115,  119,  127,  121,  122,
+      108,   93,  106,  110,  103,  104,  107,  109,  105,  108,
+      117,  571,  100,  104,  107,  112,  109,  106,  102,  113,
+      106,  110,  105,  108,  111,  104,  106,  116,  112,  107,
+      111,  115,  113,  119,  118,  121,  120,  125,  117,  122,
+      113,  567,  123,  130,  115,  120,  116,  118,  122,  125,
+      123,  123,  121,  119,  127,  115,  124,  122,  121,  120,
 
-      128,  120,  130,  123,  122,  128,  123,  131,  142,  194,
-      127,  123,  127,  134,  134,  134,  134,  135,  135,  135,
-      135,  141,  144,  130,  135,  145,  142,  147,  131,  194,
-      135,  144,  141,  153,  131,  137,  137,  137,  137,  137,
-      147,  153,  137,  150,  149,  151,  145,  154,  137,  138,
-      138,  149,  138,  138,  138,  138,  138,  155,  150,  156,
-      151,  157,  158,  162,  156,  159,  155,  160,  161,  154,
-      163,  164,  162,  160,  159,  167,  157,  158,  159,  165,
-      167,  161,  168,  169,  162,  172,  170,  171,  173,  576,
-      174,  172,  163,  177,  164,  170,  171,  175,  165,  176,
+      123,  128,  122,  123,  130,  124,  128,  127,  123,  127,
+      131,  134,  134,  134,  134,  135,  135,  135,  135,  141,
+      144,  147,  135,  145,  389,  142,  149,  154,  135,  144,
+      141,  131,  150,  149,  147,  151,  389,  131,  137,  137,
+      137,  137,  137,  142,  145,  137,  153,  150,  157,  154,
+      151,  137,  138,  138,  153,  138,  138,  138,  138,  138,
+      155,  156,  158,  157,  160,  159,  156,  161,  163,  155,
+      160,  164,  162,  165,  159,  168,  171,  158,  159,  167,
+      161,  162,  169,  172,  167,  171,  173,  175,  170,  172,
+      163,  174,  165,  162,  164,  177,  175,  170,  176,  178,
 
-      179,  169,  170,  178,  169,  174,  175,  173,  176,  168,
-      180,  177,  178,  181,  179,  182,  183,  184,  185,  187,
-      198,  181,  176,  197,  202,  201,  182,  204,  575,  203,
-      242,  211,  184,  180,  187,  242,  204,  183,  206,  210,
-      197,  211,  185,  198,  200,  200,  200,  200,  201,  202,
-      200,  200,  203,  200,  200,  200,  200,  200,  200,  205,
-      210,  206,  212,  213,  216,  217,  219,  220,  205,  222,
-      205,  212,  221,  225,  205,  223,  205,  226,  224,  231,
-      216,  213,  220,  221,  223,  230,  217,  224,  222,  219,
-      233,  235,  223,  239,  238,  240,  225,  231,  241,  244,
+      169,  179,  168,  169,  170,  173,  174,  176,  178,  180,
+      181,  182,  183,  177,  184,  179,  185,  194,  181,  187,
+      198,  176,  182,  242,  197,  201,  203,  202,  210,  184,
+      204,  242,  180,  183,  187,  565,  205,  194,  210,  204,
+      185,  197,  209,  198,  200,  200,  200,  200,  201,  203,
+      200,  200,  202,  200,  200,  200,  200,  200,  200,  205,
+      211,  212,  215,  209,  216,  218,  219,  221,  223,  211,
+      224,  220,  225,  229,  222,  232,  230,  223,  215,  212,
+      234,  219,  220,  222,  240,  216,  221,  238,  218,  234,
+      237,  222,  232,  224,  230,  239,  229,  225,  241,  237,
 
-      235,  243,  226,  238,  244,  245,  239,  233,  230,  243,
-      246,  240,  248,  249,  246,  256,  241,  257,  264,  245,
-      251,  251,  251,  251,  257,  264,  261,  251,  574,  572,
-      248,  261,  256,  251,  252,  252,  249,  252,  252,  252,
-      252,  253,  253,  253,  253,  254,  254,  254,  254,  254,
-      255,  255,  255,  255,  255,  258,  260,  265,  266,  267,
-      268,  270,  269,  271,  273,  268,  274,  272,  276,  273,
-      280,  275,  258,  260,  267,  269,  275,  276,  277,  271,
-      265,  266,  272,  281,  286,  277,  282,  274,  270,  283,
-      287,  289,  294,  280,  290,  287,  291,  293,  292,  286,
+      238,  243,  240,  241,  244,  245,  243,  247,  248,  245,
+      255,  239,  256,  250,  250,  250,  250,  564,  244,  256,
+      250,  252,  252,  252,  252,  247,  250,  255,  264,  251,
+      251,  248,  251,  251,  251,  251,  253,  253,  253,  253,
+      253,  254,  254,  254,  254,  254,  257,  259,  260,  263,
+      265,  264,  266,  260,  267,  268,  263,  269,  270,  267,
+      271,  272,  273,  257,  259,  274,  272,  266,  268,  275,
+      274,  279,  276,  265,  270,  271,  280,  282,  275,  276,
+      281,  285,  286,  273,  269,  289,  288,  286,  290,  291,
+      302,  292,  294,  293,  279,  288,  285,  295,  299,  280,
 
-      289,  295,  300,  296,  303,  305,  281,  294,  282,  301,
-      282,  293,  304,  283,  309,  290,  292,  291,  296,  295,
-      300,  307,  310,  305,  301,  311,  316,  309,  303,  310,
-      307,  312,  313,  314,  317,  304,  325,  318,  319,  570,
-      312,  313,  314,  321,  317,  311,  318,  324,  319,  316,
-      322,  325,  321,  327,  312,  313,  324,  322,  329,  332,
-      327,  333,  336,  334,  338,  335,  339,  329,  341,  332,
-      335,  343,  333,  334,  357,  344,  349,  348,  351,  336,
-      357,  343,  348,  352,  349,  338,  356,  339,  344,  358,
-      352,  341,  354,  343,  346,  346,  346,  346,  353,  354,
+      300,  282,  281,  303,  281,  292,  289,  291,  293,  290,
+      294,  304,  295,  306,  302,  300,  299,  308,  309,  311,
+      563,  312,  306,  313,  314,  309,  303,  316,  317,  304,
+      308,  312,  313,  320,  314,  317,  316,  319,  322,  328,
+      324,  327,  311,  329,  331,  322,  319,  330,  320,  324,
+      328,  327,  330,  329,  333,  334,  336,  339,  338,  344,
+      346,  331,  341,  341,  341,  341,  343,  344,  338,  351,
+      339,  343,  348,  561,  347,  333,  334,  348,  349,  336,
+      338,  347,  346,  350,  353,  349,  352,  354,  350,  355,
+      351,  356,  352,  357,  358,  360,  363,  365,  355,  364,
 
-      351,  355,  359,  353,  360,  361,  355,  356,  358,  362,
-      363,  365,  368,  360,  369,  370,  372,  363,  365,  371,
-      373,  359,  361,  374,  375,  368,  362,  369,  371,  376,
-      377,  372,  370,  379,  380,  381,  373,  387,  382,  377,
-      383,  375,  381,  380,  384,  385,  374,  382,  376,  383,
-      379,  388,  396,  384,  397,  387,  398,  400,  385,  401,
-      405,  402,  410,  409,  397,  408,  411,  396,  412,  400,
-      402,  409,  408,  413,  388,  398,  414,  411,  413,  405,
-      415,  412,  401,  417,  418,  410,  420,  421,  422,  423,
-      424,  425,  426,  437,  421,  430,  417,  415,  423,  414,
+      367,  358,  360,  353,  366,  368,  354,  369,  356,  363,
+      357,  370,  364,  366,  365,  367,  371,  372,  375,  374,
+      382,  368,  376,  377,  378,  379,  372,  375,  370,  376,
+      369,  380,  377,  378,  379,  371,  374,  383,  382,  385,
+      386,  390,  387,  391,  380,  398,  394,  399,  397,  403,
+      386,  400,  391,  398,  385,  397,  401,  404,  402,  407,
+      383,  387,  400,  402,  390,  394,  406,  409,  410,  401,
+      399,  411,  403,  413,  404,  410,  412,  419,  414,  406,
+      415,  424,  407,  418,  409,  412,  423,  418,  418,  429,
+      559,  437,  426,  423,  427,  413,  414,  424,  415,  411,
 
-      429,  434,  437,  420,  429,  429,  435,  418,  434,  425,
-      426,  438,  424,  440,  439,  448,  422,  442,  430,  439,
-      438,  447,  435,  449,  442,  451,  458,  452,  462,  463,
-      466,  464,  448,  465,  451,  468,  440,  452,  458,  464,
-      449,  470,  447,  462,  473,  474,  465,  466,  475,  476,
-      480,  463,  477,  479,  481,  482,  483,  485,  468,  470,
-      486,  477,  479,  484,  476,  473,  474,  480,  488,  481,
-      482,  489,  484,  490,  475,  491,  492,  483,  490,  485,
-      489,  493,  494,  486,  491,  495,  497,  502,  493,  498,
-      499,  500,  503,  488,  504,  505,  495,  511,  509,  492,
+      419,  426,  428,  427,  431,  436,  438,  428,  437,  440,
+      441,  431,  429,  447,  451,  452,  453,  454,  440,  455,
+      441,  457,  459,  438,  453,  447,  436,  462,  463,  451,
+      454,  464,  465,  466,  468,  469,  455,  452,  470,  471,
+      459,  472,  466,  468,  457,  474,  473,  465,  462,  463,
+      475,  477,  469,  470,  471,  473,  478,  464,  479,  480,
+      481,  483,  472,  479,  482,  478,  484,  474,  480,  486,
+      489,  482,  487,  475,  488,  491,  477,  484,  493,  489,
+      494,  492,  500,  481,  483,  501,  498,  508,  502,  494,
+      491,  500,  501,  486,  502,  487,  504,  488,  492,  498,
 
-      500,  512,  502,  519,  505,  494,  511,  524,  512,  503,
-      497,  509,  498,  499,  513,  515,  516,  504,  517,  522,
-      513,  516,  515,  523,  522,  526,  519,  527,  525,  528,
-      524,  517,  523,  525,  529,  530,  528,  531,  532,  533,
-      535,  526,  531,  536,  533,  537,  538,  541,  544,  539,
-      530,  540,  543,  532,  535,  549,  527,  529,  539,  536,
-      540,  543,  545,  544,  537,  546,  548,  551,  550,  538,
-      541,  553,  555,  557,  558,  548,  556,  545,  549,  559,
-      546,  550,  561,  556,  551,  560,  557,  555,  562,  553,
-      563,  558,  564,  565,  566,  568,  569,  563,  573,  564,
+      505,  493,  506,  504,  511,  505,  513,  512,  514,  511,
+      508,  515,  516,  514,  517,  506,  512,  518,  519,  520,
+      521,  517,  524,  522,  520,  526,  525,  515,  522,  513,
+      527,  530,  538,  519,  528,  521,  524,  529,  532,  539,
+      518,  516,  525,  528,  526,  533,  529,  532,  534,  535,
+      537,  540,  539,  527,  530,  538,  542,  544,  545,  537,
+      533,  547,  546,  534,  535,  545,  548,  549,  540,  550,
+      551,  554,  544,  552,  542,  546,  553,  557,  547,  555,
+      552,  560,  566,  553,  562,  549,  558,  548,  560,  556,
+      543,  551,  550,  562,  557,  541,  536,  531,  523,  510,
 
-      559,  571,  577,  560,  567,  561,  554,  573,  571,  562,
-      552,  547,  568,  542,  534,  521,  520,  566,  518,  514,
-      510,  508,  565,  577,  580,  580,  580,  580,  581,  581,
-      583,  507,  583,  583,  506,  501,  496,  487,  478,  472,
-      471,  469,  467,  461,  460,  459,  457,  456,  455,  454,
-      453,  450,  446,  445,  444,  443,  441,  436,  433,  432,
-      431,  428,  427,  419,  416,  407,  406,  404,  403,  399,
-      395,  394,  393,  392,  391,  390,  389,  386,  378,  367,
-      366,  364,  350,  347,  345,  342,  340,  337,  331,  330,
-      328,  326,  323,  320,  315,  308,  302,  299,  298,  297,
+      554,  509,  555,  566,  569,  569,  569,  569,  570,  570,
+      572,  507,  572,  572,  503,  499,  497,  496,  495,  490,
+      485,  476,  467,  461,  460,  458,  456,  450,  449,  448,
+      446,  445,  444,  443,  442,  439,  435,  434,  433,  432,
+      430,  425,  422,  421,  420,  417,  416,  408,  405,  396,
+      395,  393,  392,  388,  384,  381,  373,  362,  361,  359,
+      345,  342,  340,  337,  335,  332,  326,  325,  323,  321,
+      318,  315,  310,  307,  301,  298,  297,  296,  287,  284,
+      283,  278,  277,  262,  261,  258,  246,  236,  235,  233,
+      231,  228,  227,  226,  217,  214,  213,  208,  207,  206,
 
-      288,  285,  284,  279,  278,  263,  262,  259,  247,  237,
-      236,  234,  232,  229,  228,  227,  218,  215,  214,  209,
-      208,  207,  199,  196,  195,  193,  192,  191,  190,  189,
-      188,  186,  152,  148,  146,  143,  140,  136,  132,  114,
-       89,   69,   59,   39,   37,    8,    7,    3,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
-      579,  579
-
+      199,  196,  195,  193,  192,  191,  190,  189,  188,  186,
+      152,  148,  146,  143,  140,  136,  132,  114,   89,   69,
+       59,   39,   37,    8,    7,    3,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -900,7 +888,7 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 1 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 #define INITIAL 0
 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
 //
@@ -915,7 +903,7 @@
 //
 //===----------------------------------------------------------------------===*/
 #define YY_NEVER_INTERACTIVE 1
-#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 28 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 #include "ParserInternals.h"
 #include "llvm/Module.h"
 #include <list>
@@ -1048,7 +1036,7 @@
 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
  * it to deal with 64 bit numbers.
  */
-#line 1052 "Lexer.cpp"
+#line 1040 "Lexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1199,10 +1187,10 @@
 	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
 
-#line 186 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 186 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 
 
-#line 1206 "Lexer.cpp"
+#line 1194 "Lexer.cpp"
 
 	if ( yy_init )
 		{
@@ -1250,14 +1238,14 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 580 )
+				if ( yy_current_state >= 569 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_current_state != 579 );
+		while ( yy_current_state != 568 );
 
 yy_find_action:
 		yy_current_state = *--yy_state_ptr;
@@ -1295,681 +1283,651 @@
 	{ /* beginning of action switch */
 case 1:
 YY_RULE_SETUP
-#line 188 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 188 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { /* Ignore comments for now */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 190 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return BEGINTOK; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 191 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return ENDTOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 192 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TRUETOK;  }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 193 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return FALSETOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 194 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DECLARE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 195 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return GLOBAL; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 196 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return CONSTANT; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 197 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return INTERNAL; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 198 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return LINKONCE; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 199 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return WEAK; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 200 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return APPENDING; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 201 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DLLIMPORT; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 202 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DLLEXPORT; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 203 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return EXTERN_WEAK; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 204 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return EXTERNAL; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 205 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return IMPLEMENTATION; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 206 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return ZEROINITIALIZER; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 207 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DOTDOTDOT; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 208 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return UNDEF; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 209 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return NULL_TOK; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 210 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TO; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 211 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TAIL; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 212 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TARGET; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 213 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TRIPLE; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 214 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DEPLIBS; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 215 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return ENDIAN; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 216 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return POINTERSIZE; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 217 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return DATALAYOUT; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 218 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return LITTLE; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 219 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return BIG; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 220 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 220 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return VOLATILE; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 221 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return ALIGN;  }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 222 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return SECTION; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 223 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return MODULE; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 224 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return ASM_TOK; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 225 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return SIDEEFFECT; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 227 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 227 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return CC_TOK; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 228 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return CCC_TOK; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 229 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return CSRETCC_TOK; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 230 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return FASTCC_TOK; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 231 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return COLDCC_TOK; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 232 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return X86_STDCALLCC_TOK; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 233 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return X86_FASTCALLCC_TOK; }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 235 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::VoidTy,  VOID);  }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 236 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::BoolTy,  BOOL);  }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 237 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 237 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::SByteTy, SBYTE); }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 238 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::UByteTy, UBYTE); }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 239 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 239 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::ShortTy, SHORT); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 240 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::UShortTy,USHORT);}
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 241 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::IntTy,   INT);   }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 242 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::UIntTy,  UINT);  }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 243 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::LongTy,  LONG);  }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 244 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::ULongTy, ULONG); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 245 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::FloatTy, FLOAT); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 246 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::DoubleTy,DOUBLE);}
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 247 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 247 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TY(Type::LabelTy, LABEL); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 248 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 248 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return TYPE;   }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 249 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 249 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return OPAQUE; }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 251 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 251 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Add, ADD); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 252 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Sub, SUB); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 253 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Mul, MUL); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 254 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, UDiv, UDIV); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 255 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, SDiv, SDIV); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 256 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, FDiv, FDIV); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 257 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, URem, UREM); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 258 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, SRem, SREM); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 259 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, FRem, FREM); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 260 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, And, AND); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 261 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Or , OR ); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 262 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { RET_TOK(BinaryOpVal, Xor, XOR); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
+#line 263 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
+#line 264 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal,  FCmp,  FCMP); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
+#line 265 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return EQ;  }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
+#line 266 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return NE;  }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
+#line 267 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return SLT; }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
+#line 268 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return SGT; }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal,  ICmp,  ICMP); }
+#line 269 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return SLE; }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal,  FCmp,  FCMP); }
+#line 270 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return SGE; }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return EQ;  }
+#line 271 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return ULT; }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return NE;  }
+#line 272 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return UGT; }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return SLT; }
+#line 273 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return ULE; }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return SGT; }
+#line 274 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return UGE; }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return SLE; }
+#line 275 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return OEQ; }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return SGE; }
+#line 276 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return ONE; }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return ULT; }
+#line 277 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return OLT; }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return UGT; }
+#line 278 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return OGT; }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return ULE; }
+#line 279 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return OLE; }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return UGE; }
+#line 280 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return OGE; }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return OEQ; }
+#line 281 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return ORD; }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return ONE; }
+#line 282 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return UNO; }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return OLT; }
+#line 283 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return UEQ; }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return OGT; }
+#line 284 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ return UNE; }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return OLE; }
+#line 286 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return OGE; }
+#line 287 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Call, CALL); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return ORD; }
+#line 288 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, Trunc, TRUNC); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return UNO; }
+#line 289 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, ZExt, ZEXT); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return UEQ; }
+#line 290 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, SExt, SEXT); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ return UNE; }
+#line 291 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
+#line 292 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPExt, FPEXT); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Call, CALL); }
+#line 293 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, Trunc, TRUNC); }
+#line 294 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, ZExt, ZEXT); }
+#line 295 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, SExt, SEXT); }
+#line 296 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
+#line 297 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPExt, FPEXT); }
+#line 298 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
+#line 299 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, BitCast, BITCAST); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
+#line 300 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Select, SELECT); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
+#line 301 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Shl, SHL); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
+#line 302 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, LShr, LSHR); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
+#line 303 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, AShr, ASHR); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
+#line 304 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, VAArg , VAARG); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, BitCast, BITCAST); }
+#line 305 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Ret, RET); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Select, SELECT); }
+#line 306 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Br, BR); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shl, SHL); }
+#line 307 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Switch, SWITCH); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 308 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, LShr, LSHR); }
+#line 308 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Invoke, INVOKE); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, AShr, ASHR); }
+#line 309 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unwind, UNWIND); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, VAArg , VAARG); }
+#line 310 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Ret, RET); }
+#line 312 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Malloc, MALLOC); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 312 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Br, BR); }
+#line 313 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 313 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Switch, SWITCH); }
+#line 314 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Free, FREE); }
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Invoke, INVOKE); }
+#line 315 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Load, LOAD); }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 315 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unwind, UNWIND); }
+#line 316 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Store, STORE); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 316 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
+#line 317 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Malloc, MALLOC); }
+#line 319 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 319 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
+#line 320 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 320 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Free, FREE); }
+#line 321 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 321 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Load, LOAD); }
-	YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 322 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Store, STORE); }
-	YY_BREAK
-case 130:
-YY_RULE_SETUP
-#line 323 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
-	YY_BREAK
-case 131:
-YY_RULE_SETUP
-#line 325 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
-	YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 326 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
-	YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 327 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
-	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 330 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 324 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   UnEscapeLexed(yytext+1);
                   llvmAsmlval.StrVal = strdup(yytext+1);             // Skip %
                   return VAR_ID;
                 }
 	YY_BREAK
-case 135:
+case 129:
 YY_RULE_SETUP
-#line 335 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 329 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-1] = 0;  // nuke colon
                   UnEscapeLexed(yytext);
@@ -1977,9 +1935,9 @@
                   return LABELSTR;
                 }
 	YY_BREAK
-case 136:
+case 130:
 YY_RULE_SETUP
-#line 341 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 335 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
                   UnEscapeLexed(yytext+1);
@@ -1987,9 +1945,9 @@
                   return LABELSTR;
                 }
 	YY_BREAK
-case 137:
+case 131:
 YY_RULE_SETUP
-#line 348 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 342 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { // Note that we cannot unescape a string constant here!  The
                    // string constant might contain a \00 which would not be
                    // understood by the string stuff.  It is valid to make a
@@ -2000,14 +1958,14 @@
                    return STRINGCONSTANT;
                  }
 	YY_BREAK
-case 138:
+case 132:
 YY_RULE_SETUP
-#line 359 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 353 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
 	YY_BREAK
-case 139:
+case 133:
 YY_RULE_SETUP
-#line 360 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 354 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   // +1:  we have bigger negative range
@@ -2017,17 +1975,17 @@
                   return ESINT64VAL;
                 }
 	YY_BREAK
-case 140:
+case 134:
 YY_RULE_SETUP
-#line 368 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 362 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                    llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
                    return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
                  }
 	YY_BREAK
-case 141:
+case 135:
 YY_RULE_SETUP
-#line 373 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 367 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
@@ -2036,9 +1994,9 @@
                   return UINTVAL;
                 }
 	YY_BREAK
-case 142:
+case 136:
 YY_RULE_SETUP
-#line 380 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 374 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   uint64_t Val = atoull(yytext+2);
                   // +1:  we have bigger negative range
@@ -2048,18 +2006,18 @@
                   return SINTVAL;
                 }
 	YY_BREAK
-case 143:
+case 137:
 YY_RULE_SETUP
-#line 389 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 383 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
 	YY_BREAK
-case 144:
+case 138:
 YY_RULE_SETUP
-#line 390 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 384 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 392 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 386 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
@@ -2068,22 +2026,22 @@
                   return EOF;
                 }
 	YY_BREAK
-case 145:
+case 139:
 YY_RULE_SETUP
-#line 400 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 394 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { /* Ignore whitespace */ }
 	YY_BREAK
-case 146:
+case 140:
 YY_RULE_SETUP
-#line 401 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 395 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 { return yytext[0]; }
 	YY_BREAK
-case 147:
+case 141:
 YY_RULE_SETUP
-#line 403 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 397 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 2087 "Lexer.cpp"
+#line 2045 "Lexer.cpp"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2370,7 +2328,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 580 )
+			if ( yy_current_state >= 569 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2400,11 +2358,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 580 )
+		if ( yy_current_state >= 569 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 579);
+	yy_is_jam = (yy_current_state == 568);
 	if ( ! yy_is_jam )
 		*yy_state_ptr++ = yy_current_state;
 
@@ -2961,5 +2919,5 @@
 	return 0;
 	}
 #endif
-#line 403 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 397 "/proj/llvm/llvm-3/lib/AsmParser/Lexer.l"
 
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 93b84be..478bfb8 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -260,12 +260,6 @@
 and             { RET_TOK(BinaryOpVal, And, AND); }
 or              { RET_TOK(BinaryOpVal, Or , OR ); }
 xor             { RET_TOK(BinaryOpVal, Xor, XOR); }
-setne           { RET_TOK(BinaryOpVal, SetNE, SETNE); }
-seteq           { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
-setlt           { RET_TOK(BinaryOpVal, SetLT, SETLT); }
-setgt           { RET_TOK(BinaryOpVal, SetGT, SETGT); }
-setle           { RET_TOK(BinaryOpVal, SetLE, SETLE); }
-setge           { RET_TOK(BinaryOpVal, SetGE, SETGE); }
 icmp            { RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 fcmp            { RET_TOK(OtherOpVal,  FCmp,  FCMP); }
 eq              { return EQ;  }
diff --git a/lib/AsmParser/Lexer.l.cvs b/lib/AsmParser/Lexer.l.cvs
index 93b84be..478bfb8 100644
--- a/lib/AsmParser/Lexer.l.cvs
+++ b/lib/AsmParser/Lexer.l.cvs
@@ -260,12 +260,6 @@
 and             { RET_TOK(BinaryOpVal, And, AND); }
 or              { RET_TOK(BinaryOpVal, Or , OR ); }
 xor             { RET_TOK(BinaryOpVal, Xor, XOR); }
-setne           { RET_TOK(BinaryOpVal, SetNE, SETNE); }
-seteq           { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
-setlt           { RET_TOK(BinaryOpVal, SetLT, SETLT); }
-setgt           { RET_TOK(BinaryOpVal, SetGT, SETGT); }
-setle           { RET_TOK(BinaryOpVal, SetLE, SETLE); }
-setge           { RET_TOK(BinaryOpVal, SetGE, SETGE); }
 icmp            { RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 fcmp            { RET_TOK(OtherOpVal,  FCmp,  FCMP); }
 eq              { return EQ;  }
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs
index 955fb87..50f7a82 100644
--- a/lib/AsmParser/llvmAsmParser.cpp.cvs
+++ b/lib/AsmParser/llvmAsmParser.cpp.cvs
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875c.  */
+/* A Bison parser, made by GNU Bison 2.1.  */
 
 /* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -15,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
@@ -36,6 +36,9 @@
 /* Identify Bison output.  */
 #define YYBISON 1
 
+/* Bison version.  */
+#define YYBISON_VERSION "2.1"
+
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 
@@ -45,8 +48,7 @@
 /* Using locations.  */
 #define YYLSP_NEEDED 0
 
-/* If NAME_PREFIX is specified substitute the variables and functions
-   names.  */
+/* Substitute the variable and function names.  */
 #define yyparse llvmAsmparse
 #define yylex   llvmAsmlex
 #define yyerror llvmAsmerror
@@ -149,63 +151,58 @@
      AND = 342,
      OR = 343,
      XOR = 344,
-     SETLE = 345,
-     SETGE = 346,
-     SETLT = 347,
-     SETGT = 348,
-     SETEQ = 349,
-     SETNE = 350,
-     ICMP = 351,
-     FCMP = 352,
-     EQ = 353,
-     NE = 354,
-     SLT = 355,
-     SGT = 356,
-     SLE = 357,
-     SGE = 358,
-     ULT = 359,
-     UGT = 360,
-     ULE = 361,
-     UGE = 362,
-     OEQ = 363,
-     ONE = 364,
-     OLT = 365,
-     OGT = 366,
-     OLE = 367,
-     OGE = 368,
-     ORD = 369,
-     UNO = 370,
-     UEQ = 371,
-     UNE = 372,
-     MALLOC = 373,
-     ALLOCA = 374,
-     FREE = 375,
-     LOAD = 376,
-     STORE = 377,
-     GETELEMENTPTR = 378,
-     TRUNC = 379,
-     ZEXT = 380,
-     SEXT = 381,
-     FPTRUNC = 382,
-     FPEXT = 383,
-     BITCAST = 384,
-     UITOFP = 385,
-     SITOFP = 386,
-     FPTOUI = 387,
-     FPTOSI = 388,
-     INTTOPTR = 389,
-     PTRTOINT = 390,
-     PHI_TOK = 391,
-     SELECT = 392,
-     SHL = 393,
-     LSHR = 394,
-     ASHR = 395,
-     VAARG = 396,
-     EXTRACTELEMENT = 397,
-     INSERTELEMENT = 398,
-     SHUFFLEVECTOR = 399
+     ICMP = 345,
+     FCMP = 346,
+     EQ = 347,
+     NE = 348,
+     SLT = 349,
+     SGT = 350,
+     SLE = 351,
+     SGE = 352,
+     ULT = 353,
+     UGT = 354,
+     ULE = 355,
+     UGE = 356,
+     OEQ = 357,
+     ONE = 358,
+     OLT = 359,
+     OGT = 360,
+     OLE = 361,
+     OGE = 362,
+     ORD = 363,
+     UNO = 364,
+     UEQ = 365,
+     UNE = 366,
+     MALLOC = 367,
+     ALLOCA = 368,
+     FREE = 369,
+     LOAD = 370,
+     STORE = 371,
+     GETELEMENTPTR = 372,
+     TRUNC = 373,
+     ZEXT = 374,
+     SEXT = 375,
+     FPTRUNC = 376,
+     FPEXT = 377,
+     BITCAST = 378,
+     UITOFP = 379,
+     SITOFP = 380,
+     FPTOUI = 381,
+     FPTOSI = 382,
+     INTTOPTR = 383,
+     PTRTOINT = 384,
+     PHI_TOK = 385,
+     SELECT = 386,
+     SHL = 387,
+     LSHR = 388,
+     ASHR = 389,
+     VAARG = 390,
+     EXTRACTELEMENT = 391,
+     INSERTELEMENT = 392,
+     SHUFFLEVECTOR = 393
    };
 #endif
+/* Tokens.  */
 #define ESINT64VAL 258
 #define EUINT64VAL 259
 #define SINTVAL 260
@@ -293,67 +290,61 @@
 #define AND 342
 #define OR 343
 #define XOR 344
-#define SETLE 345
-#define SETGE 346
-#define SETLT 347
-#define SETGT 348
-#define SETEQ 349
-#define SETNE 350
-#define ICMP 351
-#define FCMP 352
-#define EQ 353
-#define NE 354
-#define SLT 355
-#define SGT 356
-#define SLE 357
-#define SGE 358
-#define ULT 359
-#define UGT 360
-#define ULE 361
-#define UGE 362
-#define OEQ 363
-#define ONE 364
-#define OLT 365
-#define OGT 366
-#define OLE 367
-#define OGE 368
-#define ORD 369
-#define UNO 370
-#define UEQ 371
-#define UNE 372
-#define MALLOC 373
-#define ALLOCA 374
-#define FREE 375
-#define LOAD 376
-#define STORE 377
-#define GETELEMENTPTR 378
-#define TRUNC 379
-#define ZEXT 380
-#define SEXT 381
-#define FPTRUNC 382
-#define FPEXT 383
-#define BITCAST 384
-#define UITOFP 385
-#define SITOFP 386
-#define FPTOUI 387
-#define FPTOSI 388
-#define INTTOPTR 389
-#define PTRTOINT 390
-#define PHI_TOK 391
-#define SELECT 392
-#define SHL 393
-#define LSHR 394
-#define ASHR 395
-#define VAARG 396
-#define EXTRACTELEMENT 397
-#define INSERTELEMENT 398
-#define SHUFFLEVECTOR 399
+#define ICMP 345
+#define FCMP 346
+#define EQ 347
+#define NE 348
+#define SLT 349
+#define SGT 350
+#define SLE 351
+#define SGE 352
+#define ULT 353
+#define UGT 354
+#define ULE 355
+#define UGE 356
+#define OEQ 357
+#define ONE 358
+#define OLT 359
+#define OGT 360
+#define OLE 361
+#define OGE 362
+#define ORD 363
+#define UNO 364
+#define UEQ 365
+#define UNE 366
+#define MALLOC 367
+#define ALLOCA 368
+#define FREE 369
+#define LOAD 370
+#define STORE 371
+#define GETELEMENTPTR 372
+#define TRUNC 373
+#define ZEXT 374
+#define SEXT 375
+#define FPTRUNC 376
+#define FPEXT 377
+#define BITCAST 378
+#define UITOFP 379
+#define SITOFP 380
+#define FPTOUI 381
+#define FPTOSI 382
+#define INTTOPTR 383
+#define PTRTOINT 384
+#define PHI_TOK 385
+#define SELECT 386
+#define SHL 387
+#define LSHR 388
+#define ASHR 389
+#define VAARG 390
+#define EXTRACTELEMENT 391
+#define INSERTELEMENT 392
+#define SHUFFLEVECTOR 393
 
 
 
 
 /* Copy the first part of user declarations.  */
-#line 14 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
 
 #include "ParserInternals.h"
 #include "llvm/CallingConv.h"
@@ -1208,8 +1199,13 @@
 # define YYERROR_VERBOSE 0
 #endif
 
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 855 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 855 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1252,8 +1248,8 @@
   llvm::ICmpInst::Predicate         IPredicate;
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
-/* Line 191 of yacc.c.  */
-#line 1257 "llvmAsmParser.tab.c"
+/* Line 196 of yacc.c.  */
+#line 1253 "llvmAsmParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1264,30 +1260,49 @@
 /* Copy the second part of user declarations.  */
 
 
-/* Line 214 of yacc.c.  */
-#line 1269 "llvmAsmParser.tab.c"
+/* Line 219 of yacc.c.  */
+#line 1265 "llvmAsmParser.tab.c"
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
 
 #if ! defined (yyoverflow) || YYERROR_VERBOSE
 
-# ifndef YYFREE
-#  define YYFREE free
-# endif
-# ifndef YYMALLOC
-#  define YYMALLOC malloc
-# endif
-
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
 # ifdef YYSTACK_USE_ALLOCA
 #  if YYSTACK_USE_ALLOCA
-#   define YYSTACK_ALLOC alloca
-#  endif
-# else
-#  if defined (alloca) || defined (_ALLOCA_H)
-#   define YYSTACK_ALLOC alloca
-#  else
 #   ifdef __GNUC__
 #    define YYSTACK_ALLOC __builtin_alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if defined (__STDC__) || defined (__cplusplus)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     define YYINCLUDED_STDLIB_H
+#    endif
 #   endif
 #  endif
 # endif
@@ -1295,13 +1310,39 @@
 # ifdef YYSTACK_ALLOC
    /* Pacify GCC's `empty if-body' warning. */
 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
 #  endif
+# else
 #  define YYSTACK_ALLOC YYMALLOC
 #  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+#  endif
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifdef __cplusplus
+}
+#  endif
 # endif
 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
@@ -1313,7 +1354,7 @@
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  short yyss;
+  short int yyss;
   YYSTYPE yyvs;
   };
 
@@ -1323,7 +1364,7 @@
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+     ((N) * (sizeof (short int) + sizeof (YYSTYPE))			\
       + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
@@ -1336,7 +1377,7 @@
 #   define YYCOPY(To, From, Count)		\
       do					\
 	{					\
-	  register YYSIZE_T yyi;		\
+	  YYSIZE_T yyi;				\
 	  for (yyi = 0; yyi < (Count); yyi++)	\
 	    (To)[yyi] = (From)[yyi];		\
 	}					\
@@ -1365,28 +1406,28 @@
 #if defined (__STDC__) || defined (__cplusplus)
    typedef signed char yysigned_char;
 #else
-   typedef short yysigned_char;
+   typedef short int yysigned_char;
 #endif
 
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1476
+#define YYLAST   1390
 
 /* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  159
+#define YYNTOKENS  153
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  78
+#define YYNNTS  76
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  299
+#define YYNRULES  291
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  584
+#define YYNSTATES  567
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   399
+#define YYMAXUTOK   393
 
-#define YYTRANSLATE(YYX) 						\
+#define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
@@ -1396,15 +1437,15 @@
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     148,   149,   157,     2,   146,     2,     2,     2,     2,     2,
+     142,   143,   151,     2,   140,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     153,   145,   154,     2,     2,     2,     2,     2,     2,     2,
+     147,   139,   148,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   150,   147,   152,     2,     2,     2,     2,     2,   158,
+       2,   144,   141,   146,     2,     2,     2,     2,     2,   152,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     151,     2,     2,   155,     2,   156,     2,     2,     2,     2,
+     145,     2,     2,   149,     2,   150,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1431,13 +1472,13 @@
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144
+     135,   136,   137,   138
 };
 
 #if YYDEBUG
 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-static const unsigned short yyprhs[] =
+static const unsigned short int yyprhs[] =
 {
        0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
       19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
@@ -1446,168 +1487,166 @@
       79,    81,    83,    85,    87,    89,    91,    93,    95,    97,
       99,   101,   103,   105,   107,   109,   111,   113,   115,   117,
      119,   121,   123,   125,   127,   129,   131,   133,   135,   137,
-     139,   141,   143,   145,   147,   149,   151,   153,   156,   157,
-     159,   161,   163,   165,   167,   169,   171,   172,   173,   175,
-     177,   179,   181,   183,   185,   188,   189,   192,   193,   197,
-     200,   201,   203,   204,   208,   210,   213,   215,   217,   219,
+     140,   141,   143,   145,   147,   149,   151,   153,   155,   156,
+     157,   159,   161,   163,   165,   167,   169,   172,   173,   176,
+     177,   181,   184,   185,   187,   188,   192,   194,   197,   199,
+     201,   203,   205,   207,   209,   211,   213,   215,   217,   219,
      221,   223,   225,   227,   229,   231,   233,   235,   237,   239,
-     241,   243,   245,   247,   249,   251,   253,   255,   258,   263,
-     269,   275,   279,   282,   288,   293,   296,   298,   302,   304,
-     308,   310,   311,   316,   320,   324,   329,   334,   338,   341,
-     344,   347,   350,   353,   356,   359,   362,   365,   368,   375,
-     381,   390,   397,   404,   411,   419,   427,   434,   441,   450,
-     459,   463,   465,   467,   469,   471,   474,   477,   482,   485,
-     487,   492,   495,   500,   501,   509,   510,   518,   519,   527,
-     528,   536,   540,   545,   546,   548,   550,   552,   556,   560,
-     564,   568,   572,   576,   578,   579,   581,   583,   585,   586,
-     589,   593,   595,   597,   601,   603,   604,   613,   615,   617,
-     621,   623,   625,   628,   629,   631,   633,   634,   639,   640,
-     642,   644,   646,   648,   650,   652,   654,   656,   658,   662,
-     664,   670,   672,   674,   676,   678,   681,   684,   687,   691,
-     694,   695,   697,   700,   703,   707,   717,   727,   736,   750,
-     752,   754,   761,   767,   770,   777,   785,   787,   791,   793,
-     794,   797,   799,   805,   811,   817,   824,   831,   834,   839,
-     844,   851,   856,   861,   868,   875,   878,   886,   888,   891,
-     892,   894,   895,   899,   906,   910,   917,   920,   925,   932
+     242,   247,   253,   259,   263,   266,   272,   277,   280,   282,
+     286,   288,   292,   294,   295,   300,   304,   308,   313,   318,
+     322,   325,   328,   331,   334,   337,   340,   343,   346,   349,
+     352,   355,   358,   365,   371,   380,   387,   394,   402,   410,
+     417,   424,   433,   442,   446,   448,   450,   452,   454,   457,
+     460,   465,   468,   470,   475,   478,   483,   484,   492,   493,
+     501,   502,   510,   511,   519,   523,   528,   529,   531,   533,
+     535,   539,   543,   547,   551,   555,   559,   561,   562,   564,
+     566,   568,   569,   572,   576,   578,   580,   584,   586,   587,
+     596,   598,   600,   604,   606,   608,   611,   612,   614,   616,
+     617,   622,   623,   625,   627,   629,   631,   633,   635,   637,
+     639,   641,   645,   647,   653,   655,   657,   659,   661,   664,
+     667,   670,   674,   677,   678,   680,   683,   686,   690,   700,
+     710,   719,   733,   735,   737,   744,   750,   753,   760,   768,
+     770,   774,   776,   777,   780,   782,   788,   794,   801,   808,
+     811,   816,   821,   828,   833,   838,   845,   852,   855,   863,
+     865,   868,   869,   871,   872,   876,   883,   887,   894,   897,
+     902,   909
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short yyrhs[] =
+static const short int yyrhs[] =
 {
-     193,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
-      -1,    78,    -1,    79,    -1,    80,    -1,    81,    -1,    82,
-      -1,    83,    -1,    84,    -1,    85,    -1,    86,    -1,    87,
-      -1,    88,    -1,    89,    -1,    90,    -1,    91,    -1,    92,
-      -1,    93,    -1,    94,    -1,    95,    -1,   124,    -1,   125,
-      -1,   126,    -1,   127,    -1,   128,    -1,   129,    -1,   130,
-      -1,   131,    -1,   132,    -1,   133,    -1,   134,    -1,   135,
-      -1,   138,    -1,   139,    -1,   140,    -1,    98,    -1,    99,
-      -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
-      -1,   105,    -1,   106,    -1,   107,    -1,   108,    -1,   109,
-      -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,
-      -1,   115,    -1,   116,    -1,   117,    -1,   104,    -1,   105,
-      -1,   106,    -1,   107,    -1,    27,    -1,    28,    -1,    16,
-      -1,    14,    -1,    12,    -1,    10,    -1,    17,    -1,    15,
-      -1,    13,    -1,    11,    -1,   169,    -1,   170,    -1,    18,
-      -1,    19,    -1,   205,   145,    -1,    -1,    41,    -1,    42,
-      -1,    43,    -1,    44,    -1,    45,    -1,    46,    -1,    47,
-      -1,    -1,    -1,    65,    -1,    66,    -1,    67,    -1,    68,
-      -1,    69,    -1,    70,    -1,    64,     4,    -1,    -1,    57,
-       4,    -1,    -1,   146,    57,     4,    -1,    34,    24,    -1,
-      -1,   178,    -1,    -1,   146,   181,   180,    -1,   178,    -1,
-      57,     4,    -1,   184,    -1,     8,    -1,   186,    -1,     8,
-      -1,   186,    -1,     9,    -1,    10,    -1,    11,    -1,    12,
-      -1,    13,    -1,    14,    -1,    15,    -1,    16,    -1,    17,
-      -1,    18,    -1,    19,    -1,    20,    -1,    21,    -1,    48,
-      -1,   185,    -1,   220,    -1,   147,     4,    -1,   183,   148,
-     188,   149,    -1,   150,     4,   151,   186,   152,    -1,   153,
-       4,   151,   186,   154,    -1,   155,   187,   156,    -1,   155,
-     156,    -1,   153,   155,   187,   156,   154,    -1,   153,   155,
-     156,   154,    -1,   186,   157,    -1,   186,    -1,   187,   146,
-     186,    -1,   187,    -1,   187,   146,    37,    -1,    37,    -1,
-      -1,   184,   150,   191,   152,    -1,   184,   150,   152,    -1,
-     184,   158,    24,    -1,   184,   153,   191,   154,    -1,   184,
-     155,   191,   156,    -1,   184,   155,   156,    -1,   184,    38,
-      -1,   184,    39,    -1,   184,   220,    -1,   184,   190,    -1,
-     184,    26,    -1,   169,   161,    -1,   170,     4,    -1,     9,
-      27,    -1,     9,    28,    -1,   172,     7,    -1,   165,   148,
-     189,    36,   184,   149,    -1,   123,   148,   189,   234,   149,
-      -1,   137,   148,   189,   146,   189,   146,   189,   149,    -1,
-     162,   148,   189,   146,   189,   149,    -1,   163,   148,   189,
-     146,   189,   149,    -1,   164,   148,   189,   146,   189,   149,
-      -1,    96,   167,   148,   189,   146,   189,   149,    -1,    97,
-     168,   148,   189,   146,   189,   149,    -1,   166,   148,   189,
-     146,   189,   149,    -1,   142,   148,   189,   146,   189,   149,
-      -1,   143,   148,   189,   146,   189,   146,   189,   149,    -1,
-     144,   148,   189,   146,   189,   146,   189,   149,    -1,   191,
-     146,   189,    -1,   189,    -1,    32,    -1,    33,    -1,   194,
-      -1,   194,   214,    -1,   194,   216,    -1,   194,    62,    61,
-     200,    -1,   194,    25,    -1,   195,    -1,   195,   173,    20,
-     182,    -1,   195,   216,    -1,   195,    62,    61,   200,    -1,
-      -1,   195,   173,   174,   192,   189,   196,   180,    -1,    -1,
-     195,   173,    50,   192,   184,   197,   180,    -1,    -1,   195,
-     173,    45,   192,   184,   198,   180,    -1,    -1,   195,   173,
-      47,   192,   184,   199,   180,    -1,   195,    51,   202,    -1,
-     195,    58,   145,   203,    -1,    -1,    24,    -1,    56,    -1,
-      55,    -1,    53,   145,   201,    -1,    54,   145,     4,    -1,
-      52,   145,    24,    -1,    71,   145,    24,    -1,   150,   204,
-     152,    -1,   204,   146,    24,    -1,    24,    -1,    -1,    22,
-      -1,    24,    -1,   205,    -1,    -1,   184,   206,    -1,   208,
-     146,   207,    -1,   207,    -1,   208,    -1,   208,   146,    37,
-      -1,    37,    -1,    -1,   175,   182,   205,   148,   209,   149,
-     179,   176,    -1,    29,    -1,   155,    -1,   174,   210,   211,
-      -1,    30,    -1,   156,    -1,   223,   213,    -1,    -1,    45,
-      -1,    47,    -1,    -1,    31,   217,   215,   210,    -1,    -1,
-      63,    -1,     3,    -1,     4,    -1,     7,    -1,    27,    -1,
-      28,    -1,    38,    -1,    39,    -1,    26,    -1,   153,   191,
-     154,    -1,   190,    -1,    61,   218,    24,   146,    24,    -1,
-     160,    -1,   205,    -1,   220,    -1,   219,    -1,   184,   221,
-      -1,   223,   224,    -1,   212,   224,    -1,   225,   173,   226,
-      -1,   225,   228,    -1,    -1,    23,    -1,    72,   222,    -1,
-      72,     8,    -1,    73,    21,   221,    -1,    73,     9,   221,
-     146,    21,   221,   146,    21,   221,    -1,    74,   171,   221,
-     146,    21,   221,   150,   227,   152,    -1,    74,   171,   221,
-     146,    21,   221,   150,   152,    -1,    75,   175,   182,   221,
-     148,   231,   149,    36,    21,   221,    76,    21,   221,    -1,
-      76,    -1,    77,    -1,   227,   171,   219,   146,    21,   221,
-      -1,   171,   219,   146,    21,   221,    -1,   173,   233,    -1,
-     184,   150,   221,   146,   221,   152,    -1,   229,   146,   150,
-     221,   146,   221,   152,    -1,   222,    -1,   230,   146,   222,
-      -1,   230,    -1,    -1,    60,    59,    -1,    59,    -1,   162,
-     184,   221,   146,   221,    -1,   163,   184,   221,   146,   221,
-      -1,   164,   184,   221,   146,   221,    -1,    96,   167,   184,
-     221,   146,   221,    -1,    97,   168,   184,   221,   146,   221,
-      -1,    49,   222,    -1,   166,   222,   146,   222,    -1,   165,
-     222,    36,   184,    -1,   137,   222,   146,   222,   146,   222,
-      -1,   141,   222,   146,   184,    -1,   142,   222,   146,   222,
-      -1,   143,   222,   146,   222,   146,   222,    -1,   144,   222,
-     146,   222,   146,   222,    -1,   136,   229,    -1,   232,   175,
-     182,   221,   148,   231,   149,    -1,   236,    -1,   146,   230,
-      -1,    -1,    35,    -1,    -1,   118,   184,   177,    -1,   118,
-     184,   146,    15,   221,   177,    -1,   119,   184,   177,    -1,
-     119,   184,   146,    15,   221,   177,    -1,   120,   222,    -1,
-     235,   121,   184,   221,    -1,   235,   122,   222,   146,   184,
-     221,    -1,   123,   184,   221,   234,    -1
+     185,     0,    -1,     5,    -1,     6,    -1,    78,    -1,    79,
+      -1,    80,    -1,    81,    -1,    82,    -1,    83,    -1,    84,
+      -1,    85,    -1,    86,    -1,    87,    -1,    88,    -1,    89,
+      -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,   122,
+      -1,   123,    -1,   124,    -1,   125,    -1,   126,    -1,   127,
+      -1,   128,    -1,   129,    -1,   132,    -1,   133,    -1,   134,
+      -1,    92,    -1,    93,    -1,    94,    -1,    95,    -1,    96,
+      -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
+      -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
+      -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,   111,
+      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,    27,
+      -1,    28,    -1,    16,    -1,    14,    -1,    12,    -1,    10,
+      -1,    17,    -1,    15,    -1,    13,    -1,    11,    -1,   161,
+      -1,   162,    -1,    18,    -1,    19,    -1,   197,   139,    -1,
+      -1,    41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,
+      -1,    46,    -1,    47,    -1,    -1,    -1,    65,    -1,    66,
+      -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,    64,
+       4,    -1,    -1,    57,     4,    -1,    -1,   140,    57,     4,
+      -1,    34,    24,    -1,    -1,   170,    -1,    -1,   140,   173,
+     172,    -1,   170,    -1,    57,     4,    -1,   176,    -1,     8,
+      -1,   178,    -1,     8,    -1,   178,    -1,     9,    -1,    10,
+      -1,    11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,
+      -1,    16,    -1,    17,    -1,    18,    -1,    19,    -1,    20,
+      -1,    21,    -1,    48,    -1,   177,    -1,   212,    -1,   141,
+       4,    -1,   175,   142,   180,   143,    -1,   144,     4,   145,
+     178,   146,    -1,   147,     4,   145,   178,   148,    -1,   149,
+     179,   150,    -1,   149,   150,    -1,   147,   149,   179,   150,
+     148,    -1,   147,   149,   150,   148,    -1,   178,   151,    -1,
+     178,    -1,   179,   140,   178,    -1,   179,    -1,   179,   140,
+      37,    -1,    37,    -1,    -1,   176,   144,   183,   146,    -1,
+     176,   144,   146,    -1,   176,   152,    24,    -1,   176,   147,
+     183,   148,    -1,   176,   149,   183,   150,    -1,   176,   149,
+     150,    -1,   176,    38,    -1,   176,    39,    -1,   176,   212,
+      -1,   176,   182,    -1,   176,    26,    -1,   161,     3,    -1,
+     161,     4,    -1,   162,     4,    -1,   162,     3,    -1,     9,
+      27,    -1,     9,    28,    -1,   164,     7,    -1,   157,   142,
+     181,    36,   176,   143,    -1,   117,   142,   181,   226,   143,
+      -1,   131,   142,   181,   140,   181,   140,   181,   143,    -1,
+     155,   142,   181,   140,   181,   143,    -1,   156,   142,   181,
+     140,   181,   143,    -1,    90,   159,   142,   181,   140,   181,
+     143,    -1,    91,   160,   142,   181,   140,   181,   143,    -1,
+     158,   142,   181,   140,   181,   143,    -1,   136,   142,   181,
+     140,   181,   143,    -1,   137,   142,   181,   140,   181,   140,
+     181,   143,    -1,   138,   142,   181,   140,   181,   140,   181,
+     143,    -1,   183,   140,   181,    -1,   181,    -1,    32,    -1,
+      33,    -1,   186,    -1,   186,   206,    -1,   186,   208,    -1,
+     186,    62,    61,   192,    -1,   186,    25,    -1,   187,    -1,
+     187,   165,    20,   174,    -1,   187,   208,    -1,   187,    62,
+      61,   192,    -1,    -1,   187,   165,   166,   184,   181,   188,
+     172,    -1,    -1,   187,   165,    50,   184,   176,   189,   172,
+      -1,    -1,   187,   165,    45,   184,   176,   190,   172,    -1,
+      -1,   187,   165,    47,   184,   176,   191,   172,    -1,   187,
+      51,   194,    -1,   187,    58,   139,   195,    -1,    -1,    24,
+      -1,    56,    -1,    55,    -1,    53,   139,   193,    -1,    54,
+     139,     4,    -1,    52,   139,    24,    -1,    71,   139,    24,
+      -1,   144,   196,   146,    -1,   196,   140,    24,    -1,    24,
+      -1,    -1,    22,    -1,    24,    -1,   197,    -1,    -1,   176,
+     198,    -1,   200,   140,   199,    -1,   199,    -1,   200,    -1,
+     200,   140,    37,    -1,    37,    -1,    -1,   167,   174,   197,
+     142,   201,   143,   171,   168,    -1,    29,    -1,   149,    -1,
+     166,   202,   203,    -1,    30,    -1,   150,    -1,   215,   205,
+      -1,    -1,    45,    -1,    47,    -1,    -1,    31,   209,   207,
+     202,    -1,    -1,    63,    -1,     3,    -1,     4,    -1,     7,
+      -1,    27,    -1,    28,    -1,    38,    -1,    39,    -1,    26,
+      -1,   147,   183,   148,    -1,   182,    -1,    61,   210,    24,
+     140,    24,    -1,   154,    -1,   197,    -1,   212,    -1,   211,
+      -1,   176,   213,    -1,   215,   216,    -1,   204,   216,    -1,
+     217,   165,   218,    -1,   217,   220,    -1,    -1,    23,    -1,
+      72,   214,    -1,    72,     8,    -1,    73,    21,   213,    -1,
+      73,     9,   213,   140,    21,   213,   140,    21,   213,    -1,
+      74,   163,   213,   140,    21,   213,   144,   219,   146,    -1,
+      74,   163,   213,   140,    21,   213,   144,   146,    -1,    75,
+     167,   174,   213,   142,   223,   143,    36,    21,   213,    76,
+      21,   213,    -1,    76,    -1,    77,    -1,   219,   163,   211,
+     140,    21,   213,    -1,   163,   211,   140,    21,   213,    -1,
+     165,   225,    -1,   176,   144,   213,   140,   213,   146,    -1,
+     221,   140,   144,   213,   140,   213,   146,    -1,   214,    -1,
+     222,   140,   214,    -1,   222,    -1,    -1,    60,    59,    -1,
+      59,    -1,   155,   176,   213,   140,   213,    -1,   156,   176,
+     213,   140,   213,    -1,    90,   159,   176,   213,   140,   213,
+      -1,    91,   160,   176,   213,   140,   213,    -1,    49,   214,
+      -1,   158,   214,   140,   214,    -1,   157,   214,    36,   176,
+      -1,   131,   214,   140,   214,   140,   214,    -1,   135,   214,
+     140,   176,    -1,   136,   214,   140,   214,    -1,   137,   214,
+     140,   214,   140,   214,    -1,   138,   214,   140,   214,   140,
+     214,    -1,   130,   221,    -1,   224,   167,   174,   213,   142,
+     223,   143,    -1,   228,    -1,   140,   222,    -1,    -1,    35,
+      -1,    -1,   112,   176,   169,    -1,   112,   176,   140,    15,
+     213,   169,    -1,   113,   176,   169,    -1,   113,   176,   140,
+      15,   213,   169,    -1,   114,   214,    -1,   227,   115,   176,
+     213,    -1,   227,   116,   214,   140,   176,   213,    -1,   117,
+     176,   213,   226,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
+static const unsigned short int yyrline[] =
 {
-       0,   990,   990,   991,   999,  1000,  1010,  1010,  1010,  1010,
-    1010,  1010,  1010,  1010,  1010,  1011,  1011,  1011,  1012,  1012,
-    1012,  1012,  1012,  1012,  1013,  1013,  1013,  1013,  1013,  1013,
-    1014,  1014,  1014,  1014,  1014,  1014,  1015,  1015,  1015,  1017,
-    1017,  1018,  1018,  1019,  1019,  1020,  1020,  1021,  1021,  1025,
-    1025,  1026,  1026,  1027,  1027,  1028,  1028,  1029,  1029,  1030,
-    1030,  1031,  1031,  1032,  1033,  1038,  1038,  1038,  1038,  1039,
-    1039,  1039,  1039,  1040,  1040,  1041,  1041,  1044,  1048,  1053,
-    1054,  1055,  1056,  1057,  1058,  1059,  1060,  1062,  1063,  1064,
-    1065,  1066,  1067,  1068,  1069,  1078,  1079,  1085,  1086,  1094,
-    1102,  1103,  1108,  1109,  1110,  1115,  1129,  1129,  1130,  1130,
-    1132,  1142,  1142,  1142,  1142,  1142,  1142,  1142,  1143,  1143,
-    1143,  1143,  1143,  1143,  1144,  1148,  1152,  1160,  1168,  1181,
-    1186,  1198,  1208,  1212,  1222,  1226,  1237,  1242,  1248,  1249,
-    1253,  1257,  1268,  1294,  1308,  1338,  1364,  1385,  1398,  1408,
-    1413,  1474,  1481,  1489,  1495,  1501,  1505,  1509,  1517,  1529,
-    1550,  1558,  1564,  1575,  1581,  1586,  1591,  1600,  1606,  1612,
-    1621,  1625,  1633,  1633,  1643,  1651,  1656,  1660,  1664,  1668,
-    1683,  1705,  1708,  1711,  1711,  1719,  1719,  1727,  1727,  1735,
-    1735,  1744,  1747,  1750,  1754,  1767,  1768,  1770,  1774,  1783,
-    1787,  1792,  1794,  1799,  1804,  1813,  1813,  1814,  1814,  1816,
-    1823,  1829,  1836,  1840,  1846,  1851,  1856,  1951,  1951,  1953,
-    1961,  1961,  1963,  1968,  1969,  1970,  1972,  1972,  1982,  1986,
-    1991,  1995,  1999,  2003,  2007,  2011,  2015,  2019,  2023,  2048,
-    2052,  2066,  2070,  2076,  2076,  2082,  2087,  2091,  2100,  2111,
-    2120,  2132,  2145,  2149,  2153,  2158,  2167,  2186,  2195,  2251,
-    2255,  2262,  2273,  2286,  2295,  2304,  2314,  2318,  2325,  2325,
-    2327,  2331,  2336,  2355,  2370,  2384,  2395,  2406,  2419,  2428,
-    2439,  2447,  2452,  2458,  2464,  2470,  2485,  2544,  2551,  2554,
-    2559,  2563,  2570,  2575,  2581,  2586,  2592,  2600,  2612,  2627
+       0,   988,   988,   989,   999,   999,   999,   999,   999,   999,
+     999,   999,   999,  1000,  1000,  1000,  1001,  1001,  1001,  1001,
+    1001,  1001,  1002,  1002,  1002,  1002,  1002,  1002,  1003,  1003,
+    1003,  1005,  1005,  1006,  1006,  1007,  1007,  1008,  1008,  1009,
+    1009,  1013,  1013,  1014,  1014,  1015,  1015,  1016,  1016,  1017,
+    1017,  1018,  1018,  1019,  1019,  1020,  1021,  1026,  1026,  1026,
+    1026,  1027,  1027,  1027,  1027,  1028,  1028,  1029,  1029,  1032,
+    1036,  1041,  1042,  1043,  1044,  1045,  1046,  1047,  1048,  1050,
+    1051,  1052,  1053,  1054,  1055,  1056,  1057,  1066,  1067,  1073,
+    1074,  1082,  1090,  1091,  1096,  1097,  1098,  1103,  1117,  1117,
+    1118,  1118,  1120,  1130,  1130,  1130,  1130,  1130,  1130,  1130,
+    1131,  1131,  1131,  1131,  1131,  1131,  1132,  1136,  1140,  1148,
+    1156,  1169,  1174,  1186,  1196,  1200,  1210,  1214,  1225,  1230,
+    1236,  1237,  1241,  1245,  1256,  1282,  1296,  1326,  1352,  1373,
+    1386,  1396,  1401,  1462,  1469,  1477,  1483,  1489,  1495,  1501,
+    1505,  1509,  1517,  1529,  1550,  1558,  1564,  1575,  1580,  1585,
+    1594,  1600,  1606,  1615,  1619,  1627,  1627,  1637,  1645,  1650,
+    1654,  1658,  1662,  1677,  1699,  1702,  1705,  1705,  1713,  1713,
+    1721,  1721,  1729,  1729,  1738,  1741,  1744,  1748,  1761,  1762,
+    1764,  1768,  1777,  1781,  1786,  1788,  1793,  1798,  1807,  1807,
+    1808,  1808,  1810,  1817,  1823,  1830,  1834,  1840,  1845,  1850,
+    1945,  1945,  1947,  1955,  1955,  1957,  1962,  1963,  1964,  1966,
+    1966,  1976,  1980,  1985,  1989,  1993,  1997,  2001,  2005,  2009,
+    2013,  2017,  2042,  2046,  2060,  2064,  2070,  2070,  2076,  2081,
+    2085,  2094,  2105,  2114,  2126,  2139,  2143,  2147,  2152,  2161,
+    2180,  2189,  2245,  2249,  2256,  2267,  2280,  2289,  2298,  2308,
+    2312,  2319,  2319,  2321,  2325,  2330,  2349,  2364,  2375,  2386,
+    2399,  2408,  2419,  2427,  2432,  2438,  2444,  2450,  2465,  2524,
+    2531,  2534,  2539,  2543,  2550,  2555,  2561,  2566,  2572,  2580,
+    2592,  2607
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
@@ -1625,27 +1664,26 @@
   "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
   "RET", "BR", "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB",
   "MUL", "UDIV", "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR",
-  "XOR", "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "ICMP",
-  "FCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT", "UGT", "ULE",
-  "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ",
-  "UNE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR",
-  "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP",
-  "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK",
-  "SELECT", "SHL", "LSHR", "ASHR", "VAARG", "EXTRACTELEMENT",
+  "XOR", "ICMP", "FCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT",
+  "UGT", "ULE", "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD",
+  "UNO", "UEQ", "UNE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE",
+  "GETELEMENTPTR", "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "BITCAST",
+  "UITOFP", "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR", "PTRTOINT",
+  "PHI_TOK", "SELECT", "SHL", "LSHR", "ASHR", "VAARG", "EXTRACTELEMENT",
   "INSERTELEMENT", "SHUFFLEVECTOR", "'='", "','", "'\\\\'", "'('", "')'",
   "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'*'", "'c'", "$accept",
-  "INTVAL", "EINT64VAL", "ArithmeticOps", "LogicalOps", "SetCondOps",
-  "CastOps", "ShiftOps", "IPredicates", "FPredicates", "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", "@3", "@4", "AsmBlock", "BigOrLittle",
-  "TargetDefinition", "LibrariesDefinition", "LibList", "Name", "OptName",
-  "ArgVal", "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN",
-  "FunctionHeader", "END", "Function", "FnDeclareLinkage", "FunctionProto",
-  "@5", "OptSideEffect", "ConstValueRef", "SymbolicValueRef", "ValueRef",
+  "INTVAL", "ArithmeticOps", "LogicalOps", "CastOps", "ShiftOps",
+  "IPredicates", "FPredicates", "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", "@3", "@4", "AsmBlock", "BigOrLittle", "TargetDefinition",
+  "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
+  "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
+  "END", "Function", "FnDeclareLinkage", "FunctionProto", "@5",
+  "OptSideEffect", "ConstValueRef", "SymbolicValueRef", "ValueRef",
   "ResolvedVal", "BasicBlockList", "BasicBlock", "InstructionList",
   "BBTerminatorInst", "JumpTable", "Inst", "PHIList", "ValueRefList",
   "ValueRefListE", "OptTailCall", "InstVal", "IndexList", "OptVolatile",
@@ -1656,7 +1694,7 @@
 # ifdef YYPRINT
 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
+static const unsigned short int yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -1671,45 +1709,45 @@
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,   399,    61,    44,    92,    40,    41,
-      91,   120,    93,    60,    62,   123,   125,    42,    99
+     385,   386,   387,   388,   389,   390,   391,   392,   393,    61,
+      44,    92,    40,    41,    91,   120,    93,    60,    62,   123,
+     125,    42,    99
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const unsigned char yyr1[] =
 {
-       0,   159,   160,   160,   161,   161,   162,   162,   162,   162,
-     162,   162,   162,   162,   162,   163,   163,   163,   164,   164,
-     164,   164,   164,   164,   165,   165,   165,   165,   165,   165,
-     165,   165,   165,   165,   165,   165,   166,   166,   166,   167,
-     167,   167,   167,   167,   167,   167,   167,   167,   167,   168,
-     168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
-     168,   168,   168,   168,   168,   169,   169,   169,   169,   170,
-     170,   170,   170,   171,   171,   172,   172,   173,   173,   174,
-     174,   174,   174,   174,   174,   174,   174,   175,   175,   175,
-     175,   175,   175,   175,   175,   176,   176,   177,   177,   178,
-     179,   179,   180,   180,   181,   181,   182,   182,   183,   183,
-     184,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   187,   187,   188,   188,
-     188,   188,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   190,   190,
-     190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
-     191,   191,   192,   192,   193,   194,   194,   194,   194,   194,
-     195,   195,   195,   196,   195,   197,   195,   198,   195,   199,
-     195,   195,   195,   195,   200,   201,   201,   202,   202,   202,
-     202,   203,   204,   204,   204,   205,   205,   206,   206,   207,
-     208,   208,   209,   209,   209,   209,   210,   211,   211,   212,
-     213,   213,   214,   215,   215,   215,   217,   216,   218,   218,
-     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
-     219,   220,   220,   221,   221,   222,   223,   223,   224,   225,
-     225,   225,   226,   226,   226,   226,   226,   226,   226,   226,
-     226,   227,   227,   228,   229,   229,   230,   230,   231,   231,
-     232,   232,   233,   233,   233,   233,   233,   233,   233,   233,
-     233,   233,   233,   233,   233,   233,   233,   233,   234,   234,
-     235,   235,   236,   236,   236,   236,   236,   236,   236,   236
+       0,   153,   154,   154,   155,   155,   155,   155,   155,   155,
+     155,   155,   155,   156,   156,   156,   157,   157,   157,   157,
+     157,   157,   157,   157,   157,   157,   157,   157,   158,   158,
+     158,   159,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   160,   160,   160,   160,   160,   160,   160,   160,   160,
+     160,   160,   160,   160,   160,   160,   160,   161,   161,   161,
+     161,   162,   162,   162,   162,   163,   163,   164,   164,   165,
+     165,   166,   166,   166,   166,   166,   166,   166,   166,   167,
+     167,   167,   167,   167,   167,   167,   167,   168,   168,   169,
+     169,   170,   171,   171,   172,   172,   173,   173,   174,   174,
+     175,   175,   176,   177,   177,   177,   177,   177,   177,   177,
+     177,   177,   177,   177,   177,   177,   178,   178,   178,   178,
+     178,   178,   178,   178,   178,   178,   178,   178,   179,   179,
+     180,   180,   180,   180,   181,   181,   181,   181,   181,   181,
+     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
+     181,   181,   182,   182,   182,   182,   182,   182,   182,   182,
+     182,   182,   182,   183,   183,   184,   184,   185,   186,   186,
+     186,   186,   186,   187,   187,   187,   188,   187,   189,   187,
+     190,   187,   191,   187,   187,   187,   187,   192,   193,   193,
+     194,   194,   194,   194,   195,   196,   196,   196,   197,   197,
+     198,   198,   199,   200,   200,   201,   201,   201,   201,   202,
+     203,   203,   204,   205,   205,   206,   207,   207,   207,   209,
+     208,   210,   210,   211,   211,   211,   211,   211,   211,   211,
+     211,   211,   211,   211,   212,   212,   213,   213,   214,   215,
+     215,   216,   217,   217,   217,   218,   218,   218,   218,   218,
+     218,   218,   218,   218,   219,   219,   220,   221,   221,   222,
+     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
+     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
+     226,   226,   227,   227,   228,   228,   228,   228,   228,   228,
+     228,   228
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1721,580 +1759,542 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       0,     1,     1,     1,     1,     1,     1,     1,     0,     0,
+       1,     1,     1,     1,     1,     1,     2,     0,     2,     0,
+       3,     2,     0,     1,     0,     3,     1,     2,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     0,     1,
-       1,     1,     1,     1,     1,     1,     0,     0,     1,     1,
-       1,     1,     1,     1,     2,     0,     2,     0,     3,     2,
-       0,     1,     0,     3,     1,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     4,     5,
-       5,     3,     2,     5,     4,     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,     7,     7,     6,     6,     8,     8,
-       3,     1,     1,     1,     1,     2,     2,     4,     2,     1,
-       4,     2,     4,     0,     7,     0,     7,     0,     7,     0,
-       7,     3,     4,     0,     1,     1,     1,     3,     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,     1,     1,     0,     4,     0,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
-       5,     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,     6,     6,     2,     4,     4,
-       6,     4,     4,     6,     6,     2,     7,     1,     2,     0,
-       1,     0,     3,     6,     3,     6,     2,     4,     6,     4
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       4,     5,     5,     3,     2,     5,     4,     2,     1,     3,
+       1,     3,     1,     0,     4,     3,     3,     4,     4,     3,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     6,     5,     8,     6,     6,     7,     7,     6,
+       6,     8,     8,     3,     1,     1,     1,     1,     2,     2,
+       4,     2,     1,     4,     2,     4,     0,     7,     0,     7,
+       0,     7,     0,     7,     3,     4,     0,     1,     1,     1,
+       3,     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,     1,     1,     0,
+       4,     0,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     3,     1,     5,     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,     6,     6,     2,
+       4,     4,     6,     4,     4,     6,     6,     2,     7,     1,
+       2,     0,     1,     0,     3,     6,     3,     6,     2,     4,
+       6,     4
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
-static const unsigned short yydefact[] =
+static const unsigned short int yydefact[] =
 {
-     193,     0,    86,   179,     1,   178,   226,    79,    80,    81,
-      82,    83,    84,    85,     0,    87,   250,   175,   176,   250,
-     205,   206,     0,     0,     0,    86,     0,   181,   223,     0,
-       0,    88,    89,    90,    91,    92,    93,     0,     0,   251,
-     247,    78,   220,   221,   222,   246,     0,     0,     0,     0,
-     191,     0,     0,     0,     0,     0,     0,     0,    77,   224,
-     225,    87,   194,   177,    94,     2,     3,   107,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,     0,     0,     0,     0,   241,     0,     0,   106,
-     125,   110,   242,   126,   217,   218,   219,   291,   249,     0,
-       0,     0,     0,   204,   192,   182,   180,   172,   173,     0,
-       0,     0,     0,   227,   127,     0,     0,     0,   109,   132,
-     136,     0,     0,   141,   135,   290,     0,   271,     0,     0,
-       0,     0,    87,   259,   260,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,     0,     0,     0,     0,     0,     0,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,     0,     0,    36,    37,    38,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   248,    87,   263,     0,   287,
-     199,   196,   195,   197,   198,   200,   203,     0,   187,   189,
-     185,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,     0,     0,     0,     0,   183,     0,     0,     0,
-       0,     0,   131,   215,   140,   138,     0,     0,   277,   270,
-     253,   252,     0,     0,    68,    72,    67,    71,    66,    70,
-      65,    69,    73,    74,     0,     0,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,     0,    63,    64,    59,
-      60,    61,    62,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,     0,    97,    97,   296,     0,     0,   285,
+     186,     0,    78,   172,     1,   171,   219,    71,    72,    73,
+      74,    75,    76,    77,     0,    79,   243,   168,   169,   243,
+     198,   199,     0,     0,     0,    78,     0,   174,   216,     0,
+       0,    80,    81,    82,    83,    84,    85,     0,     0,   244,
+     240,    70,   213,   214,   215,   239,     0,     0,     0,     0,
+     184,     0,     0,     0,     0,     0,     0,     0,    69,   217,
+     218,    79,   187,   170,    86,     2,     3,    99,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,     0,     0,     0,     0,   234,     0,     0,    98,
+     117,   102,   235,   118,   210,   211,   212,   283,   242,     0,
+       0,     0,     0,   197,   185,   175,   173,   165,   166,     0,
+       0,     0,     0,   220,   119,     0,     0,     0,   101,   124,
+     128,     0,     0,   133,   127,   282,     0,   264,     0,     0,
+       0,     0,    79,   252,   253,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,     0,     0,     0,
+       0,     0,     0,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
+       0,     0,     0,     0,     0,     0,     0,     0,   241,    79,
+     256,     0,   279,   192,   189,   188,   190,   191,   193,   196,
+       0,   180,   182,   178,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,     0,     0,     0,     0,   176,
+       0,     0,     0,     0,     0,   123,   208,   132,   130,     0,
+       0,   269,   263,   246,   245,     0,     0,    60,    64,    59,
+      63,    58,    62,    57,    61,    65,    66,     0,     0,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,     0,
+      55,    56,    51,    52,    53,    54,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,     0,    89,    89,   288,
+       0,     0,   277,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   194,    94,    94,    94,
+     149,   150,   145,   146,   148,   147,   151,   144,   140,   141,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   201,   102,   102,   102,   155,   156,
-       4,     5,   153,   154,   157,   152,   148,   149,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   151,   150,   102,   108,   108,   134,
-       0,   137,   214,   208,   211,   212,     0,     0,   128,   230,
-     231,   232,   237,   233,   234,   235,   236,   228,     0,   239,
-     244,   243,   245,     0,   254,     0,     0,     0,     0,     0,
-     292,     0,   294,   289,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   202,
-       0,   188,   190,   186,     0,     0,     0,     0,     0,     0,
-       0,   143,   171,     0,     0,   147,     0,   144,     0,     0,
-       0,     0,     0,   184,   129,   130,   133,   207,   209,     0,
-     100,   139,   229,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   299,     0,     0,     0,   281,   282,
-       0,     0,     0,     0,     0,   279,   278,     0,   297,     0,
-       0,     0,   104,   102,     0,     0,   289,     0,     0,     0,
-       0,     0,   142,   145,   146,     0,     0,     0,     0,     0,
-     213,   210,   101,    95,     0,   238,     0,     0,   269,     0,
-       0,    97,    98,    97,   266,   288,     0,     0,     0,     0,
-       0,   272,   273,   274,   269,     0,    99,   105,   103,     0,
-       0,     0,     0,     0,     0,     0,   170,     0,     0,     0,
-       0,     0,     0,   216,     0,     0,     0,   268,     0,   275,
-     276,     0,   293,   295,     0,     0,     0,   280,   283,   284,
-       0,   298,     0,     0,   159,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    96,   240,     0,     0,     0,   267,
-     264,     0,   286,     0,     0,     0,   167,     0,     0,   161,
-     162,   163,   158,   166,     0,   257,     0,     0,     0,   265,
-     164,   165,     0,     0,     0,   255,     0,   256,     0,     0,
-     160,   168,   169,     0,     0,     0,     0,     0,     0,   262,
-       0,     0,   261,   258
+       0,     0,     0,     0,     0,   143,   142,    94,   100,   100,
+     126,     0,   129,   207,   201,   204,   205,     0,     0,   120,
+     223,   224,   225,   230,   226,   227,   228,   229,   221,     0,
+     232,   237,   236,   238,     0,   247,     0,     0,     0,     0,
+       0,   284,     0,   286,   281,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   195,
+       0,   181,   183,   179,     0,     0,     0,     0,     0,     0,
+       0,   135,   164,     0,     0,   139,     0,   136,     0,     0,
+       0,     0,   177,   121,   122,   125,   200,   202,     0,    92,
+     131,   222,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   291,     0,     0,     0,   273,   274,     0,
+       0,     0,     0,   271,   270,     0,   289,     0,     0,     0,
+      96,    94,     0,     0,   281,     0,     0,     0,     0,     0,
+     134,   137,   138,     0,     0,     0,     0,   206,   203,    93,
+      87,     0,   231,     0,     0,   262,     0,     0,    89,    90,
+      89,   259,   280,     0,     0,     0,     0,     0,   265,   266,
+     262,     0,    91,    97,    95,     0,     0,     0,     0,     0,
+       0,     0,   163,     0,     0,     0,     0,     0,   209,     0,
+       0,     0,   261,     0,   267,   268,     0,   285,   287,     0,
+       0,     0,   272,   275,   276,     0,   290,     0,     0,   153,
+       0,     0,     0,     0,     0,     0,     0,     0,    88,   233,
+       0,     0,     0,   260,   257,     0,   278,     0,     0,     0,
+     160,     0,     0,   155,   156,   152,   159,     0,   250,     0,
+       0,     0,   258,   157,   158,     0,     0,     0,   248,     0,
+     249,     0,     0,   154,   161,   162,     0,     0,     0,     0,
+       0,     0,   255,     0,     0,   254,   251
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
+static const short int yydefgoto[] =
 {
-      -1,    86,   302,   319,   320,   321,   322,   323,   256,   273,
-     212,   213,   244,   214,    25,    15,    37,   503,   360,   442,
-     463,   381,   443,    87,    88,   215,    90,    91,   121,   226,
-     392,   349,   393,   109,     1,     2,     3,   326,   297,   295,
-     296,    63,   193,    50,   104,   197,    92,   408,   334,   335,
-     336,    38,    96,    16,    44,    17,    61,    18,    28,   413,
-     350,    93,   352,   474,    19,    40,    41,   185,   557,    98,
-     279,   507,   508,   186,   187,   424,   188,   189
+      -1,    86,   311,   312,   313,   314,   249,   266,   205,   206,
+     237,   207,    25,    15,    37,   488,   351,   430,   450,   371,
+     431,    87,    88,   208,    90,    91,   121,   219,   382,   340,
+     383,   109,     1,     2,     3,   317,   289,   287,   288,    63,
+     186,    50,   104,   190,    92,   397,   325,   326,   327,    38,
+      96,    16,    44,    17,    61,    18,    28,   402,   341,    93,
+     343,   461,    19,    40,    41,   178,   540,    98,   272,   492,
+     493,   179,   180,   413,   181,   182
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -529
-static const short yypact[] =
+#define YYPACT_NINF -514
+static const short int yypact[] =
 {
-    -529,    21,   408,   495,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,  -529,   -24,   145,    43,  -529,  -529,    -8,
-    -529,  -529,   -20,   -63,    30,   137,   -51,  -529,   152,    73,
-     147,  -529,  -529,  -529,  -529,  -529,  -529,  1211,    -3,  -529,
-    -529,   176,  -529,  -529,  -529,  -529,   -32,    57,    71,    72,
-    -529,    35,    73,  1211,    46,    46,    46,    46,  -529,  -529,
-    -529,   145,  -529,  -529,  -529,  -529,  -529,    74,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,   217,   219,     4,    90,  -529,   176,    77,  -529,
-    -529,  -105,  -529,  -529,  -529,  -529,  -529,  1316,  -529,   202,
-      67,   223,   204,   205,  -529,  -529,  -529,  -529,  -529,  1231,
-    1231,  1231,  1276,  -529,  -529,    82,    83,   637,  -529,  -529,
-    -105,  -117,    87,  1018,  -529,  -529,  1231,  -529,   179,  1321,
-      15,   178,   145,  -529,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,   195,   378,  1231,  1231,  1231,  1231,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  1231,  1231,  -529,  -529,  -529,  1231,  1231,  1231,  1231,
-    1231,  1231,  1231,  1231,  1231,  -529,   145,  -529,    11,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,   -98,  -529,  -529,
-    -529,   109,   157,   235,   168,   238,   173,   240,   201,   244,
-     245,   250,   203,   254,   252,   544,  -529,  1231,  1231,   106,
-    -111,  1231,  -529,  1059,  -529,   115,   113,   730,  -529,  -529,
-      74,  -529,   730,   730,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,  -529,   730,  1211,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  1231,  -529,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,  -529,  -529,  1231,   117,   124,  -529,   730,   121,   129,
-     135,   136,   139,   140,   141,   730,   730,   730,   267,   158,
-    1211,  1231,  1231,   282,  -529,   161,   161,   161,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,  -529,   195,   378,
-     160,   162,   163,   164,   165,   965,  1276,   695,   285,   167,
-     170,   171,   172,   174,  -529,  -529,   161,   -64,   -87,  -529,
-     169,  -105,  -529,   176,  -529,   175,   190,  1116,  -529,  -529,
-    -529,  -529,  -529,  -529,  -529,  -529,  -529,   253,  1276,  -529,
-    -529,  -529,  -529,   182,  -529,   194,   730,   730,   730,    -1,
-    -529,     5,  -529,   196,   730,   193,  1231,  1231,  1231,  1231,
-    1231,   198,   199,   200,  1231,  1231,   730,   730,   207,  -529,
-     -11,  -529,  -529,  -529,   206,   208,  1276,  1276,  1276,  1276,
-    1276,  -529,  -529,   -66,   -78,  -529,   -85,  -529,  1276,  1276,
-    1276,  1276,  1276,  -529,  -529,  -529,  -529,  -529,  -529,  1170,
-     290,  -529,  -529,   323,   -77,   327,   328,   209,   212,   216,
-     730,   346,   730,  1231,  -529,   218,   730,   220,  -529,  -529,
-     222,   224,   730,   730,   730,  -529,  -529,   215,  -529,  1231,
-     331,   347,  -529,   161,  1276,  1276,   196,   225,   227,   229,
-     230,  1276,  -529,  -529,  -529,   231,   234,   246,   329,   247,
-    -529,  -529,  -529,   312,   248,  -529,   730,   730,  1231,   730,
-     730,   255,  -529,   255,  -529,   257,   730,   264,  1231,  1231,
-    1231,  -529,  -529,  -529,  1231,   730,  -529,  -529,  -529,   265,
-     268,   232,  1276,  1276,  1276,  1276,  -529,  1276,  1276,  1276,
-    1231,  1276,   386,  -529,   375,   269,   270,   257,   251,  -529,
-    -529,   361,  -529,  -529,  1231,   271,   730,  -529,  -529,  -529,
-     272,  -529,  1276,  1276,  -529,   273,   275,   276,   279,   277,
-     281,   283,   287,   291,  -529,  -529,   407,   114,   398,  -529,
-    -529,   292,  -529,   296,   297,  1276,  -529,  1276,  1276,  -529,
-    -529,  -529,  -529,  -529,   730,  -529,   872,   153,   427,  -529,
-    -529,  -529,   307,   308,   309,  -529,   313,  -529,   872,   730,
-    -529,  -529,  -529,   440,   318,   389,   730,   446,   447,  -529,
-     730,   730,  -529,  -529
+    -514,    47,    80,   817,  -514,  -514,  -514,  -514,  -514,  -514,
+    -514,  -514,  -514,  -514,    -3,    79,    67,  -514,  -514,    -9,
+    -514,  -514,    33,   -46,    42,   139,   -29,  -514,    -2,    95,
+     126,  -514,  -514,  -514,  -514,  -514,  -514,  1112,   -18,  -514,
+    -514,    96,  -514,  -514,  -514,  -514,    -7,    29,    56,    61,
+    -514,    34,    95,  1112,    74,    74,    74,    74,  -514,  -514,
+    -514,    79,  -514,  -514,  -514,  -514,  -514,    45,  -514,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+    -514,  -514,   209,   211,     2,   538,  -514,    96,    77,  -514,
+    -514,  -118,  -514,  -514,  -514,  -514,  -514,  1252,  -514,   201,
+     102,   224,   206,   215,  -514,  -514,  -514,  -514,  -514,  1153,
+    1153,  1153,  1173,  -514,  -514,   112,   115,   598,  -514,  -514,
+    -118,  -111,    99,   643,  -514,  -514,  1153,  -514,   207,  1214,
+      14,   239,    79,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,   110,   190,  1153,
+    1153,  1153,  1153,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+    -514,  -514,  -514,  -514,  -514,  1153,  1153,  -514,  -514,  -514,
+    1153,  1153,  1153,  1153,  1153,  1153,  1153,  1153,  -514,    79,
+    -514,    48,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+     -94,  -514,  -514,  -514,   138,   171,   173,   187,   189,   195,
+     218,   220,   230,   258,   260,   232,   234,   267,   393,  -514,
+    1153,  1153,   129,   -99,  1153,  -514,   967,  -514,   140,   135,
+     691,  -514,  -514,    45,  -514,   691,   691,  -514,  -514,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,   691,  1112,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  1153,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  1153,   145,   146,  -514,
+     691,   158,   163,   164,   165,   167,   169,   170,   691,   691,
+     243,   172,  1112,  1153,  1153,   287,  -514,   174,   174,   174,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,
+     110,   190,   176,   177,   188,   191,   192,   914,  1173,   618,
+     289,   193,   194,   196,   197,  -514,  -514,   174,  -119,   -60,
+    -514,   181,  -118,  -514,    96,  -514,   175,   198,  1008,  -514,
+    -514,  -514,  -514,  -514,  -514,  -514,  -514,  -514,   274,  1173,
+    -514,  -514,  -514,  -514,   200,  -514,   203,   691,   691,   691,
+       0,  -514,    13,  -514,   204,   691,   202,  1153,  1153,  1153,
+    1153,  1153,   205,   212,  1153,  1153,   691,   691,   213,  -514,
+     -17,  -514,  -514,  -514,   214,   216,  1173,  1173,  1173,  1173,
+    1173,  -514,  -514,    15,   -32,  -514,   -69,  -514,  1173,  1173,
+    1173,  1173,  -514,  -514,  -514,  -514,  -514,  -514,  1059,   313,
+    -514,  -514,   327,   -31,   333,   334,   217,   222,   223,   691,
+     356,   691,  1153,  -514,   225,   691,   226,  -514,  -514,   227,
+     238,   691,   691,  -514,  -514,   228,  -514,  1153,   357,   376,
+    -514,   174,  1173,  1173,   204,   244,   248,   249,   254,  1173,
+    -514,  -514,  -514,   255,   256,   347,   257,  -514,  -514,  -514,
+     345,   263,  -514,   691,   691,  1153,   691,   691,   266,  -514,
+     266,  -514,   268,   691,   269,  1153,  1153,  1153,  -514,  -514,
+    1153,   691,  -514,  -514,  -514,   272,   273,   264,  1173,  1173,
+    1173,  1173,  -514,  1173,  1173,  1153,  1173,   410,  -514,   392,
+     280,   277,   268,   283,  -514,  -514,   366,  -514,  -514,  1153,
+     281,   691,  -514,  -514,  -514,   291,  -514,  1173,  1173,  -514,
+     295,   293,   297,   298,   296,   299,   300,   301,  -514,  -514,
+     419,    51,   405,  -514,  -514,   304,  -514,   302,   303,  1173,
+    -514,  1173,  1173,  -514,  -514,  -514,  -514,   691,  -514,   827,
+      85,   430,  -514,  -514,  -514,   309,   311,   312,  -514,   316,
+    -514,   827,   691,  -514,  -514,  -514,   436,   318,   385,   691,
+     442,   443,  -514,   691,   691,  -514,  -514
 };
 
 /* YYPGOTO[NTERM-NUM].  */
-static const short yypgoto[] =
+static const short int yypgoto[] =
 {
-    -529,  -529,  -529,   372,   374,   379,   381,   382,   188,   166,
-    -130,  -128,  -510,  -529,   439,   456,  -123,  -529,  -270,    88,
-    -529,  -285,  -529,   -49,  -529,   -37,  -529,   -68,   -36,  -529,
-    -110,   284,  -298,    60,  -529,  -529,  -529,  -529,  -529,  -529,
-    -529,   445,  -529,  -529,  -529,  -529,     3,  -529,    91,  -529,
-    -529,   441,  -529,  -529,  -529,  -529,  -529,   498,  -529,  -529,
-    -528,  -202,    40,  -119,  -529,   484,  -529,  -529,  -529,  -529,
-    -529,    81,    24,  -529,  -529,    59,  -529,  -529
+    -514,  -514,   368,   369,   370,   371,   185,   168,  -130,  -129,
+    -503,  -514,   429,   461,  -110,  -514,  -264,    88,  -514,  -281,
+    -514,   -50,  -514,   -37,  -514,   -41,    39,  -514,  -107,   282,
+    -289,    22,  -514,  -514,  -514,  -514,  -514,  -514,  -514,   437,
+    -514,  -514,  -514,  -514,     7,  -514,    90,  -514,  -514,   432,
+    -514,  -514,  -514,  -514,  -514,   493,  -514,  -514,  -513,  -195,
+      38,  -117,  -514,   478,  -514,  -514,  -514,  -514,  -514,    86,
+      30,  -514,  -514,    65,  -514,  -514
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -175
-static const short yytable[] =
+#define YYTABLE_NINF -168
+static const short int yytable[] =
 {
-      89,   242,   216,   243,   106,   362,    26,   228,   116,   245,
-     231,   382,   383,   325,   420,    39,    89,   120,   394,   396,
-     422,     4,    42,   440,   232,   351,    94,   556,   566,   221,
-     351,   351,    46,    47,    48,   221,   233,    29,   276,   222,
-     574,   403,   351,  -108,    26,   330,   441,   568,   293,   120,
-     414,    49,   124,   280,   294,   120,   421,   281,   282,   283,
-     284,   451,   421,   290,   288,   289,    39,   405,   451,   451,
-     124,   454,   198,   199,   200,   351,   453,   465,   107,   108,
-     451,   220,    51,   351,   351,   351,   452,   225,   404,   227,
-     122,    52,   227,   124,    58,    65,    66,    62,   118,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    20,    99,    21,   110,   111,   112,   274,   275,
-     227,   277,   191,   192,   234,   235,   236,   237,   238,   239,
-     240,   241,   291,   292,   278,   227,   298,   299,    81,   227,
-     227,   227,   227,   285,   286,   287,   227,   227,    43,   327,
-     328,    64,    95,   331,   351,   351,   351,    53,   488,   117,
-     -68,   -68,   351,   234,   235,   236,   237,   238,   239,   240,
-     241,   -67,   -67,   378,   351,   351,   -66,   -66,     7,     8,
-       9,    10,    54,    12,    55,   103,   333,    56,   234,   235,
-     236,   237,   238,   239,   240,   241,   356,    59,    20,    60,
-      21,   512,   100,   513,   -65,   -65,   300,   301,    89,    30,
-      31,    32,    33,    34,    35,    36,   101,   102,   351,   357,
-     351,   114,  -109,   115,   351,   123,   190,   194,   195,   196,
-     351,   351,   351,   217,   218,   223,   358,    82,   229,   -72,
-      83,   376,   -71,    84,   -70,    85,   119,   427,   -69,   429,
-     430,   431,   -75,    89,   377,   227,   436,   -76,   303,   304,
-     329,   337,   338,   359,   351,   351,   555,   351,   351,   331,
-     361,   364,   353,   354,   351,   365,   446,   447,   448,   449,
-     450,   366,   367,   351,   355,   368,   369,   370,   455,   456,
-     457,   458,   459,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   374,   375,   567,   379,   380,   386,   397,
-     387,   388,   389,   390,   351,   398,   412,   363,   399,   400,
-     401,   409,   402,   406,   440,   371,   372,   373,   415,   227,
-     428,   227,   227,   227,   489,   490,   407,   435,   227,   410,
-     416,   496,   423,   426,   432,   433,   434,   464,   466,   467,
-     472,   487,   351,   439,   444,   486,   445,   468,   469,   517,
-     518,   519,   470,   484,   476,   500,   478,   351,   479,   502,
-     480,   492,   333,   493,   351,   494,   495,   497,   351,   351,
-     498,   524,   525,   526,   527,   528,   227,   529,   530,   531,
-     534,   533,   499,   501,   504,   539,   417,   418,   419,   535,
-     538,   511,   485,   514,   425,   257,   258,   242,  -174,   243,
-     516,   522,   543,   544,   523,   536,   437,   438,   421,   545,
-     537,   542,   547,   540,   546,   548,   549,   242,   554,   243,
-     550,   227,   551,     5,   558,   562,   552,   563,   564,     6,
-     553,   227,   227,   227,   559,   560,   561,   227,   569,     7,
-       8,     9,    10,    11,    12,    13,   570,   571,   572,   573,
-     471,   576,   473,   532,   577,   578,   477,   580,   581,   180,
-      14,   181,   481,   482,   483,   385,   182,   227,   183,   184,
-      97,    57,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   384,   105,   462,   324,
-     461,    27,   113,    45,   475,   491,   505,   506,   520,   509,
-     510,     0,     0,     0,     0,   -78,   515,    20,     0,    21,
-       0,     0,     0,     0,     0,   521,     6,   -78,   -78,     0,
-       0,     0,     0,     0,     0,     0,   -78,   -78,   -78,   -78,
-     -78,   -78,   -78,     0,     0,   -78,    22,     0,     0,    65,
-      66,     0,     0,    23,     0,     0,   541,    24,     0,     0,
-       0,     0,     0,     0,     0,     0,    20,     0,    21,     0,
-     305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   306,   307,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   565,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   575,
-       0,     0,     0,     0,     0,     0,   579,     0,     0,     0,
-     582,   583,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     308,   309,    65,    66,     0,   118,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    20,
-       0,    21,     0,     0,     0,     0,     0,   310,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-       0,   311,   173,   174,   175,    81,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   316,     0,   317,
-      65,    66,   318,   118,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,    79,    80,    20,     0,    21,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   339,   340,    65,    66,   341,     0,     0,
-       0,     0,     0,    81,     0,     0,     0,     0,     0,     0,
-       0,     0,    20,     0,    21,     0,   342,   343,   344,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   345,   346,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    82,     0,     0,    83,     0,     0,
-      84,   347,    85,   219,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   308,   309,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    82,     0,     0,    83,     0,     0,    84,     0,
-      85,   395,     0,   310,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,     0,   311,   173,   174,
-     175,     0,   312,   313,   314,   339,   340,     0,     0,   341,
-       0,     0,     0,   348,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   342,   343,
-     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     345,   346,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   308,   309,
-      65,    66,     0,   118,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,    79,    80,    20,     0,    21,
-       0,     0,     0,     0,     0,   310,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,     0,   311,
-     173,   174,   175,    81,   312,   313,   314,     0,     0,     0,
-       0,     0,     0,    65,    66,   348,   118,    68,    69,    70,
+      89,   235,   236,   106,   353,   209,   116,   372,   373,   221,
+      26,    94,   224,   316,    39,   409,    89,   428,   539,   384,
+     386,    42,   238,   225,  -100,   342,   549,   393,   411,   214,
+     342,   342,   124,   124,   269,   226,   392,   551,   557,   215,
+     429,   214,   342,    59,   120,    60,   285,     4,    26,   273,
+     403,   321,   286,   274,   275,   276,   277,   410,    29,   280,
+     281,   227,   228,   229,   230,   231,   232,   233,   234,   282,
+     410,   439,   191,   192,   193,   342,   120,   110,   111,   112,
+    -167,   442,   120,   342,   342,    46,    47,    48,   394,   220,
+      39,   124,   220,    51,   122,   227,   228,   229,   230,   231,
+     232,   233,   234,    52,    49,     5,   107,   108,   439,   439,
+      58,     6,   267,   268,   220,   270,   441,   452,    20,    62,
+      21,     7,     8,     9,    10,    11,    12,    13,   271,   220,
+      64,    95,    99,   220,   220,   220,   220,   278,   279,   220,
+     220,    43,    14,    30,    31,    32,    33,    34,    35,    36,
+     474,   117,   342,   342,   342,   439,   213,   184,   185,    53,
+     342,   440,   218,   283,   284,   290,   291,   368,   100,   318,
+     319,   342,   342,   322,   -60,   -60,   -64,   -64,   103,   324,
+       7,     8,     9,    10,    54,    12,    55,  -101,   347,    56,
+     -59,   -59,   -63,   -63,   497,   101,   498,   538,   -58,   -58,
+     102,    89,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   348,   114,   342,   115,   342,   250,   251,   123,
+     342,   -62,   -62,   -57,   -57,   183,   342,   342,   187,   349,
+     188,   550,   366,   -61,   -61,   292,   293,   294,   295,   189,
+     416,   216,   418,   419,   420,    89,   367,   220,   424,   227,
+     228,   229,   230,   231,   232,   233,   234,   210,   342,   342,
+     211,   342,   342,   344,   345,   -67,   222,   -68,   342,   434,
+     435,   436,   437,   438,   296,   346,   342,   320,   329,   364,
+     328,   443,   444,   445,   446,   350,   352,   322,   252,   253,
+     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
+     264,   265,   355,   356,   357,   358,   342,   359,   354,   360,
+     361,   369,   365,   387,   370,   398,   362,   363,   376,   377,
+     220,   417,   220,   220,   220,   475,   476,   423,   220,   395,
+     378,   396,   482,   379,   380,   388,   389,   401,   390,   391,
+     404,   399,   342,   405,   412,   421,   415,   428,   502,   503,
+     504,   451,   422,   427,   453,   454,   432,   342,   433,   455,
+     459,   324,   456,   457,   342,   463,   465,   466,   342,   342,
+     470,   510,   511,   512,   513,   220,   514,   515,   467,   517,
+     473,   472,   523,   485,   478,   406,   407,   408,   479,   480,
+     471,   235,   236,   414,   481,   483,   484,   486,    65,    66,
+     527,   528,   487,   489,   425,   426,   496,   509,   499,   501,
+     235,   236,   507,   508,   518,    20,   519,    21,   220,   297,
+     520,   521,   545,   410,   546,   547,   522,   524,   220,   220,
+     220,   298,   299,   220,   526,   529,   530,   531,   532,   533,
+     537,   541,   534,   535,   536,   543,   544,   458,   516,   460,
+     542,   552,   553,   464,   554,   555,   556,   559,   560,   468,
+     469,   561,   220,   563,   564,   174,   175,   176,   177,   375,
+      97,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+     144,   145,   146,   300,   301,   374,    57,   449,   448,   105,
+     315,   490,   491,   113,   494,   495,    27,    45,   462,   477,
+     505,   500,     0,     0,     0,     0,     0,     0,     0,   506,
+     302,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+     162,   163,   164,     0,   303,   167,   168,   169,     0,   304,
+     305,   306,     0,     0,     0,     0,     0,   307,     0,   525,
+     308,     0,   309,    65,    66,   310,   118,    68,    69,    70,
       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
       20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   224,     0,     0,     0,     0,
-       0,     0,     0,     0,    65,    66,    81,   118,    68,    69,
+       0,     0,     0,     0,     0,   548,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,     0,     0,     0,
+     558,     0,     0,     0,     0,     0,     0,   562,     0,     0,
+       0,   565,   566,    65,    66,     0,   118,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      20,     0,    21,    65,    66,     0,   118,   194,   195,   196,
+     197,   198,   199,   200,   201,   202,   203,   204,    79,    80,
+      20,     0,    21,     0,     0,     0,    81,     0,    65,    66,
+       0,   118,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    20,    81,    21,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
+     217,     0,    83,     0,     0,    84,     0,    85,   119,     0,
+       0,    81,     0,     0,   330,   331,    65,    66,   332,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    20,     0,    21,     0,   333,   334,   335,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   336,
+     337,     0,     0,     0,     0,     0,     0,     0,     0,    82,
+       0,     0,    83,     0,     0,    84,     0,    85,   212,     0,
+       0,     0,   338,     0,     0,     0,     0,     0,     0,    82,
+       0,     0,    83,     0,     0,    84,     0,    85,   385,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   300,   301,     0,    82,     0,     0,    83,     0,     0,
+      84,     0,    85,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   302,   153,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,     0,   303,   167,   168,   169,     0,   304,   305,   306,
+     330,   331,     0,     0,   332,     0,     0,   -70,   339,    20,
+       0,    21,     0,     0,     0,     0,     0,     0,     6,   -70,
+     -70,     0,     0,   333,   334,   335,     0,     0,   -70,   -70,
+     -70,   -70,   -70,   -70,   -70,   336,   337,   -70,    22,     0,
+       0,     0,     0,     0,     0,    23,     0,     0,     0,    24,
+       0,     0,     0,     0,     0,     0,     0,     0,   338,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   300,   301,    65,
+      66,     0,   118,   194,   195,   196,   197,   198,   199,   200,
+     201,   202,   203,   204,    79,    80,    20,     0,    21,     0,
+       0,     0,     0,     0,   302,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,     0,   303,   167,
+     168,   169,    81,   304,   305,   306,     0,     0,     0,     0,
+       0,     0,    65,    66,   339,   118,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    20,
+       0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   323,     0,     0,     0,     0,     0,
+       0,     0,     0,    65,    66,    81,   118,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   400,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    82,    81,     0,    83,     0,
+     381,    84,     0,    85,    65,    66,     0,   118,    68,    69,
       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
       80,    20,     0,    21,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   332,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
-       0,     0,    82,     0,     0,    83,     0,   391,    84,     0,
-      85,    65,    66,     0,   118,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    20,     0,
-      21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    81,    82,     0,     0,    83,     0,
-       0,    84,     0,    85,     0,    65,    66,     0,   118,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    20,     0,    21,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    82,   460,     0,    83,
-       0,     0,    84,     0,    85,     0,    65,    66,    81,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    20,     0,    21,    65,    66,     0,   118,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    20,     0,    21,     0,     0,     0,    81,
+       0,     0,     0,     0,     0,     0,   447,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    81,    82,     0,
+       0,    83,     0,     0,    84,     0,    85,    65,    66,     0,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    20,     0,    21,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
+       0,     0,    83,     0,     0,    84,     0,    85,    65,    66,
+      81,   118,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    20,     0,    21,    65,    66,
+       0,   118,   194,   195,   196,   197,   198,   199,   200,   201,
+     202,   203,   204,    79,    80,    20,     0,    21,     0,     0,
+      82,    81,     0,    83,     0,     0,    84,     0,    85,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
+      66,    81,   223,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    20,     0,    21,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    82,     0,     0,    83,     0,     0,    84,
-       0,    85,     0,     0,     0,     0,     0,     0,     0,    81,
-       0,    65,    66,     0,   118,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,    79,    80,    20,     0,
-      21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    82,     0,     0,
-      83,     0,     0,    84,    81,    85,    65,    66,     0,   230,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    20,     0,    21,     0,     0,     0,     0,
-       0,   125,     0,     0,     0,     0,     0,     0,    82,     0,
-       0,    83,     0,     0,    84,   126,    85,     0,     0,    81,
-       0,     0,     0,     0,     0,   127,   128,     0,    82,     0,
-       0,    83,     0,     0,    84,     0,    85,     0,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    82,     0,     0,    83,     0,     0,    84,
-       0,    85,     0,     0,   155,   156,   157,     0,     0,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,     0,     0,     0,     0,     0,     0,     0,    82,     0,
-       0,    83,     0,     0,    84,     0,    85
+       0,    85,    81,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   125,     0,     0,
+       0,     0,     0,     0,    82,     0,     0,    83,     0,     0,
+      84,   126,    85,     0,     0,     0,     0,     0,     0,     0,
+       0,   127,   128,     0,    82,     0,     0,    83,     0,     0,
+      84,     0,    85,     0,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    82,     0,     0,    83,     0,
+       0,    84,     0,    85,   149,   150,   151,     0,     0,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173
 };
 
-static const short yycheck[] =
+static const short int yycheck[] =
 {
-      37,   131,   112,   131,    53,   275,     3,   126,     4,   132,
-     129,   296,   297,   215,    15,    23,    53,    85,   316,   317,
-      15,     0,    30,    34,     9,   227,    29,   537,   556,   146,
-     232,   233,    52,    53,    54,   146,    21,    61,   157,   156,
-     568,   326,   244,   148,    41,   156,    57,   557,   146,   117,
-     348,    71,   157,   172,   152,   123,    57,   176,   177,   178,
-     179,   146,    57,   186,   183,   184,    23,   154,   146,   146,
-     157,   156,   109,   110,   111,   277,   154,   154,    32,    33,
-     146,   117,   145,   285,   286,   287,   152,   123,   152,   126,
-      87,    61,   129,   157,   145,     5,     6,    24,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,   145,    24,    55,    56,    57,   155,   156,
-     157,   158,    55,    56,    10,    11,    12,    13,    14,    15,
-      16,    17,   121,   122,   171,   172,    27,    28,    48,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   156,   217,
-     218,     4,   155,   221,   356,   357,   358,    20,   443,   155,
-       3,     4,   364,    10,    11,    12,    13,    14,    15,    16,
-      17,     3,     4,   292,   376,   377,     3,     4,    41,    42,
-      43,    44,    45,    46,    47,   150,   223,    50,    10,    11,
-      12,    13,    14,    15,    16,    17,   245,    45,    22,    47,
-      24,   471,   145,   473,     3,     4,     3,     4,   245,    64,
-      65,    66,    67,    68,    69,    70,   145,   145,   420,   256,
-     422,     4,   148,     4,   426,   148,    24,     4,    24,    24,
-     432,   433,   434,   151,   151,   148,   273,   147,    59,     4,
-     150,   290,     4,   153,     4,   155,   156,   366,     4,   368,
-     369,   370,     7,   290,   291,   292,   375,     7,     4,     7,
-     154,   146,   149,   146,   466,   467,   152,   469,   470,   337,
-     146,   150,   232,   233,   476,   146,   386,   387,   388,   389,
-     390,   146,   146,   485,   244,   146,   146,   146,   398,   399,
-     400,   401,   402,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,    36,   146,   152,    24,   146,   148,    24,
-     148,   148,   148,   148,   516,   148,    63,   277,   148,   148,
-     148,   146,   148,   154,    34,   285,   286,   287,   146,   366,
-     367,   368,   369,   370,   444,   445,   333,   374,   375,   149,
-     146,   451,   146,   150,   146,   146,   146,    24,    21,    21,
-       4,     4,   554,   146,   148,    24,   148,   148,   146,   478,
-     479,   480,   146,   148,   146,    36,   146,   569,   146,    57,
-     146,   146,   409,   146,   576,   146,   146,   146,   580,   581,
-     146,   149,   492,   493,   494,   495,   423,   497,   498,   499,
-       4,   501,   146,   146,   146,   514,   356,   357,   358,    24,
-     149,   146,   439,   146,   364,    27,    28,   537,     0,   537,
-     146,   146,   522,   523,   146,   146,   376,   377,    57,   146,
-     150,   149,   146,   152,   149,   146,   149,   557,    21,   557,
-     149,   468,   149,    25,    36,   545,   149,   547,   548,    31,
-     149,   478,   479,   480,   152,   149,   149,   484,    21,    41,
-      42,    43,    44,    45,    46,    47,   149,   149,   149,   146,
-     420,    21,   422,   500,   146,    76,   426,    21,    21,    97,
-      62,    97,   432,   433,   434,   309,    97,   514,    97,    97,
-      41,    25,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   308,    52,   410,   215,
-     409,     3,    61,    19,   423,   446,   466,   467,   484,   469,
-     470,    -1,    -1,    -1,    -1,    20,   476,    22,    -1,    24,
-      -1,    -1,    -1,    -1,    -1,   485,    31,    32,    33,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
-      45,    46,    47,    -1,    -1,    50,    51,    -1,    -1,     5,
-       6,    -1,    -1,    58,    -1,    -1,   516,    62,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    22,    -1,    24,    -1,
-      26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   554,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   569,
-      -1,    -1,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
-     580,   581,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,     5,     6,    -1,     8,     9,    10,    11,    12,
+      37,   131,   131,    53,   268,   112,     4,   288,   289,   126,
+       3,    29,   129,   208,    23,    15,    53,    34,   521,   308,
+     309,    30,   132,     9,   142,   220,   539,   146,    15,   140,
+     225,   226,   151,   151,   151,    21,   317,   540,   551,   150,
+      57,   140,   237,    45,    85,    47,   140,     0,    41,   166,
+     339,   150,   146,   170,   171,   172,   173,    57,    61,   176,
+     177,    10,    11,    12,    13,    14,    15,    16,    17,   179,
+      57,   140,   109,   110,   111,   270,   117,    55,    56,    57,
+       0,   150,   123,   278,   279,    52,    53,    54,   148,   126,
+      23,   151,   129,   139,    87,    10,    11,    12,    13,    14,
+      15,    16,    17,    61,    71,    25,    32,    33,   140,   140,
+     139,    31,   149,   150,   151,   152,   148,   148,    22,    24,
+      24,    41,    42,    43,    44,    45,    46,    47,   165,   166,
+       4,   149,   139,   170,   171,   172,   173,   174,   175,   176,
+     177,   150,    62,    64,    65,    66,    67,    68,    69,    70,
+     431,   149,   347,   348,   349,   140,   117,    55,    56,    20,
+     355,   146,   123,   115,   116,    27,    28,   284,   139,   210,
+     211,   366,   367,   214,     3,     4,     3,     4,   144,   216,
+      41,    42,    43,    44,    45,    46,    47,   142,   238,    50,
+       3,     4,     3,     4,   458,   139,   460,   146,     3,     4,
+     139,   238,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   249,     4,   409,     4,   411,    27,    28,   142,
+     415,     3,     4,     3,     4,    24,   421,   422,     4,   266,
+      24,   146,   282,     3,     4,     3,     4,     3,     4,    24,
+     357,   142,   359,   360,   361,   282,   283,   284,   365,    10,
+      11,    12,    13,    14,    15,    16,    17,   145,   453,   454,
+     145,   456,   457,   225,   226,     7,    59,     7,   463,   376,
+     377,   378,   379,   380,     7,   237,   471,   148,   143,    36,
+     140,   388,   389,   390,   391,   140,   140,   328,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   144,   140,   140,   140,   501,   140,   270,   140,
+     140,    24,   140,    24,   140,   140,   278,   279,   142,   142,
+     357,   358,   359,   360,   361,   432,   433,   364,   365,   148,
+     142,   324,   439,   142,   142,   142,   142,    63,   142,   142,
+     140,   143,   537,   140,   140,   140,   144,    34,   465,   466,
+     467,    24,   140,   140,    21,    21,   142,   552,   142,   142,
+       4,   398,   140,   140,   559,   140,   140,   140,   563,   564,
+     142,   478,   479,   480,   481,   412,   483,   484,   140,   486,
+       4,    24,   499,    36,   140,   347,   348,   349,   140,   140,
+     427,   521,   521,   355,   140,   140,   140,   140,     5,     6,
+     507,   508,    57,   140,   366,   367,   140,   143,   140,   140,
+     540,   540,   140,   140,     4,    22,    24,    24,   455,    26,
+     140,   144,   529,    57,   531,   532,   143,   146,   465,   466,
+     467,    38,    39,   470,   143,   140,   143,   140,   140,   143,
+      21,    36,   143,   143,   143,   143,   143,   409,   485,   411,
+     146,    21,   143,   415,   143,   143,   140,    21,   140,   421,
+     422,    76,   499,    21,    21,    97,    97,    97,    97,   301,
+      41,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+      87,    88,    89,    90,    91,   300,    25,   399,   398,    52,
+     208,   453,   454,    61,   456,   457,     3,    19,   412,   434,
+     470,   463,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,
+     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,    -1,   131,   132,   133,   134,    -1,   136,
+     137,   138,    -1,    -1,    -1,    -1,    -1,   144,    -1,   501,
+     147,    -1,   149,     5,     6,   152,     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,   537,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,
+     552,    -1,    -1,    -1,    -1,    -1,    -1,   559,    -1,    -1,
+      -1,   563,   564,     5,     6,    -1,     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,    -1,    -1,    -1,    48,    -1,     5,     6,
+      -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    20,    21,    22,    48,    24,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,
+      37,    -1,   144,    -1,    -1,   147,    -1,   149,   150,    -1,
+      -1,    48,    -1,    -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,    -1,    -1,    -1,    -1,    38,
+      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,
+      -1,    -1,   144,    -1,    -1,   147,    -1,   149,   150,    -1,
+      -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,   141,
+      -1,    -1,   144,    -1,    -1,   147,    -1,   149,   150,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+      89,    90,    91,    -1,   141,    -1,    -1,   144,    -1,    -1,
+     147,    -1,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,    -1,   131,   132,   133,   134,    -1,   136,   137,   138,
+       3,     4,    -1,    -1,     7,    -1,    -1,    20,   147,    22,
+      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
+      33,    -1,    -1,    26,    27,    28,    -1,    -1,    41,    42,
+      43,    44,    45,    46,    47,    38,    39,    50,    51,    -1,
+      -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    62,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,     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,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,    -1,   131,   132,
+     133,   134,    48,   136,   137,   138,    -1,    -1,    -1,    -1,
+      -1,    -1,     5,     6,   147,     8,     9,    10,    11,    12,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      -1,    24,    -1,    -1,    -1,    -1,    -1,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-      -1,   137,   138,   139,   140,    48,   142,   143,   144,    -1,
-      -1,    -1,    -1,    -1,   150,    -1,    -1,   153,    -1,   155,
-       5,     6,   158,     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,    -1,     3,     4,     5,     6,     7,    -1,    -1,
-      -1,    -1,    -1,    48,    -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,   147,    -1,    -1,   150,    -1,    -1,
-     153,    61,   155,   156,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   147,    -1,    -1,   150,    -1,    -1,   153,    -1,
-     155,   156,    -1,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,    -1,   137,   138,   139,
-     140,    -1,   142,   143,   144,     3,     4,    -1,    -1,     7,
-      -1,    -1,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,    61,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-       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,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,    -1,   137,
-     138,   139,   140,    48,   142,   143,   144,    -1,    -1,    -1,
-      -1,    -1,    -1,     5,     6,   153,     8,     9,    10,    11,
+      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     5,     6,    48,     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,    -1,     5,     6,    48,     8,     9,    10,
+      -1,    -1,    -1,    -1,    -1,   141,    48,    -1,   144,    -1,
+     146,   147,    -1,   149,     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,    -1,    -1,    -1,    37,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,
-      -1,    -1,   147,    -1,    -1,   150,    -1,   152,   153,    -1,
-     155,     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,
-      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    48,   147,    -1,    -1,   150,    -1,
-      -1,   153,    -1,   155,    -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,    -1,    -1,    -1,   147,    37,    -1,   150,
-      -1,    -1,   153,    -1,   155,    -1,     5,     6,    48,     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,    -1,    -1,    -1,    48,
-      -1,    -1,    -1,   147,    -1,    -1,   150,    -1,    -1,   153,
-      -1,   155,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
-      -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,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   147,    -1,    -1,
-     150,    -1,    -1,   153,    48,   155,     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,    35,    -1,    -1,    -1,    -1,    -1,    -1,   147,    -1,
-      -1,   150,    -1,    -1,   153,    49,   155,    -1,    -1,    48,
-      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,   147,    -1,
-      -1,   150,    -1,    -1,   153,    -1,   155,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,    -1,    -1,   150,    -1,    -1,   153,
-      -1,   155,    -1,    -1,   118,   119,   120,    -1,    -1,   123,
-     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   147,    -1,
-      -1,   150,    -1,    -1,   153,    -1,   155
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,   141,    -1,
+      -1,   144,    -1,    -1,   147,    -1,   149,     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,    -1,    -1,    -1,   141,
+      -1,    -1,   144,    -1,    -1,   147,    -1,   149,     5,     6,
+      48,     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,    -1,    -1,
+     141,    48,    -1,   144,    -1,    -1,   147,    -1,   149,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
+       6,    48,     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,    -1,    -1,   141,    -1,    -1,   144,    -1,    -1,   147,
+      -1,   149,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    -1,    -1,    -1,   141,    -1,    -1,   144,    -1,    -1,
+     147,    49,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    59,    60,    -1,   141,    -1,    -1,   144,    -1,    -1,
+     147,    -1,   149,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   141,    -1,    -1,   144,    -1,
+      -1,   147,    -1,   149,   112,   113,   114,    -1,    -1,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const unsigned char yystos[] =
 {
-       0,   193,   194,   195,     0,    25,    31,    41,    42,    43,
-      44,    45,    46,    47,    62,   174,   212,   214,   216,   223,
-      22,    24,    51,    58,    62,   173,   205,   216,   217,    61,
-      64,    65,    66,    67,    68,    69,    70,   175,   210,    23,
-     224,   225,    30,   156,   213,   224,    52,    53,    54,    71,
-     202,   145,    61,    20,    45,    47,    50,   174,   145,    45,
-      47,   215,    24,   200,     4,     5,     6,     8,     9,    10,
+       0,   185,   186,   187,     0,    25,    31,    41,    42,    43,
+      44,    45,    46,    47,    62,   166,   204,   206,   208,   215,
+      22,    24,    51,    58,    62,   165,   197,   208,   209,    61,
+      64,    65,    66,    67,    68,    69,    70,   167,   202,    23,
+     216,   217,    30,   150,   205,   216,    52,    53,    54,    71,
+     194,   139,    61,    20,    45,    47,    50,   166,   139,    45,
+      47,   207,    24,   192,     4,     5,     6,     8,     9,    10,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    48,   147,   150,   153,   155,   160,   182,   183,   184,
-     185,   186,   205,   220,    29,   155,   211,   173,   228,   145,
-     145,   145,   145,   150,   203,   200,   182,    32,    33,   192,
-     192,   192,   192,   210,     4,     4,     4,   155,     8,   156,
-     186,   187,   205,   148,   157,    35,    49,    59,    60,    72,
+      21,    48,   141,   144,   147,   149,   154,   174,   175,   176,
+     177,   178,   197,   212,    29,   149,   203,   165,   220,   139,
+     139,   139,   139,   144,   195,   192,   174,    32,    33,   184,
+     184,   184,   184,   202,     4,     4,     4,   149,     8,   150,
+     178,   179,   197,   142,   151,    35,    49,    59,    60,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,   118,   119,   120,   123,   124,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,   112,
+     113,   114,   117,   118,   119,   120,   121,   122,   123,   124,
      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     162,   163,   164,   165,   166,   226,   232,   233,   235,   236,
-      24,    55,    56,   201,     4,    24,    24,   204,   184,   184,
-     184,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,   169,   170,   172,   184,   189,   151,   151,   156,
-     187,   146,   156,   148,    37,   187,   188,   184,   222,    59,
-       8,   222,     9,    21,    10,    11,    12,    13,    14,    15,
-      16,    17,   169,   170,   171,   175,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   167,    27,    28,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   168,   184,   184,   222,   184,   184,   229,
-     222,   222,   222,   222,   222,   184,   184,   184,   222,   222,
-     175,   121,   122,   146,   152,   198,   199,   197,    27,    28,
-       3,     4,   161,     4,     7,    26,    38,    39,    96,    97,
-     123,   137,   142,   143,   144,   150,   153,   155,   158,   162,
-     163,   164,   165,   166,   190,   220,   196,   186,   186,   154,
-     156,   186,    37,   184,   207,   208,   209,   146,   149,     3,
-       4,     7,    26,    27,    28,    38,    39,    61,   153,   190,
-     219,   220,   221,   221,   221,   221,   182,   184,   184,   146,
-     177,   146,   177,   221,   150,   146,   146,   146,   146,   146,
-     146,   221,   221,   221,    36,   146,   182,   184,   222,    24,
-     146,   180,   180,   180,   167,   168,   148,   148,   148,   148,
-     148,   152,   189,   191,   191,   156,   191,    24,   148,   148,
-     148,   148,   148,   180,   152,   154,   154,   205,   206,   146,
-     149,    37,    63,   218,   191,   146,   146,   221,   221,   221,
-      15,    57,    15,   146,   234,   221,   150,   222,   184,   222,
-     222,   222,   146,   146,   146,   184,   222,   221,   221,   146,
-      34,    57,   178,   181,   148,   148,   189,   189,   189,   189,
-     189,   146,   152,   154,   156,   189,   189,   189,   189,   189,
-      37,   207,   178,   179,    24,   154,    21,    21,   148,   146,
-     146,   221,     4,   221,   222,   230,   146,   221,   146,   146,
-     146,   221,   221,   221,   148,   184,    24,     4,   180,   189,
-     189,   234,   146,   146,   146,   146,   189,   146,   146,   146,
-      36,   146,    57,   176,   146,   221,   221,   230,   231,   221,
-     221,   146,   177,   177,   146,   221,   146,   222,   222,   222,
-     231,   221,   146,   146,   149,   189,   189,   189,   189,   189,
-     189,   189,   184,   189,     4,    24,   146,   150,   149,   222,
-     152,   221,   149,   189,   189,   146,   149,   146,   146,   149,
-     149,   149,   149,   149,    21,   152,   171,   227,    36,   152,
-     149,   149,   189,   189,   189,   221,   219,   152,   171,    21,
-     149,   149,   149,   146,   219,   221,    21,   146,    76,   221,
-      21,    21,   221,   221
+     135,   136,   137,   138,   155,   156,   157,   158,   218,   224,
+     225,   227,   228,    24,    55,    56,   193,     4,    24,    24,
+     196,   176,   176,   176,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,   161,   162,   164,   176,   181,
+     145,   145,   150,   179,   140,   150,   142,    37,   179,   180,
+     176,   214,    59,     8,   214,     9,    21,    10,    11,    12,
+      13,    14,    15,    16,    17,   161,   162,   163,   167,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   159,
+      27,    28,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   160,   176,   176,   214,
+     176,   176,   221,   214,   214,   214,   214,   214,   176,   176,
+     214,   214,   167,   115,   116,   140,   146,   190,   191,   189,
+      27,    28,     3,     4,     3,     4,     7,    26,    38,    39,
+      90,    91,   117,   131,   136,   137,   138,   144,   147,   149,
+     152,   155,   156,   157,   158,   182,   212,   188,   178,   178,
+     148,   150,   178,    37,   176,   199,   200,   201,   140,   143,
+       3,     4,     7,    26,    27,    28,    38,    39,    61,   147,
+     182,   211,   212,   213,   213,   213,   213,   174,   176,   176,
+     140,   169,   140,   169,   213,   144,   140,   140,   140,   140,
+     140,   140,   213,   213,    36,   140,   174,   176,   214,    24,
+     140,   172,   172,   172,   159,   160,   142,   142,   142,   142,
+     142,   146,   181,   183,   183,   150,   183,    24,   142,   142,
+     142,   142,   172,   146,   148,   148,   197,   198,   140,   143,
+      37,    63,   210,   183,   140,   140,   213,   213,   213,    15,
+      57,    15,   140,   226,   213,   144,   214,   176,   214,   214,
+     214,   140,   140,   176,   214,   213,   213,   140,    34,    57,
+     170,   173,   142,   142,   181,   181,   181,   181,   181,   140,
+     146,   148,   150,   181,   181,   181,   181,    37,   199,   170,
+     171,    24,   148,    21,    21,   142,   140,   140,   213,     4,
+     213,   214,   222,   140,   213,   140,   140,   140,   213,   213,
+     142,   176,    24,     4,   172,   181,   181,   226,   140,   140,
+     140,   140,   181,   140,   140,    36,   140,    57,   168,   140,
+     213,   213,   222,   223,   213,   213,   140,   169,   169,   140,
+     213,   140,   214,   214,   214,   223,   213,   140,   140,   143,
+     181,   181,   181,   181,   181,   181,   176,   181,     4,    24,
+     140,   144,   143,   214,   146,   213,   143,   181,   181,   140,
+     143,   140,   140,   143,   143,   143,   143,    21,   146,   163,
+     219,    36,   146,   143,   143,   181,   181,   181,   213,   211,
+     146,   163,    21,   143,   143,   143,   140,   211,   213,    21,
+     140,    76,   213,    21,    21,   213,   213
 };
 
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
 #define yyerrok		(yyerrstatus = 0)
 #define yyclearin	(yychar = YYEMPTY)
 #define YYEMPTY		(-2)
@@ -2324,26 +2324,59 @@
       goto yybackup;						\
     }								\
   else								\
-    { 								\
-      yyerror ("syntax error: cannot back up");\
+    {								\
+      yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;							\
     }								\
 while (0)
 
+
 #define YYTERROR	1
 #define YYERRCODE	256
 
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
 
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)		\
-   ((Current).first_line   = (Rhs)[1].first_line,	\
-    (Current).first_column = (Rhs)[1].first_column,	\
-    (Current).last_line    = (Rhs)[N].last_line,	\
-    (Current).last_column  = (Rhs)[N].last_column)
+# define YYLLOC_DEFAULT(Current, Rhs, N)				\
+    do									\
+      if (N)								\
+	{								\
+	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
+	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
+	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
+	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
+	}								\
+      else								\
+	{								\
+	  (Current).first_line   = (Current).last_line   =		\
+	    YYRHSLOC (Rhs, 0).last_line;				\
+	  (Current).first_column = (Current).last_column =		\
+	    YYRHSLOC (Rhs, 0).last_column;				\
+	}								\
+    while (0)
 #endif
 
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)			\
+     fprintf (File, "%d.%d-%d.%d",			\
+              (Loc).first_line, (Loc).first_column,	\
+              (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 #ifdef YYLEX_PARAM
@@ -2366,19 +2399,13 @@
     YYFPRINTF Args;				\
 } while (0)
 
-# define YYDSYMPRINT(Args)			\
-do {						\
-  if (yydebug)					\
-    yysymprint Args;				\
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location)		\
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
 do {								\
   if (yydebug)							\
     {								\
       YYFPRINTF (stderr, "%s ", Title);				\
-      yysymprint (stderr, 					\
-                  Token, Value);	\
+      yysymprint (stderr,					\
+                  Type, Value);	\
       YYFPRINTF (stderr, "\n");					\
     }								\
 } while (0)
@@ -2390,12 +2417,12 @@
 
 #if defined (__STDC__) || defined (__cplusplus)
 static void
-yy_stack_print (short *bottom, short *top)
+yy_stack_print (short int *bottom, short int *top)
 #else
 static void
 yy_stack_print (bottom, top)
-    short *bottom;
-    short *top;
+    short int *bottom;
+    short int *top;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
@@ -2425,13 +2452,13 @@
 #endif
 {
   int yyi;
-  unsigned int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
              yyrule - 1, yylno);
   /* Print the symbols being reduced, and their result.  */
   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
 }
 
 # define YY_REDUCE_PRINT(Rule)		\
@@ -2445,8 +2472,7 @@
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
@@ -2461,13 +2487,9 @@
    if the built-in stack extension method is used).
 
    Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    evaluated with infinite-precision integer arithmetic.  */
 
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
@@ -2489,7 +2511,7 @@
      const char *yystr;
 #   endif
 {
-  register const char *yys = yystr;
+  const char *yys = yystr;
 
   while (*yys++ != '\0')
     continue;
@@ -2514,8 +2536,8 @@
      const char *yysrc;
 #   endif
 {
-  register char *yyd = yydest;
-  register const char *yys = yysrc;
+  char *yyd = yydest;
+  const char *yys = yysrc;
 
   while ((*yyd++ = *yys++) != '\0')
     continue;
@@ -2525,7 +2547,55 @@
 #  endif
 # endif
 
-#endif /* !YYERROR_VERBOSE */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      size_t yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+#endif /* YYERROR_VERBOSE */
 
 
 
@@ -2549,15 +2619,15 @@
   (void) yyvaluep;
 
   if (yytype < YYNTOKENS)
-    {
-      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-    }
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
   else
     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
+
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
   switch (yytype)
     {
       default:
@@ -2573,10 +2643,11 @@
 
 #if defined (__STDC__) || defined (__cplusplus)
 static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 #else
 static void
-yydestruct (yytype, yyvaluep)
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
     int yytype;
     YYSTYPE *yyvaluep;
 #endif
@@ -2584,6 +2655,10 @@
   /* Pacify ``unused variable'' warnings.  */
   (void) yyvaluep;
 
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
   switch (yytype)
     {
 
@@ -2611,10 +2686,10 @@
 
 
 
-/* The lookahead symbol.  */
+/* The look-ahead symbol.  */
 int yychar;
 
-/* The semantic value of the lookahead symbol.  */
+/* The semantic value of the look-ahead symbol.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
@@ -2645,12 +2720,12 @@
 #endif
 {
   
-  register int yystate;
-  register int yyn;
+  int yystate;
+  int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
-  /* Lookahead token as an internal (translated) token number.  */
+  /* Look-ahead token as an internal (translated) token number.  */
   int yytoken = 0;
 
   /* Three stacks and their tools:
@@ -2662,14 +2737,14 @@
      to reallocate them elsewhere.  */
 
   /* The state stack.  */
-  short	yyssa[YYINITDEPTH];
-  short *yyss = yyssa;
-  register short *yyssp;
+  short int yyssa[YYINITDEPTH];
+  short int *yyss = yyssa;
+  short int *yyssp;
 
   /* The semantic value stack.  */
   YYSTYPE yyvsa[YYINITDEPTH];
   YYSTYPE *yyvs = yyvsa;
-  register YYSTYPE *yyvsp;
+  YYSTYPE *yyvsp;
 
 
 
@@ -2726,14 +2801,14 @@
 	   these so that the &'s don't force the real ones into
 	   memory.  */
 	YYSTYPE *yyvs1 = yyvs;
-	short *yyss1 = yyss;
+	short int *yyss1 = yyss;
 
 
 	/* Each stack pointer address is followed by the size of the
 	   data in use in that stack, in bytes.  This used to be a
 	   conditional around just the two extra args, but that might
 	   be undefined if yyoverflow is a macro.  */
-	yyoverflow ("parser stack overflow",
+	yyoverflow (YY_("memory exhausted"),
 		    &yyss1, yysize * sizeof (*yyssp),
 		    &yyvs1, yysize * sizeof (*yyvsp),
 
@@ -2744,21 +2819,21 @@
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
-      goto yyoverflowlab;
+      goto yyexhaustedlab;
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-	goto yyoverflowlab;
+	goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
 	yystacksize = YYMAXDEPTH;
 
       {
-	short *yyss1 = yyss;
+	short int *yyss1 = yyss;
 	union yyalloc *yyptr =
 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 	if (! yyptr)
-	  goto yyoverflowlab;
+	  goto yyexhaustedlab;
 	YYSTACK_RELOCATE (yyss);
 	YYSTACK_RELOCATE (yyvs);
 
@@ -2790,18 +2865,18 @@
 yybackup:
 
 /* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
+/* Read a look-ahead token if we need one and don't already have one.  */
 /* yyresume: */
 
-  /* First try to decide what to do without reference to lookahead token.  */
+  /* First try to decide what to do without reference to look-ahead token.  */
 
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a lookahead token if don't already have one.  */
+  /* Not known => get a look-ahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -2816,7 +2891,7 @@
   else
     {
       yytoken = YYTRANSLATE (yychar);
-      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
     }
 
   /* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -2836,8 +2911,8 @@
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
@@ -2887,712 +2962,702 @@
   switch (yyn)
     {
         case 3:
-#line 991 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 989 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX)     // Outside of my range!
+  if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
     GEN_ERROR("Value too large for type!");
-  yyval.SIntVal = (int32_t)yyvsp[0].UIntVal;
+  (yyval.SIntVal) = (int32_t)(yyvsp[0].UIntVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 5:
-#line 1000 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-  if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX)     // Outside of my range!
-    GEN_ERROR("Value too large for type!");
-  yyval.SInt64Val = (int64_t)yyvsp[0].UInt64Val;
-  CHECK_FOR_ERROR
-;}
+  case 31:
+#line 1005 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
+    break;
+
+  case 32:
+#line 1005 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
+    break;
+
+  case 33:
+#line 1006 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
+    break;
+
+  case 34:
+#line 1006 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
+    break;
+
+  case 35:
+#line 1007 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
+    break;
+
+  case 36:
+#line 1007 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
+    break;
+
+  case 37:
+#line 1008 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
+    break;
+
+  case 38:
+#line 1008 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 39:
-#line 1017 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_EQ; ;}
+#line 1009 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 40:
-#line 1017 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_NE; ;}
+#line 1009 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 41:
-#line 1018 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_SLT; ;}
+#line 1013 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 42:
-#line 1018 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_SGT; ;}
+#line 1013 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 43:
-#line 1019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_SLE; ;}
+#line 1014 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 44:
-#line 1019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_SGE; ;}
+#line 1014 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 45:
-#line 1020 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_ULT; ;}
+#line 1015 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 46:
-#line 1020 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_UGT; ;}
+#line 1015 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 47:
-#line 1021 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_ULE; ;}
+#line 1016 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 48:
-#line 1021 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.IPredicate = ICmpInst::ICMP_UGE; ;}
+#line 1016 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 49:
-#line 1025 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_OEQ; ;}
+#line 1017 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 50:
-#line 1025 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_ONE; ;}
+#line 1017 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 51:
-#line 1026 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_OLT; ;}
+#line 1018 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 52:
-#line 1026 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_OGT; ;}
+#line 1018 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 53:
-#line 1027 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_OLE; ;}
+#line 1019 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 54:
-#line 1027 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_OGE; ;}
+#line 1019 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 55:
-#line 1028 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_ORD; ;}
+#line 1020 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 56:
-#line 1028 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_UNO; ;}
+#line 1021 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
-  case 57:
-#line 1029 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_UEQ; ;}
+  case 69:
+#line 1032 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = (yyvsp[-1].StrVal);
+    CHECK_FOR_ERROR
+  ;}
     break;
 
-  case 58:
-#line 1029 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_UNE; ;}
+  case 70:
+#line 1036 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = 0;
+    CHECK_FOR_ERROR
+  ;}
     break;
 
-  case 59:
-#line 1030 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_ULT; ;}
+  case 71:
+#line 1041 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
-  case 60:
-#line 1030 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_UGT; ;}
+  case 72:
+#line 1042 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
-  case 61:
-#line 1031 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_ULE; ;}
+  case 73:
+#line 1043 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
-  case 62:
-#line 1031 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_UGE; ;}
+  case 74:
+#line 1044 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
-  case 63:
-#line 1032 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_TRUE; ;}
+  case 75:
+#line 1045 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
-  case 64:
-#line 1033 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.FPredicate = FCmpInst::FCMP_FALSE; ;}
+  case 76:
+#line 1046 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 77:
-#line 1044 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.StrVal = yyvsp[-1].StrVal;
-    CHECK_FOR_ERROR
-  ;}
+#line 1047 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 78:
-#line 1048 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.StrVal = 0;
-    CHECK_FOR_ERROR
-  ;}
+#line 1048 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 79:
-#line 1053 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::InternalLinkage; ;}
+#line 1050 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 80:
-#line 1054 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::LinkOnceLinkage; ;}
+#line 1051 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 81:
-#line 1055 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::WeakLinkage; ;}
+#line 1052 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::CSRet; ;}
     break;
 
   case 82:
-#line 1056 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::AppendingLinkage; ;}
+#line 1053 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 83:
-#line 1057 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::DLLImportLinkage; ;}
+#line 1054 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 84:
-#line 1058 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::DLLExportLinkage; ;}
+#line 1055 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
   case 85:
-#line 1059 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::ExternalWeakLinkage; ;}
+#line 1056 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
   case 86:
-#line 1060 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Linkage = GlobalValue::ExternalLinkage; ;}
-    break;
-
-  case 87:
-#line 1062 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::C; ;}
-    break;
-
-  case 88:
-#line 1063 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::C; ;}
-    break;
-
-  case 89:
-#line 1064 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::CSRet; ;}
-    break;
-
-  case 90:
-#line 1065 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::Fast; ;}
-    break;
-
-  case 91:
-#line 1066 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::Cold; ;}
-    break;
-
-  case 92:
-#line 1067 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::X86_StdCall; ;}
-    break;
-
-  case 93:
-#line 1068 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = CallingConv::X86_FastCall; ;}
-    break;
-
-  case 94:
-#line 1069 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1057 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-                   if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val)
+                   if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
                      GEN_ERROR("Calling conv too large!");
-                   yyval.UIntVal = yyvsp[0].UInt64Val;
+                   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
                   CHECK_FOR_ERROR
                  ;}
     break;
 
+  case 87:
+#line 1066 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 88:
+#line 1067 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
+    GEN_ERROR("Alignment must be a power of two!");
+  CHECK_FOR_ERROR
+;}
+    break;
+
+  case 89:
+#line 1073 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 90:
+#line 1074 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
+    GEN_ERROR("Alignment must be a power of two!");
+  CHECK_FOR_ERROR
+;}
+    break;
+
+  case 91:
+#line 1082 "/proj/llvm/llvm-3/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] == '\\')
+      GEN_ERROR("Invalid character in section name!");
+  (yyval.StrVal) = (yyvsp[0].StrVal);
+  CHECK_FOR_ERROR
+;}
+    break;
+
+  case 92:
+#line 1090 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = 0; ;}
+    break;
+
+  case 93:
+#line 1091 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
+    break;
+
+  case 94:
+#line 1096 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {;}
+    break;
+
   case 95:
-#line 1078 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = 0; ;}
+#line 1097 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {;}
     break;
 
   case 96:
-#line 1079 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1098 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  yyval.UIntVal = yyvsp[0].UInt64Val;
-  if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
-    GEN_ERROR("Alignment must be a power of two!");
-  CHECK_FOR_ERROR
-;}
+    CurGV->setSection((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
+    CHECK_FOR_ERROR
+  ;}
     break;
 
   case 97:
-#line 1085 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.UIntVal = 0; ;}
-    break;
-
-  case 98:
-#line 1086 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1103 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  yyval.UIntVal = yyvsp[0].UInt64Val;
-  if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
-    GEN_ERROR("Alignment must be a power of two!");
-  CHECK_FOR_ERROR
-;}
+    if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
+      GEN_ERROR("Alignment must be a power of two!");
+    CurGV->setAlignment((yyvsp[0].UInt64Val));
+    CHECK_FOR_ERROR
+  ;}
     break;
 
   case 99:
-#line 1094 "/home/vadve/alenhar2/llvm.old/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] == '\\')
-      GEN_ERROR("Invalid character in section name!");
-  yyval.StrVal = yyvsp[0].StrVal;
-  CHECK_FOR_ERROR
-;}
-    break;
-
-  case 100:
-#line 1102 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.StrVal = 0; ;}
+#line 1117 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;}
     break;
 
   case 101:
-#line 1103 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.StrVal = yyvsp[0].StrVal; ;}
+#line 1118 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType)); ;}
     break;
 
   case 102:
-#line 1108 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {;}
-    break;
-
-  case 103:
-#line 1109 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {;}
-    break;
-
-  case 104:
-#line 1110 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV->setSection(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 105:
-#line 1115 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (yyvsp[0].UInt64Val != 0 && !isPowerOf2_32(yyvsp[0].UInt64Val))
-      GEN_ERROR("Alignment must be a power of two!");
-    CurGV->setAlignment(yyvsp[0].UInt64Val);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 107:
-#line 1129 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;}
-    break;
-
-  case 109:
-#line 1130 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;}
-    break;
-
-  case 110:
-#line 1132 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1120 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
-    yyval.TypeVal = yyvsp[0].TypeVal;
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    (yyval.TypeVal) = (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 124:
-#line 1144 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 116:
+#line 1132 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.TypeVal = new PATypeHolder(OpaqueType::get());
+    (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 125:
-#line 1148 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 117:
+#line 1136 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType);
+    (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 126:
-#line 1152 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 118:
+#line 1140 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
-  const Type* tmp = getTypeVal(yyvsp[0].ValIDVal);
+  const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
   CHECK_FOR_ERROR
-  yyval.TypeVal = new PATypeHolder(tmp);
+  (yyval.TypeVal) = new PATypeHolder(tmp);
 ;}
     break;
 
-  case 127:
-#line 1160 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 119:
+#line 1148 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
-    if (yyvsp[0].UInt64Val > (uint64_t)~0U) GEN_ERROR("Value out of range!");
+    if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
-    UpRefs.push_back(UpRefRecord((unsigned)yyvsp[0].UInt64Val, OT));  // Add to vector...
-    yyval.TypeVal = new PATypeHolder(OT);
+    UpRefs.push_back(UpRefRecord((unsigned)(yyvsp[0].UInt64Val), OT));  // Add to vector...
+    (yyval.TypeVal) = new PATypeHolder(OT);
     UR_OUT("New Upreference!\n");
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 128:
-#line 1168 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 120:
+#line 1156 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {           // Function derived type?
     std::vector<const Type*> Params;
-    for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
-           E = yyvsp[-1].TypeList->end(); I != E; ++I)
+    for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
+           E = (yyvsp[-1].TypeList)->end(); I != E; ++I)
       Params.push_back(*I);
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(FunctionType::get(*yyvsp[-3].TypeVal,Params,isVarArg)));
-    delete yyvsp[-1].TypeList;      // Delete the argument list
-    delete yyvsp[-3].TypeVal;      // Delete the return type handle
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FunctionType::get(*(yyvsp[-3].TypeVal),Params,isVarArg)));
+    delete (yyvsp[-1].TypeList);      // Delete the argument list
+    delete (yyvsp[-3].TypeVal);      // Delete the return type handle
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 121:
+#line 1169 "/proj/llvm/llvm-3/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);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 122:
+#line 1174 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {          // Packed array type?
+     const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
+     if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
+        GEN_ERROR("Unsigned result not equal to signed result");
+     if (!ElemTy->isPrimitiveType())
+        GEN_ERROR("Elemental type of a PackedType must be primitive");
+     if (!isPowerOf2_32((yyvsp[-3].UInt64Val)))
+       GEN_ERROR("Vector length should be a power of 2!");
+     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PackedType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
+     delete (yyvsp[-1].TypeVal);
+     CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 123:
+#line 1186 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                        // Structure type?
+    std::vector<const Type*> Elements;
+    for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
+           E = (yyvsp[-1].TypeList)->end(); I != E; ++I)
+      Elements.push_back(*I);
+
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
+    delete (yyvsp[-1].TypeList);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 124:
+#line 1196 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                                  // Empty structure type?
+    (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 125:
+#line 1200 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    std::vector<const Type*> Elements;
+    for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
+           E = (yyvsp[-2].TypeList)->end(); I != E; ++I)
+      Elements.push_back(*I);
+
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true)));
+    delete (yyvsp[-2].TypeList);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 126:
+#line 1210 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                         // Empty structure type?
+    (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 127:
+#line 1214 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                             // Pointer type?
+    if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
+      GEN_ERROR("Cannot form a pointer to a basic block");
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PointerType::get(*(yyvsp[-1].TypeVal))));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 128:
+#line 1225 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeList) = new std::list<PATypeHolder>();
+    (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 129:
-#line 1181 "/home/vadve/alenhar2/llvm.old/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;
+#line 1230 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 130:
-#line 1186 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {          // Packed array type?
-     const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get();
-     if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val)
-        GEN_ERROR("Unsigned result not equal to signed result");
-     if (!ElemTy->isPrimitiveType())
-        GEN_ERROR("Elemental type of a PackedType must be primitive");
-     if (!isPowerOf2_32(yyvsp[-3].UInt64Val))
-       GEN_ERROR("Vector length should be a power of 2!");
-     yyval.TypeVal = new PATypeHolder(HandleUpRefs(PackedType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
-     delete yyvsp[-1].TypeVal;
-     CHECK_FOR_ERROR
-  ;}
-    break;
-
   case 131:
-#line 1198 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                        // Structure type?
-    std::vector<const Type*> Elements;
-    for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
-           E = yyvsp[-1].TypeList->end(); I != E; ++I)
-      Elements.push_back(*I);
-
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
-    delete yyvsp[-1].TypeList;
+#line 1237 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(Type::VoidTy);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 132:
-#line 1208 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                                  // Empty structure type?
-    yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>()));
+#line 1241 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.TypeList) = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 133:
-#line 1212 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1245 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    std::vector<const Type*> Elements;
-    for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-2].TypeList->begin(),
-           E = yyvsp[-2].TypeList->end(); I != E; ++I)
-      Elements.push_back(*I);
-
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true)));
-    delete yyvsp[-2].TypeList;
+    (yyval.TypeList) = new std::list<PATypeHolder>();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 134:
-#line 1222 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                         // Empty structure type?
-    yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
+#line 1256 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { // Nonempty unsized arr
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal)->get());
+    if (ATy == 0)
+      GEN_ERROR("Cannot make array constant with type: '" + 
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
+    const Type *ETy = ATy->getElementType();
+    int NumElements = ATy->getNumElements();
+
+    // Verify that we have the correct size...
+    if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size())
+      GEN_ERROR("Type mismatch: constant sized array initialized with " +
+                     utostr((yyvsp[-1].ConstVector)->size()) +  " arguments, but has size of " + 
+                     itostr(NumElements) + "!");
+
+    // Verify all elements are correct type!
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
+        GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
+                       ETy->getDescription() +"' as required!\nIt is of type '"+
+                       (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
+    }
+
+    (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 135:
-#line 1226 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                             // Pointer type?
-    if (*yyvsp[-1].TypeVal == Type::LabelTy)
-      GEN_ERROR("Cannot form a pointer to a basic block");
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal)));
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 136:
-#line 1237 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1282 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.TypeList = new std::list<PATypeHolder>();
-    yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 137:
-#line 1242 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 139:
-#line 1249 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 140:
-#line 1253 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.TypeList = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 141:
-#line 1257 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.TypeList = new std::list<PATypeHolder>();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 142:
-#line 1268 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { // Nonempty unsized arr
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get());
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
       GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
-    const Type *ETy = ATy->getElementType();
-    int NumElements = ATy->getNumElements();
-
-    // Verify that we have the correct size...
-    if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size())
-      GEN_ERROR("Type mismatch: constant sized array initialized with " +
-                     utostr(yyvsp[-1].ConstVector->size()) +  " arguments, but has size of " + 
-                     itostr(NumElements) + "!");
-
-    // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
-        GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
-                       ETy->getDescription() +"' as required!\nIt is of type '"+
-                       (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
-    }
-
-    yyval.ConstVal = ConstantArray::get(ATy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 143:
-#line 1294 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
-    if (ATy == 0)
-      GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     int NumElements = ATy->getNumElements();
     if (NumElements != -1 && NumElements != 0) 
       GEN_ERROR("Type mismatch: constant sized array initialized with 0"
                      " arguments, but has size of " + itostr(NumElements) +"!");
-    yyval.ConstVal = ConstantArray::get(ATy, std::vector<Constant*>());
-    delete yyvsp[-2].TypeVal;
+    (yyval.ConstVal) = ConstantArray::get(ATy, std::vector<Constant*>());
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 144:
-#line 1308 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 136:
+#line 1296 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
       GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     int NumElements = ATy->getNumElements();
     const Type *ETy = ATy->getElementType();
-    char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true);
-    if (NumElements != -1 && NumElements != (EndStr-yyvsp[0].StrVal))
+    char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
+    if (NumElements != -1 && NumElements != (EndStr-(yyvsp[0].StrVal)))
       GEN_ERROR("Can't build string constant of size " + 
-                     itostr((int)(EndStr-yyvsp[0].StrVal)) +
+                     itostr((int)(EndStr-(yyvsp[0].StrVal))) +
                      " when array has size " + itostr(NumElements) + "!");
     std::vector<Constant*> Vals;
     if (ETy == Type::SByteTy) {
-      for (signed char *C = (signed char *)yyvsp[0].StrVal; C != (signed char *)EndStr; ++C)
+      for (signed char *C = (signed char *)(yyvsp[0].StrVal); C != (signed char *)EndStr; ++C)
         Vals.push_back(ConstantInt::get(ETy, *C));
     } else if (ETy == Type::UByteTy) {
-      for (unsigned char *C = (unsigned char *)yyvsp[0].StrVal; 
+      for (unsigned char *C = (unsigned char *)(yyvsp[0].StrVal); 
            C != (unsigned char*)EndStr; ++C)
         Vals.push_back(ConstantInt::get(ETy, *C));
     } else {
-      free(yyvsp[0].StrVal);
+      free((yyvsp[0].StrVal));
       GEN_ERROR("Cannot build string arrays of non byte sized elements!");
     }
-    free(yyvsp[0].StrVal);
-    yyval.ConstVal = ConstantArray::get(ATy, Vals);
-    delete yyvsp[-2].TypeVal;
+    free((yyvsp[0].StrVal));
+    (yyval.ConstVal) = ConstantArray::get(ATy, Vals);
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 145:
-#line 1338 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 137:
+#line 1326 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
-    const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get());
+    const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal)->get());
     if (PTy == 0)
       GEN_ERROR("Cannot make packed constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
     const Type *ETy = PTy->getElementType();
     int NumElements = PTy->getNumElements();
 
     // Verify that we have the correct size...
-    if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size())
+    if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size())
       GEN_ERROR("Type mismatch: constant sized packed initialized with " +
-                     utostr(yyvsp[-1].ConstVector->size()) +  " arguments, but has size of " + 
+                     utostr((yyvsp[-1].ConstVector)->size()) +  " arguments, but has size of " + 
                      itostr(NumElements) + "!");
 
     // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
         GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
            ETy->getDescription() +"' as required!\nIt is of type '"+
-           (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
+           (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
     }
 
-    yyval.ConstVal = ConstantPacked::get(PTy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
+    (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 146:
-#line 1364 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 138:
+#line 1352 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get());
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
 
-    if (yyvsp[-1].ConstVector->size() != STy->getNumContainedTypes())
+    if ((yyvsp[-1].ConstVector)->size() != STy->getNumContainedTypes())
       GEN_ERROR("Illegal number of initializers for structure type!");
 
     // Check to ensure that constants are compatible with the type initializer!
-    for (unsigned i = 0, e = yyvsp[-1].ConstVector->size(); i != e; ++i)
-      if ((*yyvsp[-1].ConstVector)[i]->getType() != STy->getElementType(i))
+    for (unsigned i = 0, e = (yyvsp[-1].ConstVector)->size(); i != e; ++i)
+      if ((*(yyvsp[-1].ConstVector))[i]->getType() != STy->getElementType(i))
         GEN_ERROR("Expected type '" +
                        STy->getElementType(i)->getDescription() +
                        "' for element #" + utostr(i) +
                        " of structure initializer!");
 
-    yyval.ConstVal = ConstantStruct::get(STy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
+    (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 147:
-#line 1385 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 139:
+#line 1373 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get());
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     if (STy->getNumContainedTypes() != 0)
       GEN_ERROR("Illegal number of initializers for structure type!");
 
-    yyval.ConstVal = ConstantStruct::get(STy, std::vector<Constant*>());
-    delete yyvsp[-2].TypeVal;
+    (yyval.ConstVal) = ConstantStruct::get(STy, std::vector<Constant*>());
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 148:
-#line 1398 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 140:
+#line 1386 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
+    const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (PTy == 0)
       GEN_ERROR("Cannot make null pointer constant with type: '" + 
-                     (*yyvsp[-1].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-1].TypeVal))->getDescription() + "'!");
 
-    yyval.ConstVal = ConstantPointerNull::get(PTy);
-    delete yyvsp[-1].TypeVal;
+    (yyval.ConstVal) = ConstantPointerNull::get(PTy);
+    delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 149:
-#line 1408 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 141:
+#line 1396 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get());
-    delete yyvsp[-1].TypeVal;
+    (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get());
+    delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 150:
-#line 1413 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 142:
+#line 1401 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
+    const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (Ty == 0)
       GEN_ERROR("Global const reference must be a pointer type!");
 
@@ -3606,7 +3671,7 @@
     Function *SavedCurFn = CurFun.CurrentFunction;
     CurFun.CurrentFunction = 0;
 
-    Value *V = getValNonImprovising(Ty, yyvsp[0].ValIDVal);
+    Value *V = getValNonImprovising(Ty, (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
 
     CurFun.CurrentFunction = SavedCurFn;
@@ -3621,14 +3686,14 @@
 
       // First check to see if the forward references value is already created!
       PerModuleInfo::GlobalRefsType::iterator I =
-        CurModule.GlobalRefs.find(std::make_pair(PT, yyvsp[0].ValIDVal));
+        CurModule.GlobalRefs.find(std::make_pair(PT, (yyvsp[0].ValIDVal)));
     
       if (I != CurModule.GlobalRefs.end()) {
         V = I->second;             // Placeholder already exists, use it...
-        yyvsp[0].ValIDVal.destroy();
+        (yyvsp[0].ValIDVal).destroy();
       } else {
         std::string Name;
-        if (yyvsp[0].ValIDVal.Type == ValID::NameVal) Name = yyvsp[0].ValIDVal.Name;
+        if ((yyvsp[0].ValIDVal).Type == ValID::NameVal) Name = (yyvsp[0].ValIDVal).Name;
 
         // Create the forward referenced global.
         GlobalValue *GV;
@@ -3643,308 +3708,318 @@
         }
 
         // Keep track of the fact that we have a forward ref to recycle it
-        CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, yyvsp[0].ValIDVal), GV));
+        CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, (yyvsp[0].ValIDVal)), GV));
         V = GV;
       }
     }
 
-    yyval.ConstVal = cast<GlobalValue>(V);
-    delete yyvsp[-1].TypeVal;            // Free the type handle
+    (yyval.ConstVal) = cast<GlobalValue>(V);
+    delete (yyvsp[-1].TypeVal);            // Free the type handle
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 143:
+#line 1462 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType())
+      GEN_ERROR("Mismatched types for constant expression!");
+    (yyval.ConstVal) = (yyvsp[0].ConstVal);
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 144:
+#line 1469 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    const Type *Ty = (yyvsp[-1].TypeVal)->get();
+    if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
+      GEN_ERROR("Cannot create a null initialized value of this type!");
+    (yyval.ConstVal) = Constant::getNullValue(Ty);
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 145:
+#line 1477 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {      // integral constants
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 146:
+#line 1483 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {      // integral constants
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 147:
+#line 1489 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {            // integral constants
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 148:
+#line 1495 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 149:
+#line 1501 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                      // Boolean constants
+    (yyval.ConstVal) = ConstantBool::getTrue();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 150:
+#line 1505 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                     // Boolean constants
+    (yyval.ConstVal) = ConstantBool::getFalse();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 151:
-#line 1474 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType())
-      GEN_ERROR("Mismatched types for constant expression!");
-    yyval.ConstVal = yyvsp[0].ConstVal;
-    delete yyvsp[-1].TypeVal;
+#line 1509 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                   // Float & Double constants
+    if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
+      GEN_ERROR("Floating point constant invalid for type!!");
+    (yyval.ConstVal) = ConstantFP::get((yyvsp[-1].PrimType), (yyvsp[0].FPVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 152:
-#line 1481 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1517 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const Type *Ty = yyvsp[-1].TypeVal->get();
-    if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
-      GEN_ERROR("Cannot create a null initialized value of this type!");
-    yyval.ConstVal = Constant::getNullValue(Ty);
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 153:
-#line 1489 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {      // integral constants
-    if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val))
-      GEN_ERROR("Constant value doesn't fit in type!");
-    yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 154:
-#line 1495 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {            // integral constants
-    if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val))
-      GEN_ERROR("Constant value doesn't fit in type!");
-    yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 155:
-#line 1501 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                      // Boolean constants
-    yyval.ConstVal = ConstantBool::getTrue();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 156:
-#line 1505 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                     // Boolean constants
-    yyval.ConstVal = ConstantBool::getFalse();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 157:
-#line 1509 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                   // Float & Double constants
-    if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal))
-      GEN_ERROR("Floating point constant invalid for type!!");
-    yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 158:
-#line 1517 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    Constant *Val = yyvsp[-3].ConstVal;
-    const Type *Ty = yyvsp[-1].TypeVal->get();
+    Constant *Val = (yyvsp[-3].ConstVal);
+    const Type *Ty = (yyvsp[-1].TypeVal)->get();
     if (!Val->getType()->isFirstClassType())
       GEN_ERROR("cast constant expression from a non-primitive type: '" +
                      Val->getType()->getDescription() + "'!");
     if (!Ty->isFirstClassType())
       GEN_ERROR("cast constant expression to a non-primitive type: '" +
                 Ty->getDescription() + "'!");
-    yyval.ConstVal = ConstantExpr::getCast(yyvsp[-5].CastOpVal, yyvsp[-3].ConstVal, yyvsp[-1].TypeVal->get());
-    delete yyvsp[-1].TypeVal;
+    (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[-5].CastOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].TypeVal)->get());
+    delete (yyvsp[-1].TypeVal);
   ;}
     break;
 
-  case 159:
-#line 1529 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 153:
+#line 1529 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (!isa<PointerType>(yyvsp[-2].ConstVal->getType()))
+    if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand!");
 
     const Type *IdxTy =
-      GetElementPtrInst::getIndexedType(yyvsp[-2].ConstVal->getType(), *yyvsp[-1].ValueList, true);
+      GetElementPtrInst::getIndexedType((yyvsp[-2].ConstVal)->getType(), *(yyvsp[-1].ValueList), true);
     if (!IdxTy)
       GEN_ERROR("Index list invalid for constant getelementptr!");
 
     std::vector<Constant*> IdxVec;
-    for (unsigned i = 0, e = yyvsp[-1].ValueList->size(); i != e; ++i)
-      if (Constant *C = dyn_cast<Constant>((*yyvsp[-1].ValueList)[i]))
+    for (unsigned i = 0, e = (yyvsp[-1].ValueList)->size(); i != e; ++i)
+      if (Constant *C = dyn_cast<Constant>((*(yyvsp[-1].ValueList))[i]))
         IdxVec.push_back(C);
       else
         GEN_ERROR("Indices to constant getelementptr must be constants!");
 
-    delete yyvsp[-1].ValueList;
+    delete (yyvsp[-1].ValueList);
 
-    yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, IdxVec);
+    (yyval.ConstVal) = ConstantExpr::getGetElementPtr((yyvsp[-2].ConstVal), IdxVec);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 154:
+#line 1550 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-5].ConstVal)->getType() != Type::BoolTy)
+      GEN_ERROR("Select condition must be of boolean type!");
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
+      GEN_ERROR("Select operand types must match!");
+    (yyval.ConstVal) = ConstantExpr::getSelect((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 155:
+#line 1558 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
+      GEN_ERROR("Binary operator types must match!");
+    CHECK_FOR_ERROR;
+    (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 156:
+#line 1564 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
+      GEN_ERROR("Logical operator types must match!");
+    if (!(yyvsp[-3].ConstVal)->getType()->isIntegral()) {
+      if (!isa<PackedType>((yyvsp[-3].ConstVal)->getType()) || 
+          !cast<PackedType>((yyvsp[-3].ConstVal)->getType())->getElementType()->isIntegral())
+        GEN_ERROR("Logical operator requires integral operands!");
+    }
+    (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 157:
+#line 1575 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
+      GEN_ERROR("icmp operand types must match!");
+    (yyval.ConstVal) = ConstantExpr::getICmp((yyvsp[-5].IPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 158:
+#line 1580 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
+      GEN_ERROR("fcmp operand types must match!");
+    (yyval.ConstVal) = ConstantExpr::getFCmp((yyvsp[-5].FPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 159:
+#line 1585 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-1].ConstVal)->getType() != Type::UByteTy)
+      GEN_ERROR("Shift count for shift constant must be unsigned byte!");
+    if (!(yyvsp[-3].ConstVal)->getType()->isInteger())
+      GEN_ERROR("Shift constant expression requires integer operand!");
+    CHECK_FOR_ERROR;
+    (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].OtherOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 160:
-#line 1550 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1594 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-5].ConstVal->getType() != Type::BoolTy)
-      GEN_ERROR("Select condition must be of boolean type!");
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("Select operand types must match!");
-    yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
+      GEN_ERROR("Invalid extractelement operands!");
+    (yyval.ConstVal) = ConstantExpr::getExtractElement((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 161:
-#line 1558 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1600 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("Binary operator types must match!");
-    CHECK_FOR_ERROR;
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
+      GEN_ERROR("Invalid insertelement operands!");
+    (yyval.ConstVal) = ConstantExpr::getInsertElement((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+    CHECK_FOR_ERROR
   ;}
     break;
 
   case 162:
-#line 1564 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1606 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("Logical operator types must match!");
-    if (!yyvsp[-3].ConstVal->getType()->isIntegral()) {
-      if (!isa<PackedType>(yyvsp[-3].ConstVal->getType()) || 
-          !cast<PackedType>(yyvsp[-3].ConstVal->getType())->getElementType()->isIntegral())
-        GEN_ERROR("Logical operator requires integral operands!");
-    }
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
+      GEN_ERROR("Invalid shufflevector operands!");
+    (yyval.ConstVal) = ConstantExpr::getShuffleVector((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 163:
-#line 1575 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1615 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("setcc operand types must match!");
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 164:
-#line 1581 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1619 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("icmp operand types must match!");
-    yyval.ConstVal = ConstantExpr::getICmp(yyvsp[-5].IPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVector) = new std::vector<Constant*>();
+    (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
+    CHECK_FOR_ERROR
   ;}
     break;
 
   case 165:
-#line 1586 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
-      GEN_ERROR("fcmp operand types must match!");
-    yyval.ConstVal = ConstantExpr::getFCmp(yyvsp[-5].FPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-  ;}
+#line 1627 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.BoolVal) = false; ;}
     break;
 
   case 166:
-#line 1591 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (yyvsp[-1].ConstVal->getType() != Type::UByteTy)
-      GEN_ERROR("Shift count for shift constant must be unsigned byte!");
-    if (!yyvsp[-3].ConstVal->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
+#line 1627 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.BoolVal) = true; ;}
     break;
 
   case 167:
-#line 1600 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1637 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (!ExtractElementInst::isValidOperands(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
-      GEN_ERROR("Invalid extractelement operands!");
-    yyval.ConstVal = ConstantExpr::getExtractElement(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 168:
-#line 1606 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!InsertElementInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
-      GEN_ERROR("Invalid insertelement operands!");
-    yyval.ConstVal = ConstantExpr::getInsertElement(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 169:
-#line 1612 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!ShuffleVectorInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
-      GEN_ERROR("Invalid shufflevector operands!");
-    yyval.ConstVal = ConstantExpr::getShuffleVector(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 170:
-#line 1621 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 171:
-#line 1625 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ConstVector = new std::vector<Constant*>();
-    yyval.ConstVector->push_back(yyvsp[0].ConstVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 172:
-#line 1633 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.BoolVal = false; ;}
-    break;
-
-  case 173:
-#line 1633 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.BoolVal = true; ;}
-    break;
-
-  case 174:
-#line 1643 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-  yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
+  (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
   CurModule.ModuleDone();
   CHECK_FOR_ERROR;
 ;}
     break;
 
-  case 175:
-#line 1651 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 168:
+#line 1645 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ModuleVal = yyvsp[-1].ModuleVal;
+    (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 176:
-#line 1656 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 169:
+#line 1650 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ModuleVal = yyvsp[-1].ModuleVal;
+    (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 177:
-#line 1660 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 170:
+#line 1654 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ModuleVal = yyvsp[-3].ModuleVal;
+    (yyval.ModuleVal) = (yyvsp[-3].ModuleVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 178:
-#line 1664 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 171:
+#line 1658 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ModuleVal = yyvsp[-1].ModuleVal;
+    (yyval.ModuleVal) = (yyvsp[-1].ModuleVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 179:
-#line 1668 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 172:
+#line 1662 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ModuleVal = CurModule.CurrentModule;
+    (yyval.ModuleVal) = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
     if (!CurModule.LateResolveTypes.empty()) {
       const ValID &DID = CurModule.LateResolveTypes.begin()->first;
@@ -3958,8 +4033,8 @@
   ;}
     break;
 
-  case 180:
-#line 1683 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 173:
+#line 1677 "/proj/llvm/llvm-3/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:
@@ -3970,130 +4045,130 @@
     // If types are not resolved eagerly, then the two types will not be
     // determined to be the same type!
     //
-    ResolveTypeTo(yyvsp[-2].StrVal, *yyvsp[0].TypeVal);
+    ResolveTypeTo((yyvsp[-2].StrVal), *(yyvsp[0].TypeVal));
 
-    if (!setTypeName(*yyvsp[0].TypeVal, yyvsp[-2].StrVal) && !yyvsp[-2].StrVal) {
+    if (!setTypeName(*(yyvsp[0].TypeVal), (yyvsp[-2].StrVal)) && !(yyvsp[-2].StrVal)) {
       CHECK_FOR_ERROR
       // If this is a named type that is not a redefinition, add it to the slot
       // table.
-      CurModule.Types.push_back(*yyvsp[0].TypeVal);
+      CurModule.Types.push_back(*(yyvsp[0].TypeVal));
     }
 
-    delete yyvsp[0].TypeVal;
+    delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 181:
-#line 1705 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 174:
+#line 1699 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {       // Function prototypes can be in const pool
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 182:
-#line 1708 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 175:
+#line 1702 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {  // Asm blocks can be in the const pool
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 183:
-#line 1711 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 176:
+#line 1705 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[0].ConstVal == 0) 
+    if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("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);
+    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), (yyvsp[-2].Linkage), (yyvsp[-1].BoolVal), (yyvsp[0].ConstVal)->getType(), (yyvsp[0].ConstVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 177:
+#line 1710 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 0;
+  ;}
+    break;
+
+  case 178:
+#line 1713 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
+    CHECK_FOR_ERROR
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 179:
+#line 1717 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 0;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 180:
+#line 1721 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
+    CHECK_FOR_ERROR
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 181:
+#line 1725 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 0;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 182:
+#line 1729 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 
+      ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
+    CHECK_FOR_ERROR
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 183:
+#line 1734 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 184:
-#line 1716 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 0;
+#line 1738 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { 
+    CHECK_FOR_ERROR
   ;}
     break;
 
   case 185:
-#line 1719 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1741 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
     CHECK_FOR_ERROR
-    delete yyvsp[0].TypeVal;
   ;}
     break;
 
   case 186:
-#line 1723 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 0;
-    CHECK_FOR_ERROR
+#line 1744 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { 
   ;}
     break;
 
   case 187:
-#line 1727 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::DLLImportLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
-    CHECK_FOR_ERROR
-    delete yyvsp[0].TypeVal;
-  ;}
-    break;
-
-  case 188:
-#line 1731 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 0;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 189:
-#line 1735 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 
-      ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalWeakLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
-    CHECK_FOR_ERROR
-    delete yyvsp[0].TypeVal;
-  ;}
-    break;
-
-  case 190:
-#line 1740 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurGV = 0;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 191:
-#line 1744 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { 
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 192:
-#line 1747 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 193:
-#line 1750 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { 
-  ;}
-    break;
-
-  case 194:
-#line 1754 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1748 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
-  char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true);
-  std::string NewAsm(yyvsp[0].StrVal, EndStr);
-  free(yyvsp[0].StrVal);
+  char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
+  std::string NewAsm((yyvsp[0].StrVal), EndStr);
+  free((yyvsp[0].StrVal));
 
   if (AsmSoFar.empty())
     CurModule.CurrentModule->setModuleInlineAsm(NewAsm);
@@ -4103,171 +4178,171 @@
 ;}
     break;
 
+  case 188:
+#line 1761 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Endianness) = Module::BigEndian; ;}
+    break;
+
+  case 189:
+#line 1762 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Endianness) = Module::LittleEndian; ;}
+    break;
+
+  case 190:
+#line 1764 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurModule.CurrentModule->setEndianness((yyvsp[0].Endianness));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 191:
+#line 1768 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[0].UInt64Val) == 32)
+      CurModule.CurrentModule->setPointerSize(Module::Pointer32);
+    else if ((yyvsp[0].UInt64Val) == 64)
+      CurModule.CurrentModule->setPointerSize(Module::Pointer64);
+    else
+      GEN_ERROR("Invalid pointer size: '" + utostr((yyvsp[0].UInt64Val)) + "'!");
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 192:
+#line 1777 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
+  ;}
+    break;
+
+  case 193:
+#line 1781 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
+  ;}
+    break;
+
   case 195:
-#line 1767 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Endianness = Module::BigEndian; ;}
+#line 1788 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
+          CHECK_FOR_ERROR
+        ;}
     break;
 
   case 196:
-#line 1768 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.Endianness = Module::LittleEndian; ;}
+#line 1793 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
+          CHECK_FOR_ERROR
+        ;}
     break;
 
   case 197:
-#line 1770 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1798 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness);
-    CHECK_FOR_ERROR
-  ;}
+          CHECK_FOR_ERROR
+        ;}
     break;
 
-  case 198:
-#line 1774 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (yyvsp[0].UInt64Val == 32)
-      CurModule.CurrentModule->setPointerSize(Module::Pointer32);
-    else if (yyvsp[0].UInt64Val == 64)
-      CurModule.CurrentModule->setPointerSize(Module::Pointer64);
-    else
-      GEN_ERROR("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!");
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 199:
-#line 1783 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
-  ;}
-    break;
-
-  case 200:
-#line 1787 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    CurModule.CurrentModule->setDataLayout(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
-  ;}
+  case 201:
+#line 1808 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = 0; ;}
     break;
 
   case 202:
-#line 1794 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 1810 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
-          free(yyvsp[0].StrVal);
-          CHECK_FOR_ERROR
-        ;}
-    break;
-
-  case 203:
-#line 1799 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
-          free(yyvsp[0].StrVal);
-          CHECK_FOR_ERROR
-        ;}
-    break;
-
-  case 204:
-#line 1804 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-          CHECK_FOR_ERROR
-        ;}
-    break;
-
-  case 208:
-#line 1814 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.StrVal = 0; ;}
-    break;
-
-  case 209:
-#line 1816 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-  if (*yyvsp[-1].TypeVal == Type::VoidTy)
+  if (*(yyvsp[-1].TypeVal) == Type::VoidTy)
     GEN_ERROR("void typed arguments are invalid!");
-  yyval.ArgVal = new std::pair<PATypeHolder*, char*>(yyvsp[-1].TypeVal, yyvsp[0].StrVal);
+  (yyval.ArgVal) = new std::pair<PATypeHolder*, char*>((yyvsp[-1].TypeVal), (yyvsp[0].StrVal));
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 210:
-#line 1823 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 203:
+#line 1817 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ArgList = yyvsp[-2].ArgList;
-    yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal);
-    delete yyvsp[0].ArgVal;
+    (yyval.ArgList) = (yyvsp[-2].ArgList);
+    (yyvsp[-2].ArgList)->push_back(*(yyvsp[0].ArgVal));
+    delete (yyvsp[0].ArgVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 211:
-#line 1829 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 204:
+#line 1823 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
-    yyval.ArgList->push_back(*yyvsp[0].ArgVal);
-    delete yyvsp[0].ArgVal;
+    (yyval.ArgList) = new std::vector<std::pair<PATypeHolder*,char*> >();
+    (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
+    delete (yyvsp[0].ArgVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 212:
-#line 1836 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 205:
+#line 1830 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ArgList = yyvsp[0].ArgList;
+    (yyval.ArgList) = (yyvsp[0].ArgList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 213:
-#line 1840 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 206:
+#line 1834 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ArgList = yyvsp[-2].ArgList;
-    yyval.ArgList->push_back(std::pair<PATypeHolder*,
+    (yyval.ArgList) = (yyvsp[-2].ArgList);
+    (yyval.ArgList)->push_back(std::pair<PATypeHolder*,
                             char*>(new PATypeHolder(Type::VoidTy), 0));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 214:
-#line 1846 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 207:
+#line 1840 "/proj/llvm/llvm-3/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));
+    (yyval.ArgList) = new std::vector<std::pair<PATypeHolder*,char*> >();
+    (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 215:
-#line 1851 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 208:
+#line 1845 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ArgList = 0;
+    (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 216:
-#line 1857 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 209:
+#line 1851 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  UnEscapeLexed(yyvsp[-5].StrVal);
-  std::string FunctionName(yyvsp[-5].StrVal);
-  free(yyvsp[-5].StrVal);  // Free strdup'd memory!
+  UnEscapeLexed((yyvsp[-5].StrVal));
+  std::string FunctionName((yyvsp[-5].StrVal));
+  free((yyvsp[-5].StrVal));  // Free strdup'd memory!
   
-  if (!(*yyvsp[-6].TypeVal)->isFirstClassType() && *yyvsp[-6].TypeVal != Type::VoidTy)
+  if (!(*(yyvsp[-6].TypeVal))->isFirstClassType() && *(yyvsp[-6].TypeVal) != Type::VoidTy)
     GEN_ERROR("LLVM functions cannot return aggregate types!");
 
   std::vector<const Type*> ParamTypeList;
-  if (yyvsp[-3].ArgList) {   // If there are arguments...
-    for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-3].ArgList->begin();
-         I != yyvsp[-3].ArgList->end(); ++I)
+  if ((yyvsp[-3].ArgList)) {   // If there are arguments...
+    for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = (yyvsp[-3].ArgList)->begin();
+         I != (yyvsp[-3].ArgList)->end(); ++I)
       ParamTypeList.push_back(I->first->get());
   }
 
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  const FunctionType *FT = FunctionType::get(*yyvsp[-6].TypeVal, ParamTypeList, isVarArg);
+  const FunctionType *FT = FunctionType::get(*(yyvsp[-6].TypeVal), ParamTypeList, isVarArg);
   const PointerType *PFT = PointerType::get(FT);
-  delete yyvsp[-6].TypeVal;
+  delete (yyvsp[-6].TypeVal);
 
   ValID ID;
   if (!FunctionName.empty()) {
@@ -4311,24 +4386,24 @@
     // another function.
     Fn->setLinkage(CurFun.Linkage);
   }
-  Fn->setCallingConv(yyvsp[-7].UIntVal);
-  Fn->setAlignment(yyvsp[0].UIntVal);
-  if (yyvsp[-1].StrVal) {
-    Fn->setSection(yyvsp[-1].StrVal);
-    free(yyvsp[-1].StrVal);
+  Fn->setCallingConv((yyvsp[-7].UIntVal));
+  Fn->setAlignment((yyvsp[0].UIntVal));
+  if ((yyvsp[-1].StrVal)) {
+    Fn->setSection((yyvsp[-1].StrVal));
+    free((yyvsp[-1].StrVal));
   }
 
   // Add all of the arguments we parsed to the function...
-  if (yyvsp[-3].ArgList) {                     // Is null if empty...
+  if ((yyvsp[-3].ArgList)) {                     // Is null if empty...
     if (isVarArg) {  // Nuke the last entry
-      assert(yyvsp[-3].ArgList->back().first->get() == Type::VoidTy && yyvsp[-3].ArgList->back().second == 0&&
+      assert((yyvsp[-3].ArgList)->back().first->get() == Type::VoidTy && (yyvsp[-3].ArgList)->back().second == 0&&
              "Not a varargs marker!");
-      delete yyvsp[-3].ArgList->back().first;
-      yyvsp[-3].ArgList->pop_back();  // Delete the last entry
+      delete (yyvsp[-3].ArgList)->back().first;
+      (yyvsp[-3].ArgList)->pop_back();  // Delete the last entry
     }
     Function::arg_iterator ArgIt = Fn->arg_begin();
-    for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-3].ArgList->begin();
-         I != yyvsp[-3].ArgList->end(); ++I, ++ArgIt) {
+    for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = (yyvsp[-3].ArgList)->begin();
+         I != (yyvsp[-3].ArgList)->end(); ++I, ++ArgIt) {
       delete I->first;                          // Delete the typeholder...
 
       setValueName(ArgIt, I->second);           // Insert arg into symtab...
@@ -4336,140 +4411,140 @@
       InsertValue(ArgIt);
     }
 
-    delete yyvsp[-3].ArgList;                     // We're now done with the argument list
+    delete (yyvsp[-3].ArgList);                     // We're now done with the argument list
   }
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 219:
-#line 1953 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 212:
+#line 1947 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  yyval.FunctionVal = CurFun.CurrentFunction;
+  (yyval.FunctionVal) = CurFun.CurrentFunction;
 
   // Make sure that we keep track of the linkage type even if there was a
   // previous "declare".
-  yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage);
+  (yyval.FunctionVal)->setLinkage((yyvsp[-2].Linkage));
 ;}
     break;
 
-  case 222:
-#line 1963 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 215:
+#line 1957 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-  yyval.FunctionVal = yyvsp[-1].FunctionVal;
+  (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 224:
-#line 1969 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 217:
+#line 1963 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;}
     break;
 
-  case 225:
-#line 1970 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 218:
+#line 1964 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
-  case 226:
-#line 1972 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 219:
+#line 1966 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
-  case 227:
-#line 1972 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 220:
+#line 1966 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.FunctionVal = CurFun.CurrentFunction;
+    (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 228:
-#line 1982 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 221:
+#line 1976 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.BoolVal = false;
+    (yyval.BoolVal) = false;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 222:
+#line 1980 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 223:
+#line 1985 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {    // A reference to a direct constant
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 224:
+#line 1989 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 225:
+#line 1993 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                     // Perhaps it's an FP constant?
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 226:
+#line 1997 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue());
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 227:
+#line 2001 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse());
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 228:
+#line 2005 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 229:
-#line 1986 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2009 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.BoolVal = true;
+    (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 230:
-#line 1991 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {    // A reference to a direct constant
-    yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
+#line 2013 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {     // A vector zero constant.
+    (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 231:
-#line 1995 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 232:
-#line 1999 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                     // Perhaps it's an FP constant?
-    yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 233:
-#line 2003 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValIDVal = ValID::create(ConstantBool::getTrue());
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 234:
-#line 2007 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValIDVal = ValID::create(ConstantBool::getFalse());
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 235:
-#line 2011 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValIDVal = ValID::createNull();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 236:
-#line 2015 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValIDVal = ValID::createUndef();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 237:
-#line 2019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {     // A vector zero constant.
-    yyval.ValIDVal = ValID::createZeroInit();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 238:
-#line 2023 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2017 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
-    const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType();
-    int NumElements = yyvsp[-1].ConstVector->size(); 
+    const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
+    int NumElements = (yyvsp[-1].ConstVector)->size(); 
     
     PackedType* pt = PackedType::get(ETy, NumElements);
     PATypeHolder* PTy = new PATypeHolder(
@@ -4481,226 +4556,226 @@
                                          );
     
     // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
         GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
                      ETy->getDescription() +"' as required!\nIt is of type '" +
-                     (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
+                     (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
     }
 
-    yyval.ValIDVal = ValID::create(ConstantPacked::get(pt, *yyvsp[-1].ConstVector));
-    delete PTy; delete yyvsp[-1].ConstVector;
+    (yyval.ValIDVal) = ValID::create(ConstantPacked::get(pt, *(yyvsp[-1].ConstVector)));
+    delete PTy; delete (yyvsp[-1].ConstVector);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 232:
+#line 2042 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 233:
+#line 2046 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
+    std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
+    End = UnEscapeLexed((yyvsp[0].StrVal), true);
+    std::string Constraints = std::string((yyvsp[0].StrVal), End);
+    (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[-3].BoolVal));
+    free((yyvsp[-2].StrVal));
+    free((yyvsp[0].StrVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 234:
+#line 2060 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {  // Is it an integer reference...?
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 235:
+#line 2064 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                   // Is it a named reference...?
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 238:
+#line 2076 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 239:
-#line 2048 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2081 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal);
+    (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 240:
-#line 2052 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    char *End = UnEscapeLexed(yyvsp[-2].StrVal, true);
-    std::string AsmStr = std::string(yyvsp[-2].StrVal, End);
-    End = UnEscapeLexed(yyvsp[0].StrVal, true);
-    std::string Constraints = std::string(yyvsp[0].StrVal, End);
-    yyval.ValIDVal = ValID::createInlineAsm(AsmStr, Constraints, yyvsp[-3].BoolVal);
-    free(yyvsp[-2].StrVal);
-    free(yyvsp[0].StrVal);
+#line 2085 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { // Do not allow functions with 0 basic blocks   
+    (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 241:
-#line 2066 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {  // Is it an integer reference...?
-    yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
+#line 2094 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
+    CHECK_FOR_ERROR
+    InsertValue((yyvsp[0].TermInstVal));
+
+    (yyvsp[-2].BasicBlockVal)->getInstList().push_back((yyvsp[0].TermInstVal));
+    InsertValue((yyvsp[-2].BasicBlockVal));
+    (yyval.BasicBlockVal) = (yyvsp[-2].BasicBlockVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 242:
-#line 2070 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                   // Is it a named reference...?
-    yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
+#line 2105 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
+      if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
+        if (CI2->getParent() == 0)
+          (yyvsp[-1].BasicBlockVal)->getInstList().push_back(CI2);
+    (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal));
+    (yyval.BasicBlockVal) = (yyvsp[-1].BasicBlockVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 243:
+#line 2114 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
+    CHECK_FOR_ERROR
+
+    // Make sure to move the basic block to the correct location in the
+    // function, instead of leaving it inserted wherever it was first
+    // referenced.
+    Function::BasicBlockListType &BBL = 
+      CurFun.CurrentFunction->getBasicBlockList();
+    BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 244:
+#line 2126 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
+    CHECK_FOR_ERROR
+
+    // Make sure to move the basic block to the correct location in the
+    // function, instead of leaving it inserted wherever it was first
+    // referenced.
+    Function::BasicBlockListType &BBL = 
+      CurFun.CurrentFunction->getBasicBlockList();
+    BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 245:
-#line 2082 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal;
+#line 2139 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {              // Return with a result...
+    (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 246:
-#line 2087 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.FunctionVal = yyvsp[-1].FunctionVal;
+#line 2143 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                                       // Return with no result...
+    (yyval.TermInstVal) = new ReturnInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 247:
-#line 2091 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { // Do not allow functions with 0 basic blocks   
-    yyval.FunctionVal = yyvsp[-1].FunctionVal;
+#line 2147 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {                         // Unconditional Branch...
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
+    (yyval.TermInstVal) = new BranchInst(tmpBB);
   ;}
     break;
 
   case 248:
-#line 2100 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal);
+#line 2152 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {  
+    BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    InsertValue(yyvsp[0].TermInstVal);
-
-    yyvsp[-2].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
-    InsertValue(yyvsp[-2].BasicBlockVal);
-    yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal;
+    BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
+    Value* tmpVal = getVal(Type::BoolTy, (yyvsp[-6].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.TermInstVal) = new BranchInst(tmpBBA, tmpBBB, tmpVal);
   ;}
     break;
 
   case 249:
-#line 2111 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2161 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (CastInst *CI1 = dyn_cast<CastInst>(yyvsp[0].InstVal))
-      if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
-        if (CI2->getParent() == 0)
-          yyvsp[-1].BasicBlockVal->getInstList().push_back(CI2);
-    yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
-    yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
+    Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
-  ;}
-    break;
+    BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal));
+    CHECK_FOR_ERROR
+    SwitchInst *S = new SwitchInst(tmpVal, tmpBB, (yyvsp[-1].JumpTable)->size());
+    (yyval.TermInstVal) = S;
 
-  case 250:
-#line 2120 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.BasicBlockVal = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
-    CHECK_FOR_ERROR
-
-    // Make sure to move the basic block to the correct location in the
-    // function, instead of leaving it inserted wherever it was first
-    // referenced.
-    Function::BasicBlockListType &BBL = 
-      CurFun.CurrentFunction->getBasicBlockList();
-    BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 251:
-#line 2132 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.BasicBlockVal = getBBVal(ValID::create(yyvsp[0].StrVal), true);
-    CHECK_FOR_ERROR
-
-    // Make sure to move the basic block to the correct location in the
-    // function, instead of leaving it inserted wherever it was first
-    // referenced.
-    Function::BasicBlockListType &BBL = 
-      CurFun.CurrentFunction->getBasicBlockList();
-    BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 252:
-#line 2145 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {              // Return with a result...
-    yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 253:
-#line 2149 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                                       // Return with no result...
-    yyval.TermInstVal = new ReturnInst();
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 254:
-#line 2153 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {                         // Unconditional Branch...
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.TermInstVal = new BranchInst(tmpBB);
-  ;}
-    break;
-
-  case 255:
-#line 2158 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {  
-    BasicBlock* tmpBBA = getBBVal(yyvsp[-3].ValIDVal);
-    CHECK_FOR_ERROR
-    BasicBlock* tmpBBB = getBBVal(yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    Value* tmpVal = getVal(Type::BoolTy, yyvsp[-6].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.TermInstVal = new BranchInst(tmpBBA, tmpBBB, tmpVal);
-  ;}
-    break;
-
-  case 256:
-#line 2167 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    Value* tmpVal = getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal);
-    CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-3].ValIDVal);
-    CHECK_FOR_ERROR
-    SwitchInst *S = new SwitchInst(tmpVal, tmpBB, yyvsp[-1].JumpTable->size());
-    yyval.TermInstVal = S;
-
-    std::vector<std::pair<Constant*,BasicBlock*> >::iterator I = yyvsp[-1].JumpTable->begin(),
-      E = yyvsp[-1].JumpTable->end();
+    std::vector<std::pair<Constant*,BasicBlock*> >::iterator I = (yyvsp[-1].JumpTable)->begin(),
+      E = (yyvsp[-1].JumpTable)->end();
     for (; I != E; ++I) {
       if (ConstantInt *CI = dyn_cast<ConstantInt>(I->first))
           S->addCase(CI, I->second);
       else
         GEN_ERROR("Switch case is constant, but not a simple integer!");
     }
-    delete yyvsp[-1].JumpTable;
+    delete (yyvsp[-1].JumpTable);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 257:
-#line 2186 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 250:
+#line 2180 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    Value* tmpVal = getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal);
+    Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-2].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
     SwitchInst *S = new SwitchInst(tmpVal, tmpBB, 0);
-    yyval.TermInstVal = S;
+    (yyval.TermInstVal) = S;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 258:
-#line 2196 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 251:
+#line 2190 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
 
-    if (!(PFTy = dyn_cast<PointerType>(yyvsp[-10].TypeVal->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-10].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
-      if (yyvsp[-7].ValueList) {
-        for (std::vector<Value*>::iterator I = yyvsp[-7].ValueList->begin(), E = yyvsp[-7].ValueList->end();
+      if ((yyvsp[-7].ValueList)) {
+        for (std::vector<Value*>::iterator I = (yyvsp[-7].ValueList)->begin(), E = (yyvsp[-7].ValueList)->end();
              I != E; ++I)
           ParamTypes.push_back((*I)->getType());
       }
@@ -4708,27 +4783,27 @@
       bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy;
       if (isVarArg) ParamTypes.pop_back();
 
-      Ty = FunctionType::get(yyvsp[-10].TypeVal->get(), ParamTypes, isVarArg);
+      Ty = FunctionType::get((yyvsp[-10].TypeVal)->get(), ParamTypes, isVarArg);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, yyvsp[-9].ValIDVal);   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-9].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
-    BasicBlock *Normal = getBBVal(yyvsp[-3].ValIDVal);
+    BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock *Except = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock *Except = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
 
     // Create the call node...
-    if (!yyvsp[-7].ValueList) {                                   // Has no arguments?
-      yyval.TermInstVal = new InvokeInst(V, Normal, Except, std::vector<Value*>());
+    if (!(yyvsp[-7].ValueList)) {                                   // Has no arguments?
+      (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, std::vector<Value*>());
     } else {                                     // Has arguments?
       // Loop through FunctionType's arguments and ensure they are specified
       // correctly!
       //
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      std::vector<Value*>::iterator ArgI = yyvsp[-7].ValueList->begin(), ArgE = yyvsp[-7].ValueList->end();
+      std::vector<Value*>::iterator ArgI = (yyvsp[-7].ValueList)->begin(), ArgE = (yyvsp[-7].ValueList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I)
         if ((*ArgI)->getType() != *I)
@@ -4738,355 +4813,337 @@
       if (I != E || (ArgI != ArgE && !Ty->isVarArg()))
         GEN_ERROR("Invalid number of parameters detected!");
 
-      yyval.TermInstVal = new InvokeInst(V, Normal, Except, *yyvsp[-7].ValueList);
+      (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, *(yyvsp[-7].ValueList));
     }
-    cast<InvokeInst>(yyval.TermInstVal)->setCallingConv(yyvsp[-11].UIntVal);
+    cast<InvokeInst>((yyval.TermInstVal))->setCallingConv((yyvsp[-11].UIntVal));
   
-    delete yyvsp[-10].TypeVal;
-    delete yyvsp[-7].ValueList;
+    delete (yyvsp[-10].TypeVal);
+    delete (yyvsp[-7].ValueList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 259:
-#line 2251 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 252:
+#line 2245 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.TermInstVal = new UnwindInst();
+    (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 260:
-#line 2255 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 253:
+#line 2249 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.TermInstVal = new UnreachableInst();
+    (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 261:
-#line 2262 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 254:
+#line 2256 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.JumpTable = yyvsp[-5].JumpTable;
-    Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
+    (yyval.JumpTable) = (yyvsp[-5].JumpTable);
+    Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
     CHECK_FOR_ERROR
     if (V == 0)
       GEN_ERROR("May only switch on a constant pool value!");
 
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.JumpTable->push_back(std::make_pair(V, tmpBB));
+    (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB));
   ;}
     break;
 
-  case 262:
-#line 2273 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 255:
+#line 2267 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >();
-    Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
+    (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
+    Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
     CHECK_FOR_ERROR
 
     if (V == 0)
       GEN_ERROR("May only switch on a constant pool value!");
 
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.JumpTable->push_back(std::make_pair(V, tmpBB)); 
+    (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); 
   ;}
     break;
 
-  case 263:
-#line 2286 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 256:
+#line 2280 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
   // Is this definition named?? if so, assign the name...
-  setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal);
+  setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
   CHECK_FOR_ERROR
-  InsertValue(yyvsp[0].InstVal);
-  yyval.InstVal = yyvsp[0].InstVal;
+  InsertValue((yyvsp[0].InstVal));
+  (yyval.InstVal) = (yyvsp[0].InstVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 264:
-#line 2295 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 257:
+#line 2289 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
-    yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >();
-    Value* tmpVal = getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal);
+    (yyval.PHIList) = new std::list<std::pair<Value*, BasicBlock*> >();
+    Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.PHIList->push_back(std::make_pair(tmpVal, tmpBB));
-    delete yyvsp[-5].TypeVal;
+    (yyval.PHIList)->push_back(std::make_pair(tmpVal, tmpBB));
+    delete (yyvsp[-5].TypeVal);
+  ;}
+    break;
+
+  case 258:
+#line 2298 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.PHIList) = (yyvsp[-6].PHIList);
+    Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
+    CHECK_FOR_ERROR
+    BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyvsp[-6].PHIList)->push_back(std::make_pair(tmpVal, tmpBB));
+  ;}
+    break;
+
+  case 259:
+#line 2308 "/proj/llvm/llvm-3/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 260:
+#line 2312 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValueList) = (yyvsp[-2].ValueList);
+    (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 262:
+#line 2319 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ValueList) = 0; ;}
+    break;
+
+  case 263:
+#line 2321 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 264:
+#line 2325 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = false;
+    CHECK_FOR_ERROR
   ;}
     break;
 
   case 265:
-#line 2304 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2330 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.PHIList = yyvsp[-6].PHIList;
-    Value* tmpVal = getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal);
+    if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && 
+        !isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
+      GEN_ERROR(
+        "Arithmetic operator requires integer, FP, or packed operands!");
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()) && 
+        ((yyvsp[-4].BinaryOpVal) == Instruction::URem || 
+         (yyvsp[-4].BinaryOpVal) == Instruction::SRem ||
+         (yyvsp[-4].BinaryOpVal) == Instruction::FRem))
+      GEN_ERROR("U/S/FRem not supported on packed types!");
+    Value* val1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); 
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal);
+    Value* val2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyvsp[-6].PHIList->push_back(std::make_pair(tmpVal, tmpBB));
+    (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), val1, val2);
+    if ((yyval.InstVal) == 0)
+      GEN_ERROR("binary operator returned null!");
+    delete (yyvsp[-3].TypeVal);
   ;}
     break;
 
   case 266:
-#line 2314 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {    // Used for call statements, and memory insts...
-    yyval.ValueList = new std::vector<Value*>();
-    yyval.ValueList->push_back(yyvsp[0].ValueVal);
+#line 2349 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!(*(yyvsp[-3].TypeVal))->isIntegral()) {
+      if (!isa<PackedType>((yyvsp[-3].TypeVal)->get()) ||
+          !cast<PackedType>((yyvsp[-3].TypeVal)->get())->getElementType()->isIntegral())
+        GEN_ERROR("Logical operator requires integral operands!");
+    }
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
+    CHECK_FOR_ERROR
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
+      GEN_ERROR("binary operator returned null!");
+    delete (yyvsp[-3].TypeVal);
   ;}
     break;
 
   case 267:
-#line 2318 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2364 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.ValueList = yyvsp[-2].ValueList;
-    yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 269:
-#line 2325 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { yyval.ValueList = 0; ;}
-    break;
-
-  case 270:
-#line 2327 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.BoolVal = true;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 271:
-#line 2331 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.BoolVal = false;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 272:
-#line 2336 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && 
-        !isa<PackedType>((*yyvsp[-3].TypeVal).get()))
-      GEN_ERROR(
-        "Arithmetic operator requires integer, FP, or packed operands!");
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()) && 
-        (yyvsp[-4].BinaryOpVal == Instruction::URem || 
-         yyvsp[-4].BinaryOpVal == Instruction::SRem ||
-         yyvsp[-4].BinaryOpVal == Instruction::FRem))
-      GEN_ERROR("U/S/FRem not supported on packed types!");
-    Value* val1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); 
-    CHECK_FOR_ERROR
-    Value* val2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, val1, val2);
-    if (yyval.InstVal == 0)
-      GEN_ERROR("binary operator returned null!");
-    delete yyvsp[-3].TypeVal;
-  ;}
-    break;
-
-  case 273:
-#line 2355 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!(*yyvsp[-3].TypeVal)->isIntegral()) {
-      if (!isa<PackedType>(yyvsp[-3].TypeVal->get()) ||
-          !cast<PackedType>(yyvsp[-3].TypeVal->get())->getElementType()->isIntegral())
-        GEN_ERROR("Logical operator requires integral operands!");
-    }
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
-    CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
-      GEN_ERROR("binary operator returned null!");
-    delete yyvsp[-3].TypeVal;
-  ;}
-    break;
-
-  case 274:
-#line 2370 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) {
-      GEN_ERROR(
-        "PackedTypes currently not supported in setcc instructions!");
-    }
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
-    CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = new SetCondInst(yyvsp[-4].BinaryOpVal, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
-      GEN_ERROR("binary operator returned null!");
-    delete yyvsp[-3].TypeVal;
-  ;}
-    break;
-
-  case 275:
-#line 2384 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR("Packed types not supported by icmp instruction");
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].IPredicate, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].IPredicate), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("icmp operator returned null!");
   ;}
     break;
 
-  case 276:
-#line 2395 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 268:
+#line 2375 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR("Packed types not supported by fcmp instruction");
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].FPredicate, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].FPredicate), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("fcmp operator returned null!");
   ;}
     break;
 
-  case 277:
-#line 2406 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 269:
+#line 2386 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     cerr << "WARNING: Use of eliminated 'not' instruction:"
          << " Replacing with 'xor'.\n";
 
-    Value *Ones = ConstantIntegral::getAllOnesValue(yyvsp[0].ValueVal->getType());
+    Value *Ones = ConstantIntegral::getAllOnesValue((yyvsp[0].ValueVal)->getType());
     if (Ones == 0)
       GEN_ERROR("Expected integral type for not instruction!");
 
-    yyval.InstVal = BinaryOperator::create(Instruction::Xor, yyvsp[0].ValueVal, Ones);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = BinaryOperator::create(Instruction::Xor, (yyvsp[0].ValueVal), Ones);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("Could not create a xor instruction!");
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 278:
-#line 2419 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 270:
+#line 2399 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[0].ValueVal->getType() != Type::UByteTy)
+    if ((yyvsp[0].ValueVal)->getType() != Type::UByteTy)
       GEN_ERROR("Shift amount must be ubyte!");
-    if (!yyvsp[-2].ValueVal->getType()->isInteger())
+    if (!(yyvsp[-2].ValueVal)->getType()->isInteger())
       GEN_ERROR("Shift constant expression requires integer operand!");
     CHECK_FOR_ERROR;
-    yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new ShiftInst((yyvsp[-3].OtherOpVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 279:
-#line 2428 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 271:
+#line 2408 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    Value* Val = yyvsp[-2].ValueVal;
-    const Type* Ty = yyvsp[0].TypeVal->get();
+    Value* Val = (yyvsp[-2].ValueVal);
+    const Type* Ty = (yyvsp[0].TypeVal)->get();
     if (!Val->getType()->isFirstClassType())
       GEN_ERROR("cast from a non-primitive type: '" +
                 Val->getType()->getDescription() + "'!");
     if (!Ty->isFirstClassType())
       GEN_ERROR("cast to a non-primitive type: '" + Ty->getDescription() +"'!");
-    yyval.InstVal = CastInst::create(yyvsp[-3].CastOpVal, yyvsp[-2].ValueVal, yyvsp[0].TypeVal->get());
-    delete yyvsp[0].TypeVal;
+    (yyval.InstVal) = CastInst::create((yyvsp[-3].CastOpVal), (yyvsp[-2].ValueVal), (yyvsp[0].TypeVal)->get());
+    delete (yyvsp[0].TypeVal);
   ;}
     break;
 
-  case 280:
-#line 2439 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 272:
+#line 2419 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (yyvsp[-4].ValueVal->getType() != Type::BoolTy)
+    if ((yyvsp[-4].ValueVal)->getType() != Type::BoolTy)
       GEN_ERROR("select condition must be boolean!");
-    if (yyvsp[-2].ValueVal->getType() != yyvsp[0].ValueVal->getType())
+    if ((yyvsp[-2].ValueVal)->getType() != (yyvsp[0].ValueVal)->getType())
       GEN_ERROR("select value types should match!");
-    yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new SelectInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 281:
-#line 2447 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 273:
+#line 2427 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
-    delete yyvsp[0].TypeVal;
+    (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal));
+    delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 282:
-#line 2452 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 274:
+#line 2432 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (!ExtractElementInst::isValidOperands(yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+    if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands!");
-    yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new ExtractElementInst((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 283:
-#line 2458 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 275:
+#line 2438 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (!InsertElementInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+    if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands!");
-    yyval.InstVal = new InsertElementInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new InsertElementInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 284:
-#line 2464 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 276:
+#line 2444 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    if (!ShuffleVectorInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+    if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands!");
-    yyval.InstVal = new ShuffleVectorInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new ShuffleVectorInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 285:
-#line 2470 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 277:
+#line 2450 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    const Type *Ty = yyvsp[0].PHIList->front().first->getType();
+    const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
       GEN_ERROR("PHI node operands must be of first class type!");
-    yyval.InstVal = new PHINode(Ty);
-    ((PHINode*)yyval.InstVal)->reserveOperandSpace(yyvsp[0].PHIList->size());
-    while (yyvsp[0].PHIList->begin() != yyvsp[0].PHIList->end()) {
-      if (yyvsp[0].PHIList->front().first->getType() != Ty) 
+    (yyval.InstVal) = new PHINode(Ty);
+    ((PHINode*)(yyval.InstVal))->reserveOperandSpace((yyvsp[0].PHIList)->size());
+    while ((yyvsp[0].PHIList)->begin() != (yyvsp[0].PHIList)->end()) {
+      if ((yyvsp[0].PHIList)->front().first->getType() != Ty) 
         GEN_ERROR("All elements of a PHI node must be of the same type!");
-      cast<PHINode>(yyval.InstVal)->addIncoming(yyvsp[0].PHIList->front().first, yyvsp[0].PHIList->front().second);
-      yyvsp[0].PHIList->pop_front();
+      cast<PHINode>((yyval.InstVal))->addIncoming((yyvsp[0].PHIList)->front().first, (yyvsp[0].PHIList)->front().second);
+      (yyvsp[0].PHIList)->pop_front();
     }
-    delete yyvsp[0].PHIList;  // Free the list...
+    delete (yyvsp[0].PHIList);  // Free the list...
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 286:
-#line 2485 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+  case 278:
+#line 2465 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
 
-    if (!(PFTy = dyn_cast<PointerType>(yyvsp[-4].TypeVal->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-4].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
-      if (yyvsp[-1].ValueList) {
-        for (std::vector<Value*>::iterator I = yyvsp[-1].ValueList->begin(), E = yyvsp[-1].ValueList->end();
+      if ((yyvsp[-1].ValueList)) {
+        for (std::vector<Value*>::iterator I = (yyvsp[-1].ValueList)->begin(), E = (yyvsp[-1].ValueList)->end();
              I != E; ++I)
           ParamTypes.push_back((*I)->getType());
       }
@@ -5094,31 +5151,31 @@
       bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy;
       if (isVarArg) ParamTypes.pop_back();
 
-      if (!(*yyvsp[-4].TypeVal)->isFirstClassType() && *yyvsp[-4].TypeVal != Type::VoidTy)
+      if (!(*(yyvsp[-4].TypeVal))->isFirstClassType() && *(yyvsp[-4].TypeVal) != Type::VoidTy)
         GEN_ERROR("LLVM functions cannot return aggregate types!");
 
-      Ty = FunctionType::get(yyvsp[-4].TypeVal->get(), ParamTypes, isVarArg);
+      Ty = FunctionType::get((yyvsp[-4].TypeVal)->get(), ParamTypes, isVarArg);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, yyvsp[-3].ValIDVal);   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-3].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
 
     // Create the call node...
-    if (!yyvsp[-1].ValueList) {                                   // Has no arguments?
+    if (!(yyvsp[-1].ValueList)) {                                   // Has no arguments?
       // Make sure no arguments is a good thing!
       if (Ty->getNumParams() != 0)
         GEN_ERROR("No arguments passed to a function that "
                        "expects arguments!");
 
-      yyval.InstVal = new CallInst(V, std::vector<Value*>());
+      (yyval.InstVal) = new CallInst(V, std::vector<Value*>());
     } else {                                     // Has arguments?
       // Loop through FunctionType's arguments and ensure they are specified
       // correctly!
       //
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      std::vector<Value*>::iterator ArgI = yyvsp[-1].ValueList->begin(), ArgE = yyvsp[-1].ValueList->end();
+      std::vector<Value*>::iterator ArgI = (yyvsp[-1].ValueList)->begin(), ArgE = (yyvsp[-1].ValueList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I)
         if ((*ArgI)->getType() != *I)
@@ -5128,162 +5185,163 @@
       if (I != E || (ArgI != ArgE && !Ty->isVarArg()))
         GEN_ERROR("Invalid number of parameters detected!");
 
-      yyval.InstVal = new CallInst(V, *yyvsp[-1].ValueList);
+      (yyval.InstVal) = new CallInst(V, *(yyvsp[-1].ValueList));
     }
-    cast<CallInst>(yyval.InstVal)->setTailCall(yyvsp[-6].BoolVal);
-    cast<CallInst>(yyval.InstVal)->setCallingConv(yyvsp[-5].UIntVal);
-    delete yyvsp[-4].TypeVal;
-    delete yyvsp[-1].ValueList;
+    cast<CallInst>((yyval.InstVal))->setTailCall((yyvsp[-6].BoolVal));
+    cast<CallInst>((yyval.InstVal))->setCallingConv((yyvsp[-5].UIntVal));
+    delete (yyvsp[-4].TypeVal);
+    delete (yyvsp[-1].ValueList);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 279:
+#line 2524 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.InstVal) = (yyvsp[0].InstVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 280:
+#line 2531 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { 
+    (yyval.ValueList) = (yyvsp[0].ValueList); 
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 281:
+#line 2534 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    { 
+    (yyval.ValueList) = new std::vector<Value*>(); 
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 282:
+#line 2539 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 283:
+#line 2543 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = false;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 284:
+#line 2550 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 285:
+#line 2555 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.InstVal) = new MallocInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal));
+    delete (yyvsp[-4].TypeVal);
+  ;}
+    break;
+
+  case 286:
+#line 2561 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
+    delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 287:
-#line 2544 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2566 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.InstVal = yyvsp[0].InstVal;
+    Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
+    (yyval.InstVal) = new AllocaInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal));
+    delete (yyvsp[-4].TypeVal);
   ;}
     break;
 
   case 288:
-#line 2551 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { 
-    yyval.ValueList = yyvsp[0].ValueList; 
+#line 2572 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
+      GEN_ERROR("Trying to free nonpointer type " + 
+                     (yyvsp[0].ValueVal)->getType()->getDescription() + "!");
+    (yyval.InstVal) = new FreeInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 289:
-#line 2554 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    { 
-    yyval.ValueList = new std::vector<Value*>(); 
+#line 2580 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!isa<PointerType>((yyvsp[-1].TypeVal)->get()))
+      GEN_ERROR("Can't load from nonpointer type: " +
+                     (*(yyvsp[-1].TypeVal))->getDescription());
+    if (!cast<PointerType>((yyvsp[-1].TypeVal)->get())->getElementType()->isFirstClassType())
+      GEN_ERROR("Can't load from pointer of non-first-class type: " +
+                     (*(yyvsp[-1].TypeVal))->getDescription());
+    Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
+    (yyval.InstVal) = new LoadInst(tmpVal, "", (yyvsp[-3].BoolVal));
+    delete (yyvsp[-1].TypeVal);
   ;}
     break;
 
   case 290:
-#line 2559 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2592 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.BoolVal = true;
+    const PointerType *PT = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
+    if (!PT)
+      GEN_ERROR("Can't store to a nonpointer type: " +
+                     (*(yyvsp[-1].TypeVal))->getDescription());
+    const Type *ElTy = PT->getElementType();
+    if (ElTy != (yyvsp[-3].ValueVal)->getType())
+      GEN_ERROR("Can't store '" + (yyvsp[-3].ValueVal)->getType()->getDescription() +
+                     "' into space of type '" + ElTy->getDescription() + "'!");
+
+    Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
+    (yyval.InstVal) = new StoreInst((yyvsp[-3].ValueVal), tmpVal, (yyvsp[-5].BoolVal));
+    delete (yyvsp[-1].TypeVal);
   ;}
     break;
 
   case 291:
-#line 2563 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2607 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
     {
-    yyval.BoolVal = false;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 292:
-#line 2570 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 293:
-#line 2575 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal);
-    delete yyvsp[-4].TypeVal;
-  ;}
-    break;
-
-  case 294:
-#line 2581 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 295:
-#line 2586 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal);
-    delete yyvsp[-4].TypeVal;
-  ;}
-    break;
-
-  case 296:
-#line 2592 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!isa<PointerType>(yyvsp[0].ValueVal->getType()))
-      GEN_ERROR("Trying to free nonpointer type " + 
-                     yyvsp[0].ValueVal->getType()->getDescription() + "!");
-    yyval.InstVal = new FreeInst(yyvsp[0].ValueVal);
-    CHECK_FOR_ERROR
-  ;}
-    break;
-
-  case 297:
-#line 2600 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!isa<PointerType>(yyvsp[-1].TypeVal->get()))
-      GEN_ERROR("Can't load from nonpointer type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
-    if (!cast<PointerType>(yyvsp[-1].TypeVal->get())->getElementType()->isFirstClassType())
-      GEN_ERROR("Can't load from pointer of non-first-class type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
-    Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = new LoadInst(tmpVal, "", yyvsp[-3].BoolVal);
-    delete yyvsp[-1].TypeVal;
-  ;}
-    break;
-
-  case 298:
-#line 2612 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
-    if (!PT)
-      GEN_ERROR("Can't store to a nonpointer type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
-    const Type *ElTy = PT->getElementType();
-    if (ElTy != yyvsp[-3].ValueVal->getType())
-      GEN_ERROR("Can't store '" + yyvsp[-3].ValueVal->getType()->getDescription() +
-                     "' into space of type '" + ElTy->getDescription() + "'!");
-
-    Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.InstVal = new StoreInst(yyvsp[-3].ValueVal, tmpVal, yyvsp[-5].BoolVal);
-    delete yyvsp[-1].TypeVal;
-  ;}
-    break;
-
-  case 299:
-#line 2627 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
-    {
-    if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
+    if (!isa<PointerType>((yyvsp[-2].TypeVal)->get()))
       GEN_ERROR("getelementptr insn requires pointer operand!");
 
-    if (!GetElementPtrInst::getIndexedType(*yyvsp[-2].TypeVal, *yyvsp[0].ValueList, true))
+    if (!GetElementPtrInst::getIndexedType(*(yyvsp[-2].TypeVal), *(yyvsp[0].ValueList), true))
       GEN_ERROR("Invalid getelementptr indices for type '" +
-                     (*yyvsp[-2].TypeVal)->getDescription()+ "'!");
-    Value* tmpVal = getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal);
+                     (*(yyvsp[-2].TypeVal))->getDescription()+ "'!");
+    Value* tmpVal = getVal(*(yyvsp[-2].TypeVal), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new GetElementPtrInst(tmpVal, *yyvsp[0].ValueList);
-    delete yyvsp[-2].TypeVal; 
-    delete yyvsp[0].ValueList;
+    (yyval.InstVal) = new GetElementPtrInst(tmpVal, *(yyvsp[0].ValueList));
+    delete (yyvsp[-2].TypeVal); 
+    delete (yyvsp[0].ValueList);
   ;}
     break;
 
 
+      default: break;
     }
 
-/* Line 1000 of yacc.c.  */
-#line 5287 "llvmAsmParser.tab.c"
+/* Line 1126 of yacc.c.  */
+#line 5345 "llvmAsmParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5322,12 +5380,36 @@
 
       if (YYPACT_NINF < yyn && yyn < YYLAST)
 	{
-	  YYSIZE_T yysize = 0;
 	  int yytype = YYTRANSLATE (yychar);
-	  const char* yyprefix;
-	  char *yymsg;
+	  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+	  YYSIZE_T yysize = yysize0;
+	  YYSIZE_T yysize1;
+	  int yysize_overflow = 0;
+	  char *yymsg = 0;
+#	  define YYERROR_VERBOSE_ARGS_MAXIMUM 5
+	  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 	  int yyx;
 
+#if 0
+	  /* This is so xgettext sees the translatable formats that are
+	     constructed on the fly.  */
+	  YY_("syntax error, unexpected %s");
+	  YY_("syntax error, unexpected %s, expecting %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+#endif
+	  char *yyfmt;
+	  char const *yyf;
+	  static char const yyunexpected[] = "syntax error, unexpected %s";
+	  static char const yyexpecting[] = ", expecting %s";
+	  static char const yyor[] = " or %s";
+	  char yyformat[sizeof yyunexpected
+			+ sizeof yyexpecting - 1
+			+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+			   * (sizeof yyor - 1))];
+	  char const *yyprefix = yyexpecting;
+
 	  /* Start YYX at -YYN if negative to avoid negative indexes in
 	     YYCHECK.  */
 	  int yyxbegin = yyn < 0 ? -yyn : 0;
@@ -5335,81 +5417,91 @@
 	  /* Stay within bounds of both yycheck and yytname.  */
 	  int yychecklim = YYLAST - yyn;
 	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-	  int yycount = 0;
+	  int yycount = 1;
 
-	  yyprefix = ", expecting ";
+	  yyarg[0] = yytname[yytype];
+	  yyfmt = yystpcpy (yyformat, yyunexpected);
+
 	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 	      {
-		yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-		yycount += 1;
-		if (yycount == 5)
+		if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
 		  {
-		    yysize = 0;
+		    yycount = 1;
+		    yysize = yysize0;
+		    yyformat[sizeof yyunexpected - 1] = '\0';
 		    break;
 		  }
+		yyarg[yycount++] = yytname[yyx];
+		yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+		yysize_overflow |= yysize1 < yysize;
+		yysize = yysize1;
+		yyfmt = yystpcpy (yyfmt, yyprefix);
+		yyprefix = yyor;
 	      }
-	  yysize += (sizeof ("syntax error, unexpected ")
-		     + yystrlen (yytname[yytype]));
-	  yymsg = (char *) YYSTACK_ALLOC (yysize);
-	  if (yymsg != 0)
-	    {
-	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-	      yyp = yystpcpy (yyp, yytname[yytype]);
 
-	      if (yycount < 5)
+	  yyf = YY_(yyformat);
+	  yysize1 = yysize + yystrlen (yyf);
+	  yysize_overflow |= yysize1 < yysize;
+	  yysize = yysize1;
+
+	  if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
+	    yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg)
+	    {
+	      /* Avoid sprintf, as that infringes on the user's name space.
+		 Don't have undefined behavior even if the translation
+		 produced a string with the wrong number of "%s"s.  */
+	      char *yyp = yymsg;
+	      int yyi = 0;
+	      while ((*yyp = *yyf))
 		{
-		  yyprefix = ", expecting ";
-		  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-		      {
-			yyp = yystpcpy (yyp, yyprefix);
-			yyp = yystpcpy (yyp, yytname[yyx]);
-			yyprefix = " or ";
-		      }
+		  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		    {
+		      yyp += yytnamerr (yyp, yyarg[yyi++]);
+		      yyf += 2;
+		    }
+		  else
+		    {
+		      yyp++;
+		      yyf++;
+		    }
 		}
 	      yyerror (yymsg);
 	      YYSTACK_FREE (yymsg);
 	    }
 	  else
-	    yyerror ("syntax error; also virtual memory exhausted");
+	    {
+	      yyerror (YY_("syntax error"));
+	      goto yyexhaustedlab;
+	    }
 	}
       else
 #endif /* YYERROR_VERBOSE */
-	yyerror ("syntax error");
+	yyerror (YY_("syntax error"));
     }
 
 
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse lookahead token after an
+      /* If just tried and failed to reuse look-ahead token after an
 	 error, discard it.  */
 
       if (yychar <= YYEOF)
         {
-          /* If at end of input, pop the error token,
-	     then the rest of the stack, then return failure.  */
+	  /* Return failure if at end of input.  */
 	  if (yychar == YYEOF)
-	     for (;;)
-	       {
-		 YYPOPSTACK;
-		 if (yyssp == yyss)
-		   YYABORT;
-		 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-		 yydestruct (yystos[*yyssp], yyvsp);
-	       }
+	    YYABORT;
         }
       else
 	{
-	  YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-	  yydestruct (yytoken, &yylval);
+	  yydestruct ("Error: discarding", yytoken, &yylval);
 	  yychar = YYEMPTY;
-
 	}
     }
 
-  /* Else will try to reuse lookahead token after shifting the error
+  /* Else will try to reuse look-ahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -5419,14 +5511,13 @@
 `---------------------------------------------------*/
 yyerrorlab:
 
-#ifdef __GNUC__
-  /* Pacify GCC when the user code never invokes YYERROR and the label
-     yyerrorlab therefore never appears in user code.  */
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
   if (0)
      goto yyerrorlab;
-#endif
 
-  yyvsp -= yylen;
+yyvsp -= yylen;
   yyssp -= yylen;
   yystate = *yyssp;
   goto yyerrlab1;
@@ -5456,8 +5547,8 @@
       if (yyssp == yyss)
 	YYABORT;
 
-      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-      yydestruct (yystos[yystate], yyvsp);
+
+      yydestruct ("Error: popping", yystos[yystate], yyvsp);
       YYPOPSTACK;
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -5466,11 +5557,12 @@
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  YYDPRINTF ((stderr, "Shifting error token, "));
-
   *++yyvsp = yylval;
 
 
+  /* Shift the error token. */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
   yystate = yyn;
   goto yynewstate;
 
@@ -5490,16 +5582,25 @@
   goto yyreturn;
 
 #ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
-yyoverflowlab:
-  yyerror ("parser stack overflow");
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
   yyresult = 2;
   /* Fall through.  */
 #endif
 
 yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+		 yytoken, &yylval);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp);
+      YYPOPSTACK;
+    }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
@@ -5508,7 +5609,7 @@
 }
 
 
-#line 2642 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 2622 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
 
 
 void llvm::GenerateError(const std::string &message, int LineNo) {
diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs
index 24c92b5..1832575 100644
--- a/lib/AsmParser/llvmAsmParser.h.cvs
+++ b/lib/AsmParser/llvmAsmParser.h.cvs
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875c.  */
+/* A Bison parser, made by GNU Bison 2.1.  */
 
 /* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -15,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
@@ -116,63 +116,58 @@
      AND = 342,
      OR = 343,
      XOR = 344,
-     SETLE = 345,
-     SETGE = 346,
-     SETLT = 347,
-     SETGT = 348,
-     SETEQ = 349,
-     SETNE = 350,
-     ICMP = 351,
-     FCMP = 352,
-     EQ = 353,
-     NE = 354,
-     SLT = 355,
-     SGT = 356,
-     SLE = 357,
-     SGE = 358,
-     ULT = 359,
-     UGT = 360,
-     ULE = 361,
-     UGE = 362,
-     OEQ = 363,
-     ONE = 364,
-     OLT = 365,
-     OGT = 366,
-     OLE = 367,
-     OGE = 368,
-     ORD = 369,
-     UNO = 370,
-     UEQ = 371,
-     UNE = 372,
-     MALLOC = 373,
-     ALLOCA = 374,
-     FREE = 375,
-     LOAD = 376,
-     STORE = 377,
-     GETELEMENTPTR = 378,
-     TRUNC = 379,
-     ZEXT = 380,
-     SEXT = 381,
-     FPTRUNC = 382,
-     FPEXT = 383,
-     BITCAST = 384,
-     UITOFP = 385,
-     SITOFP = 386,
-     FPTOUI = 387,
-     FPTOSI = 388,
-     INTTOPTR = 389,
-     PTRTOINT = 390,
-     PHI_TOK = 391,
-     SELECT = 392,
-     SHL = 393,
-     LSHR = 394,
-     ASHR = 395,
-     VAARG = 396,
-     EXTRACTELEMENT = 397,
-     INSERTELEMENT = 398,
-     SHUFFLEVECTOR = 399
+     ICMP = 345,
+     FCMP = 346,
+     EQ = 347,
+     NE = 348,
+     SLT = 349,
+     SGT = 350,
+     SLE = 351,
+     SGE = 352,
+     ULT = 353,
+     UGT = 354,
+     ULE = 355,
+     UGE = 356,
+     OEQ = 357,
+     ONE = 358,
+     OLT = 359,
+     OGT = 360,
+     OLE = 361,
+     OGE = 362,
+     ORD = 363,
+     UNO = 364,
+     UEQ = 365,
+     UNE = 366,
+     MALLOC = 367,
+     ALLOCA = 368,
+     FREE = 369,
+     LOAD = 370,
+     STORE = 371,
+     GETELEMENTPTR = 372,
+     TRUNC = 373,
+     ZEXT = 374,
+     SEXT = 375,
+     FPTRUNC = 376,
+     FPEXT = 377,
+     BITCAST = 378,
+     UITOFP = 379,
+     SITOFP = 380,
+     FPTOUI = 381,
+     FPTOSI = 382,
+     INTTOPTR = 383,
+     PTRTOINT = 384,
+     PHI_TOK = 385,
+     SELECT = 386,
+     SHL = 387,
+     LSHR = 388,
+     ASHR = 389,
+     VAARG = 390,
+     EXTRACTELEMENT = 391,
+     INSERTELEMENT = 392,
+     SHUFFLEVECTOR = 393
    };
 #endif
+/* Tokens.  */
 #define ESINT64VAL 258
 #define EUINT64VAL 259
 #define SINTVAL 260
@@ -260,67 +255,61 @@
 #define AND 342
 #define OR 343
 #define XOR 344
-#define SETLE 345
-#define SETGE 346
-#define SETLT 347
-#define SETGT 348
-#define SETEQ 349
-#define SETNE 350
-#define ICMP 351
-#define FCMP 352
-#define EQ 353
-#define NE 354
-#define SLT 355
-#define SGT 356
-#define SLE 357
-#define SGE 358
-#define ULT 359
-#define UGT 360
-#define ULE 361
-#define UGE 362
-#define OEQ 363
-#define ONE 364
-#define OLT 365
-#define OGT 366
-#define OLE 367
-#define OGE 368
-#define ORD 369
-#define UNO 370
-#define UEQ 371
-#define UNE 372
-#define MALLOC 373
-#define ALLOCA 374
-#define FREE 375
-#define LOAD 376
-#define STORE 377
-#define GETELEMENTPTR 378
-#define TRUNC 379
-#define ZEXT 380
-#define SEXT 381
-#define FPTRUNC 382
-#define FPEXT 383
-#define BITCAST 384
-#define UITOFP 385
-#define SITOFP 386
-#define FPTOUI 387
-#define FPTOSI 388
-#define INTTOPTR 389
-#define PTRTOINT 390
-#define PHI_TOK 391
-#define SELECT 392
-#define SHL 393
-#define LSHR 394
-#define ASHR 395
-#define VAARG 396
-#define EXTRACTELEMENT 397
-#define INSERTELEMENT 398
-#define SHUFFLEVECTOR 399
+#define ICMP 345
+#define FCMP 346
+#define EQ 347
+#define NE 348
+#define SLT 349
+#define SGT 350
+#define SLE 351
+#define SGE 352
+#define ULT 353
+#define UGT 354
+#define ULE 355
+#define UGE 356
+#define OEQ 357
+#define ONE 358
+#define OLT 359
+#define OGT 360
+#define OLE 361
+#define OGE 362
+#define ORD 363
+#define UNO 364
+#define UEQ 365
+#define UNE 366
+#define MALLOC 367
+#define ALLOCA 368
+#define FREE 369
+#define LOAD 370
+#define STORE 371
+#define GETELEMENTPTR 372
+#define TRUNC 373
+#define ZEXT 374
+#define SEXT 375
+#define FPTRUNC 376
+#define FPEXT 377
+#define BITCAST 378
+#define UITOFP 379
+#define SITOFP 380
+#define FPTOUI 381
+#define FPTOSI 382
+#define INTTOPTR 383
+#define PTRTOINT 384
+#define PHI_TOK 385
+#define SELECT 386
+#define SHL 387
+#define LSHR 388
+#define ASHR 389
+#define VAARG 390
+#define EXTRACTELEMENT 391
+#define INSERTELEMENT 392
+#define SHUFFLEVECTOR 393
 
 
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 855 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y"
+#line 855 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -363,8 +352,8 @@
   llvm::ICmpInst::Predicate         IPredicate;
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
-/* Line 1275 of yacc.c.  */
-#line 368 "llvmAsmParser.tab.h"
+/* Line 1447 of yacc.c.  */
+#line 357 "llvmAsmParser.tab.h"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 41fcb28..fa87821 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -958,9 +958,8 @@
 %token <TermOpVal> RET BR SWITCH INVOKE UNWIND UNREACHABLE
 
 // Binary Operators
-%type  <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
+%type  <BinaryOpVal> ArithmeticOps LogicalOps // Binops Subcatagories
 %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND OR XOR
-%token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE  // Binary Comparators
 %token <OtherOpVal> ICMP FCMP
 %type  <IPredicate> IPredicates
 %type  <FPredicate> FPredicates
@@ -999,7 +998,6 @@
 //
 ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | UREM | SREM | FREM;
 LogicalOps   : AND | OR | XOR;
-SetCondOps   : SETLE | SETGE | SETLT | SETGT | SETEQ | SETNE;
 CastOps      : TRUNC | ZEXT | SEXT | FPTRUNC | FPEXT | BITCAST | 
                UITOFP | SITOFP | FPTOUI | FPTOSI | INTTOPTR | PTRTOINT;
 ShiftOps     : SHL | LSHR | ASHR;
@@ -1574,12 +1572,6 @@
     $$ = ConstantExpr::get($1, $3, $5);
     CHECK_FOR_ERROR
   }
-  | SetCondOps '(' ConstVal ',' ConstVal ')' {
-    if ($3->getType() != $5->getType())
-      GEN_ERROR("setcc operand types must match!");
-    $$ = ConstantExpr::get($1, $3, $5);
-    CHECK_FOR_ERROR
-  }
   | ICMP IPredicates '(' ConstVal ',' ConstVal ')' {
     if ($4->getType() != $6->getType())
       GEN_ERROR("icmp operand types must match!");
@@ -2369,20 +2361,6 @@
       GEN_ERROR("binary operator returned null!");
     delete $2;
   }
-  | SetCondOps Types ValueRef ',' ValueRef {
-    if(isa<PackedType>((*$2).get())) {
-      GEN_ERROR(
-        "PackedTypes currently not supported in setcc instructions!");
-    }
-    Value* tmpVal1 = getVal(*$2, $3);
-    CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*$2, $5);
-    CHECK_FOR_ERROR
-    $$ = new SetCondInst($1, tmpVal1, tmpVal2);
-    if ($$ == 0)
-      GEN_ERROR("binary operator returned null!");
-    delete $2;
-  }
   | ICMP IPredicates Types ValueRef ',' ValueRef  {
     if (isa<PackedType>((*$3).get()))
       GEN_ERROR("Packed types not supported by icmp instruction");
diff --git a/lib/AsmParser/llvmAsmParser.y.cvs b/lib/AsmParser/llvmAsmParser.y.cvs
index 05fc57d..fa87821 100644
--- a/lib/AsmParser/llvmAsmParser.y.cvs
+++ b/lib/AsmParser/llvmAsmParser.y.cvs
@@ -926,7 +926,6 @@
 
 // EUINT64VAL - A positive number within uns. long long range
 %token <UInt64Val> EUINT64VAL
-%type  <SInt64Val> EINT64VAL
 
 %token  <SIntVal>   SINTVAL   // Signed 32 bit ints...
 %token  <UIntVal>   UINTVAL   // Unsigned 32 bit ints...
@@ -959,9 +958,8 @@
 %token <TermOpVal> RET BR SWITCH INVOKE UNWIND UNREACHABLE
 
 // Binary Operators
-%type  <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
+%type  <BinaryOpVal> ArithmeticOps LogicalOps // Binops Subcatagories
 %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND OR XOR
-%token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE  // Binary Comparators
 %token <OtherOpVal> ICMP FCMP
 %type  <IPredicate> IPredicates
 %type  <FPredicate> FPredicates
@@ -995,21 +993,11 @@
   CHECK_FOR_ERROR
 };
 
-
-EINT64VAL : ESINT64VAL;      // These have same type and can't cause problems...
-EINT64VAL : EUINT64VAL {
-  if ($1 > (uint64_t)INT64_MAX)     // Outside of my range!
-    GEN_ERROR("Value too large for type!");
-  $$ = (int64_t)$1;
-  CHECK_FOR_ERROR
-};
-
 // Operations that are notably excluded from this list include:
 // RET, BR, & SWITCH because they end basic blocks and are treated specially.
 //
 ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | UREM | SREM | FREM;
 LogicalOps   : AND | OR | XOR;
-SetCondOps   : SETLE | SETGE | SETLT | SETGT | SETEQ | SETNE;
 CastOps      : TRUNC | ZEXT | SEXT | FPTRUNC | FPEXT | BITCAST | 
                UITOFP | SITOFP | FPTOUI | FPTOSI | INTTOPTR | PTRTOINT;
 ShiftOps     : SHL | LSHR | ASHR;
@@ -1486,7 +1474,13 @@
     delete $1;
     CHECK_FOR_ERROR
   }
-  | SIntType EINT64VAL {      // integral constants
+  | SIntType ESINT64VAL {      // integral constants
+    if (!ConstantInt::isValueValidForType($1, $2))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    $$ = ConstantInt::get($1, $2);
+    CHECK_FOR_ERROR
+  }
+  | SIntType EUINT64VAL {      // integral constants
     if (!ConstantInt::isValueValidForType($1, $2))
       GEN_ERROR("Constant value doesn't fit in type!");
     $$ = ConstantInt::get($1, $2);
@@ -1498,6 +1492,12 @@
     $$ = ConstantInt::get($1, $2);
     CHECK_FOR_ERROR
   }
+  | UIntType ESINT64VAL {
+    if (!ConstantInt::isValueValidForType($1, $2))
+      GEN_ERROR("Constant value doesn't fit in type!");
+    $$ = ConstantInt::get($1, $2);
+    CHECK_FOR_ERROR
+  }
   | BOOL TRUETOK {                      // Boolean constants
     $$ = ConstantBool::getTrue();
     CHECK_FOR_ERROR
@@ -1572,12 +1572,6 @@
     $$ = ConstantExpr::get($1, $3, $5);
     CHECK_FOR_ERROR
   }
-  | SetCondOps '(' ConstVal ',' ConstVal ')' {
-    if ($3->getType() != $5->getType())
-      GEN_ERROR("setcc operand types must match!");
-    $$ = ConstantExpr::get($1, $3, $5);
-    CHECK_FOR_ERROR
-  }
   | ICMP IPredicates '(' ConstVal ',' ConstVal ')' {
     if ($4->getType() != $6->getType())
       GEN_ERROR("icmp operand types must match!");
@@ -2367,20 +2361,6 @@
       GEN_ERROR("binary operator returned null!");
     delete $2;
   }
-  | SetCondOps Types ValueRef ',' ValueRef {
-    if(isa<PackedType>((*$2).get())) {
-      GEN_ERROR(
-        "PackedTypes currently not supported in setcc instructions!");
-    }
-    Value* tmpVal1 = getVal(*$2, $3);
-    CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*$2, $5);
-    CHECK_FOR_ERROR
-    $$ = new SetCondInst($1, tmpVal1, tmpVal2);
-    if ($$ == 0)
-      GEN_ERROR("binary operator returned null!");
-    delete $2;
-  }
   | ICMP IPredicates Types ValueRef ',' ValueRef  {
     if (isa<PackedType>((*$3).get()))
       GEN_ERROR("Packed types not supported by icmp instruction");
