/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 256, 256, 259, 267, 279, 280, 283, 305, 306,
- 309, 324, 327, 332, 339, 340, 341, 342, 343, 344,
- 345, 348, 349, 352, 358, 365, 372, 380, 387, 395,
- 440, 447, 453, 454, 455, 456, 457, 458, 459, 460,
- 461, 462, 463, 464, 467, 480, 493, 506, 528, 537,
- 570, 577, 592, 642, 684, 695, 716, 726, 732, 763,
- 780, 780, 782, 789, 801, 802, 803, 806, 820, 834,
- 852, 863, 875, 877, 878, 879, 880, 883, 883, 883,
- 883, 884, 887, 888, 889, 890, 891, 892, 895, 913,
- 917, 923, 927, 931, 935, 944, 953, 957, 962, 968,
- 979, 979, 980, 982, 986, 990, 994, 1000, 1000, 1002,
- 1018, 1041, 1044, 1055, 1061, 1067, 1068, 1075, 1081, 1087,
- 1095, 1101, 1107, 1115, 1121, 1127, 1135, 1136, 1139, 1140,
- 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1152,
- 1161, 1165, 1169, 1175, 1184, 1188, 1192, 1201, 1205, 1211,
- 1217, 1224, 1229, 1237, 1247, 1249, 1257, 1263, 1267, 1271,
- 1277, 1288, 1297, 1301, 1306, 1310, 1314, 1318, 1324, 1331,
- 1335, 1341, 1349, 1360, 1367, 1371, 1377, 1387, 1398, 1402,
- 1420, 1429, 1432, 1438, 1442, 1446, 1452, 1463, 1468, 1473,
- 1478, 1483, 1488, 1496, 1499, 1504, 1517, 1525, 1536, 1544,
- 1544, 1546, 1546, 1548, 1558, 1563, 1570, 1580, 1589, 1594,
- 1601, 1611, 1621, 1633, 1633, 1634, 1634, 1636, 1646, 1654,
- 1664, 1672, 1680, 1689, 1700, 1704, 1710, 1711, 1712, 1715,
- 1715, 1718, 1718, 1721, 1727, 1735, 1748, 1757, 1766, 1770,
- 1779, 1788, 1799, 1806, 1811, 1820, 1832, 1835, 1844, 1855,
- 1856, 1857, 1860, 1861, 1862, 1865, 1866, 1869, 1870, 1873,
- 1874, 1877, 1888, 1899, 1910
+ 0, 268, 268, 271, 279, 291, 292, 295, 317, 318,
+ 321, 336, 339, 344, 351, 352, 353, 354, 355, 356,
+ 357, 360, 361, 362, 365, 371, 377, 383, 390, 396,
+ 403, 447, 452, 462, 506, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 526, 538, 546,
+ 563, 570, 589, 600, 620, 645, 654, 687, 694, 709,
+ 759, 801, 812, 833, 843, 849, 880, 897, 897, 899,
- 906, 918, 919, 920, 923, 935, 947, 965, 976, 988,
- 990, 991, 992, 993, 996, 996, 996, 996, 997, 1000,
- 1004, 1009, 1016, 1023, 1030, 1053, 1076, 1077, 1078, 1079,
- 1080, 1081, 1084, 1102, 1106, 1112, 1116, 1120, 1124, 1133,
- 1142, 1146, 1151, 1157, 1168, 1168, 1169, 1171, 1175, 1179,
- 1183, 1189, 1189, 1191, 1207, 1230, 1233, 1244, 1250, 1256,
- 1257, 1264, 1270, 1276, 1284, 1290, 1296, 1304, 1310, 1316,
- 1324, 1325, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335,
- 1336, 1337, 1338, 1341, 1350, 1354, 1358, 1364, 1373, 1377,
- 1381, 1390, 1394, 1400, 1406, 1413, 1418, 1426, 1436, 1438,
- 1446, 1452, 1456, 1460, 1466, 1477, 1486, 1490, 1495, 1499,
- 1503, 1507, 1513, 1520, 1524, 1530, 1538, 1549, 1556, 1560,
- 1566, 1576, 1587, 1591, 1609, 1618, 1621, 1627, 1631, 1635,
- 1641, 1652, 1657, 1662, 1667, 1672, 1677, 1685, 1688, 1693,
- 1706, 1714, 1725, 1733, 1733, 1735, 1735, 1737, 1747, 1752,
- 1759, 1769, 1778, 1783, 1790, 1800, 1810, 1822, 1822, 1823,
- 1823, 1825, 1835, 1843, 1853, 1861, 1869, 1878, 1889, 1893,
- 1899, 1900, 1901, 1904, 1904, 1907, 1942, 1946, 1946, 1949,
- 1955, 1963, 1976, 1985, 1994, 1998, 2007, 2016, 2027, 2034,
- 2039, 2048, 2060, 2063, 2072, 2083, 2084, 2085, 2088, 2089,
- 2090, 2093, 2094, 2097, 2098, 2101, 2102, 2105, 2116, 2127,
- 2138, 2159, 2160
++ 906, 918, 919, 920, 923, 937, 951, 969, 980, 992,
++ 994, 995, 996, 997, 1000, 1000, 1000, 1000, 1001, 1004,
++ 1008, 1013, 1020, 1027, 1034, 1057, 1080, 1081, 1082, 1083,
++ 1084, 1085, 1088, 1106, 1110, 1116, 1120, 1124, 1128, 1137,
++ 1146, 1150, 1155, 1161, 1172, 1172, 1173, 1175, 1179, 1183,
++ 1187, 1193, 1193, 1195, 1211, 1234, 1237, 1248, 1254, 1260,
++ 1261, 1268, 1274, 1280, 1288, 1294, 1300, 1308, 1314, 1320,
++ 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
++ 1340, 1341, 1342, 1345, 1354, 1358, 1362, 1368, 1377, 1381,
++ 1385, 1394, 1398, 1404, 1410, 1417, 1422, 1430, 1440, 1442,
++ 1450, 1456, 1460, 1464, 1470, 1481, 1490, 1494, 1499, 1503,
++ 1507, 1511, 1517, 1524, 1528, 1534, 1542, 1553, 1560, 1564,
++ 1570, 1580, 1591, 1595, 1613, 1622, 1625, 1631, 1635, 1639,
++ 1645, 1656, 1661, 1666, 1671, 1676, 1681, 1689, 1692, 1697,
++ 1710, 1718, 1729, 1737, 1737, 1739, 1739, 1741, 1751, 1756,
++ 1763, 1773, 1782, 1787, 1794, 1804, 1814, 1826, 1826, 1827,
++ 1827, 1829, 1839, 1847, 1857, 1865, 1873, 1882, 1893, 1897,
++ 1903, 1904, 1905, 1908, 1908, 1911, 1946, 1950, 1950, 1953,
++ 1959, 1967, 1980, 1989, 1998, 2002, 2011, 2020, 2031, 2038,
++ 2043, 2052, 2064, 2067, 2076, 2087, 2088, 2089, 2092, 2093,
++ 2094, 2097, 2098, 2101, 2102, 2105, 2106, 2109, 2120, 2131,
++ 2142, 2163, 2164
};
#endif
{ (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;}
break;
- case 67:
+ case 74:
/* Line 1455 of yacc.c */
- #line 807 "program_parse.y"
+ #line 924 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
- yyerror(& (yylsp[(1) - (1)]), state,
- "relative address offset too large (positive)");
+ char s[100];
+ _mesa_snprintf(s, sizeof(s),
+ "relative address offset too large (%d)", (yyvsp[(1) - (1)].integer));
+ yyerror(& (yylsp[(1) - (1)]), state, s);
YYERROR;
} else {
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 68:
+ case 75:
/* Line 1455 of yacc.c */
- #line 821 "program_parse.y"
-#line 936 "program_parse.y"
++#line 938 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
- yyerror(& (yylsp[(1) - (1)]), state,
- "relative address offset too large (negative)");
+ char s[100];
+ _mesa_snprintf(s, sizeof(s),
+ "relative address offset too large (%d)", (yyvsp[(1) - (1)].integer));
+ yyerror(& (yylsp[(1) - (1)]), state, s);
YYERROR;
} else {
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 69:
+ case 76:
/* Line 1455 of yacc.c */
- #line 835 "program_parse.y"
-#line 948 "program_parse.y"
++#line 952 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
;}
break;
- case 70:
+ case 77:
/* Line 1455 of yacc.c */
- #line 853 "program_parse.y"
-#line 966 "program_parse.y"
++#line 970 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector");
;}
break;
- case 71:
+ case 78:
/* Line 1455 of yacc.c */
- #line 864 "program_parse.y"
-#line 977 "program_parse.y"
++#line 981 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state,
;}
break;
- case 76:
-
- /* Line 1455 of yacc.c */
- #line 880 "program_parse.y"
- { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
- break;
-
- case 81:
+ case 83:
/* Line 1455 of yacc.c */
- #line 884 "program_parse.y"
-#line 993 "program_parse.y"
++#line 997 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 88:
/* Line 1455 of yacc.c */
- #line 896 "program_parse.y"
- {
- struct asm_symbol *const s =
- declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
-
- if (s == NULL) {
- YYERROR;
- } else {
- s->attrib_binding = (yyvsp[(4) - (4)].attrib);
- state->InputsBound |= (1U << s->attrib_binding);
-
- if (!validate_inputs(& (yylsp[(4) - (4)]), state)) {
- YYERROR;
- }
- }
- ;}
-#line 997 "program_parse.y"
++#line 1001 "program_parse.y"
+ { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 89:
/* Line 1455 of yacc.c */
- #line 914 "program_parse.y"
-#line 1001 "program_parse.y"
++#line 1005 "program_parse.y"
{
- (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
+ (yyval.dst_reg) = (yyvsp[(2) - (3)].dst_reg);
;}
break;
case 90:
/* Line 1455 of yacc.c */
- #line 918 "program_parse.y"
-#line 1005 "program_parse.y"
++#line 1009 "program_parse.y"
{
- (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
+ (yyval.dst_reg) = (yyvsp[(2) - (3)].dst_reg);
;}
break;
case 91:
/* Line 1455 of yacc.c */
- #line 924 "program_parse.y"
-#line 1009 "program_parse.y"
++#line 1013 "program_parse.y"
{
- (yyval.attrib) = VERT_ATTRIB_POS;
+ (yyval.dst_reg).CondMask = COND_TR;
+ (yyval.dst_reg).CondSwizzle = SWIZZLE_NOOP;
+ (yyval.dst_reg).CondSrc = 0;
;}
break;
case 92:
/* Line 1455 of yacc.c */
- #line 928 "program_parse.y"
-#line 1017 "program_parse.y"
++#line 1021 "program_parse.y"
{
- (yyval.attrib) = VERT_ATTRIB_WEIGHT;
+ (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg);
+ (yyval.dst_reg).CondSwizzle = (yyvsp[(2) - (2)].swiz_mask).swizzle;
;}
break;
case 93:
/* Line 1455 of yacc.c */
- #line 932 "program_parse.y"
-#line 1024 "program_parse.y"
++#line 1028 "program_parse.y"
{
- (yyval.attrib) = VERT_ATTRIB_NORMAL;
+ (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg);
+ (yyval.dst_reg).CondSwizzle = (yyvsp[(2) - (2)].swiz_mask).swizzle;
;}
break;
case 94:
/* Line 1455 of yacc.c */
- #line 936 "program_parse.y"
-#line 1031 "program_parse.y"
++#line 1035 "program_parse.y"
{
- if (!state->ctx->Extensions.EXT_secondary_color) {
- yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported");
+ const int cond = _mesa_parse_cc((yyvsp[(1) - (1)].string));
+ if ((cond == 0) || ((yyvsp[(1) - (1)].string)[2] != '\0')) {
+ char *const err_str =
+ make_error_string("invalid condition code \"%s\"", (yyvsp[(1) - (1)].string));
+
+ yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL)
+ ? err_str : "invalid condition code");
+
+ if (err_str != NULL) {
+ _mesa_free(err_str);
+ }
+
YYERROR;
}
case 95:
/* Line 1455 of yacc.c */
- #line 945 "program_parse.y"
-#line 1054 "program_parse.y"
++#line 1058 "program_parse.y"
{
- if (!state->ctx->Extensions.EXT_fog_coord) {
- yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported");
+ const int cond = _mesa_parse_cc((yyvsp[(1) - (1)].string));
+ if ((cond == 0) || ((yyvsp[(1) - (1)].string)[2] != '\0')) {
+ char *const err_str =
+ make_error_string("invalid condition code \"%s\"", (yyvsp[(1) - (1)].string));
+
+ yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL)
+ ? err_str : "invalid condition code");
+
+ if (err_str != NULL) {
+ _mesa_free(err_str);
+ }
+
YYERROR;
}
;}
break;
- case 96:
+ case 102:
/* Line 1455 of yacc.c */
- #line 954 "program_parse.y"
-#line 1085 "program_parse.y"
++#line 1089 "program_parse.y"
{
- (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
- ;}
- break;
-
- case 97:
+ struct asm_symbol *const s =
+ declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
- /* Line 1455 of yacc.c */
- #line 958 "program_parse.y"
- {
+ if (s == NULL) {
+ YYERROR;
+ } else {
+ s->attrib_binding = (yyvsp[(4) - (4)].attrib);
+ state->InputsBound |= (1U << s->attrib_binding);
+
+ if (!validate_inputs(& (yylsp[(4) - (4)]), state)) {
+ YYERROR;
+ }
+ }
+ ;}
+ break;
+
+ case 103:
+
+ /* Line 1455 of yacc.c */
-#line 1103 "program_parse.y"
++#line 1107 "program_parse.y"
+ {
+ (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
+ ;}
+ break;
+
+ case 104:
+
+ /* Line 1455 of yacc.c */
-#line 1107 "program_parse.y"
++#line 1111 "program_parse.y"
+ {
+ (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
+ ;}
+ break;
+
+ case 105:
+
+ /* Line 1455 of yacc.c */
-#line 1113 "program_parse.y"
++#line 1117 "program_parse.y"
+ {
+ (yyval.attrib) = VERT_ATTRIB_POS;
+ ;}
+ break;
+
+ case 106:
+
+ /* Line 1455 of yacc.c */
-#line 1117 "program_parse.y"
++#line 1121 "program_parse.y"
+ {
+ (yyval.attrib) = VERT_ATTRIB_WEIGHT;
+ ;}
+ break;
+
+ case 107:
+
+ /* Line 1455 of yacc.c */
-#line 1121 "program_parse.y"
++#line 1125 "program_parse.y"
+ {
+ (yyval.attrib) = VERT_ATTRIB_NORMAL;
+ ;}
+ break;
+
+ case 108:
+
+ /* Line 1455 of yacc.c */
-#line 1125 "program_parse.y"
++#line 1129 "program_parse.y"
+ {
+ if (!state->ctx->Extensions.EXT_secondary_color) {
+ yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported");
+ YYERROR;
+ }
+
+ (yyval.attrib) = VERT_ATTRIB_COLOR0 + (yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+ case 109:
+
+ /* Line 1455 of yacc.c */
-#line 1134 "program_parse.y"
++#line 1138 "program_parse.y"
+ {
+ if (!state->ctx->Extensions.EXT_fog_coord) {
+ yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported");
+ YYERROR;
+ }
+
+ (yyval.attrib) = VERT_ATTRIB_FOG;
+ ;}
+ break;
+
+ case 110:
+
+ /* Line 1455 of yacc.c */
-#line 1143 "program_parse.y"
++#line 1147 "program_parse.y"
+ {
+ (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+ case 111:
+
+ /* Line 1455 of yacc.c */
-#line 1147 "program_parse.y"
++#line 1151 "program_parse.y"
+ {
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
;}
break;
- case 98:
+ case 112:
/* Line 1455 of yacc.c */
- #line 963 "program_parse.y"
-#line 1152 "program_parse.y"
++#line 1156 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer);
;}
break;
- case 99:
+ case 113:
/* Line 1455 of yacc.c */
- #line 969 "program_parse.y"
-#line 1158 "program_parse.y"
++#line 1162 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference");
;}
break;
- case 103:
+ case 117:
/* Line 1455 of yacc.c */
- #line 983 "program_parse.y"
-#line 1172 "program_parse.y"
++#line 1176 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_WPOS;
;}
break;
- case 104:
+ case 118:
/* Line 1455 of yacc.c */
- #line 987 "program_parse.y"
-#line 1176 "program_parse.y"
++#line 1180 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer);
;}
break;
- case 105:
+ case 119:
/* Line 1455 of yacc.c */
- #line 991 "program_parse.y"
-#line 1180 "program_parse.y"
++#line 1184 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_FOGC;
;}
break;
- case 106:
+ case 120:
/* Line 1455 of yacc.c */
- #line 995 "program_parse.y"
-#line 1184 "program_parse.y"
++#line 1188 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
break;
- case 109:
+ case 123:
/* Line 1455 of yacc.c */
- #line 1003 "program_parse.y"
-#line 1192 "program_parse.y"
++#line 1196 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)]));
;}
break;
- case 110:
+ case 124:
/* Line 1455 of yacc.c */
- #line 1019 "program_parse.y"
-#line 1208 "program_parse.y"
++#line 1212 "program_parse.y"
{
if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
yyerror(& (yylsp[(4) - (6)]), state,
;}
break;
- case 111:
+ case 125:
/* Line 1455 of yacc.c */
- #line 1041 "program_parse.y"
-#line 1230 "program_parse.y"
++#line 1234 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 112:
+ case 126:
/* Line 1455 of yacc.c */
- #line 1045 "program_parse.y"
-#line 1234 "program_parse.y"
++#line 1238 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
;}
break;
- case 113:
+ case 127:
/* Line 1455 of yacc.c */
- #line 1056 "program_parse.y"
-#line 1245 "program_parse.y"
++#line 1249 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym);
;}
break;
- case 114:
+ case 128:
/* Line 1455 of yacc.c */
- #line 1062 "program_parse.y"
-#line 1251 "program_parse.y"
++#line 1255 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym);
;}
break;
- case 116:
+ case 130:
/* Line 1455 of yacc.c */
- #line 1069 "program_parse.y"
-#line 1258 "program_parse.y"
++#line 1262 "program_parse.y"
{
(yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length;
(yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym);
;}
break;
- case 117:
+ case 131:
/* Line 1455 of yacc.c */
- #line 1076 "program_parse.y"
-#line 1265 "program_parse.y"
++#line 1269 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 118:
+ case 132:
/* Line 1455 of yacc.c */
- #line 1082 "program_parse.y"
-#line 1271 "program_parse.y"
++#line 1275 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 119:
+ case 133:
/* Line 1455 of yacc.c */
- #line 1088 "program_parse.y"
-#line 1277 "program_parse.y"
++#line 1281 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 120:
+ case 134:
/* Line 1455 of yacc.c */
- #line 1096 "program_parse.y"
-#line 1285 "program_parse.y"
++#line 1289 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 121:
+ case 135:
/* Line 1455 of yacc.c */
- #line 1102 "program_parse.y"
-#line 1291 "program_parse.y"
++#line 1295 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 122:
+ case 136:
/* Line 1455 of yacc.c */
- #line 1108 "program_parse.y"
-#line 1297 "program_parse.y"
++#line 1301 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 123:
+ case 137:
/* Line 1455 of yacc.c */
- #line 1116 "program_parse.y"
-#line 1305 "program_parse.y"
++#line 1309 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 124:
+ case 138:
/* Line 1455 of yacc.c */
- #line 1122 "program_parse.y"
-#line 1311 "program_parse.y"
++#line 1315 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 125:
+ case 139:
/* Line 1455 of yacc.c */
- #line 1128 "program_parse.y"
-#line 1317 "program_parse.y"
++#line 1321 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
;}
break;
- case 126:
+ case 140:
/* Line 1455 of yacc.c */
- #line 1135 "program_parse.y"
-#line 1324 "program_parse.y"
++#line 1328 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;}
break;
- case 127:
+ case 141:
/* Line 1455 of yacc.c */
- #line 1136 "program_parse.y"
-#line 1325 "program_parse.y"
++#line 1329 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 128:
+ case 142:
/* Line 1455 of yacc.c */
- #line 1139 "program_parse.y"
-#line 1328 "program_parse.y"
++#line 1332 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 129:
+ case 143:
/* Line 1455 of yacc.c */
- #line 1140 "program_parse.y"
-#line 1329 "program_parse.y"
++#line 1333 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 130:
+ case 144:
/* Line 1455 of yacc.c */
- #line 1141 "program_parse.y"
-#line 1330 "program_parse.y"
++#line 1334 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 131:
+ case 145:
/* Line 1455 of yacc.c */
- #line 1142 "program_parse.y"
-#line 1331 "program_parse.y"
++#line 1335 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 132:
+ case 146:
/* Line 1455 of yacc.c */
- #line 1143 "program_parse.y"
-#line 1332 "program_parse.y"
++#line 1336 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 133:
+ case 147:
/* Line 1455 of yacc.c */
- #line 1144 "program_parse.y"
-#line 1333 "program_parse.y"
++#line 1337 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 134:
+ case 148:
/* Line 1455 of yacc.c */
- #line 1145 "program_parse.y"
-#line 1334 "program_parse.y"
++#line 1338 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 135:
+ case 149:
/* Line 1455 of yacc.c */
- #line 1146 "program_parse.y"
-#line 1335 "program_parse.y"
++#line 1339 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 136:
+ case 150:
/* Line 1455 of yacc.c */
- #line 1147 "program_parse.y"
-#line 1336 "program_parse.y"
++#line 1340 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 137:
+ case 151:
/* Line 1455 of yacc.c */
- #line 1148 "program_parse.y"
-#line 1337 "program_parse.y"
++#line 1341 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 138:
+ case 152:
/* Line 1455 of yacc.c */
- #line 1149 "program_parse.y"
-#line 1338 "program_parse.y"
++#line 1342 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
- case 139:
+ case 153:
/* Line 1455 of yacc.c */
- #line 1153 "program_parse.y"
-#line 1342 "program_parse.y"
++#line 1346 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_MATERIAL;
;}
break;
- case 140:
+ case 154:
/* Line 1455 of yacc.c */
- #line 1162 "program_parse.y"
-#line 1351 "program_parse.y"
++#line 1355 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 141:
+ case 155:
/* Line 1455 of yacc.c */
- #line 1166 "program_parse.y"
-#line 1355 "program_parse.y"
++#line 1359 "program_parse.y"
{
(yyval.integer) = STATE_EMISSION;
;}
break;
- case 142:
+ case 156:
/* Line 1455 of yacc.c */
- #line 1170 "program_parse.y"
-#line 1359 "program_parse.y"
++#line 1363 "program_parse.y"
{
(yyval.integer) = STATE_SHININESS;
;}
break;
- case 143:
+ case 157:
/* Line 1455 of yacc.c */
- #line 1176 "program_parse.y"
-#line 1365 "program_parse.y"
++#line 1369 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHT;
;}
break;
- case 144:
+ case 158:
/* Line 1455 of yacc.c */
- #line 1185 "program_parse.y"
-#line 1374 "program_parse.y"
++#line 1378 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 145:
+ case 159:
/* Line 1455 of yacc.c */
- #line 1189 "program_parse.y"
-#line 1378 "program_parse.y"
++#line 1382 "program_parse.y"
{
(yyval.integer) = STATE_POSITION;
;}
break;
- case 146:
+ case 160:
/* Line 1455 of yacc.c */
- #line 1193 "program_parse.y"
-#line 1382 "program_parse.y"
++#line 1386 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_point_parameters) {
yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported");
;}
break;
- case 147:
+ case 161:
/* Line 1455 of yacc.c */
- #line 1202 "program_parse.y"
-#line 1391 "program_parse.y"
++#line 1395 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
break;
- case 148:
+ case 162:
/* Line 1455 of yacc.c */
- #line 1206 "program_parse.y"
-#line 1395 "program_parse.y"
++#line 1399 "program_parse.y"
{
(yyval.integer) = STATE_HALF_VECTOR;
;}
break;
- case 149:
+ case 163:
/* Line 1455 of yacc.c */
- #line 1212 "program_parse.y"
-#line 1401 "program_parse.y"
++#line 1405 "program_parse.y"
{
(yyval.integer) = STATE_SPOT_DIRECTION;
;}
break;
- case 150:
+ case 164:
/* Line 1455 of yacc.c */
- #line 1218 "program_parse.y"
-#line 1407 "program_parse.y"
++#line 1411 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
;}
break;
- case 151:
+ case 165:
/* Line 1455 of yacc.c */
- #line 1225 "program_parse.y"
-#line 1414 "program_parse.y"
++#line 1418 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
;}
break;
- case 152:
+ case 166:
/* Line 1455 of yacc.c */
- #line 1230 "program_parse.y"
-#line 1419 "program_parse.y"
++#line 1423 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
;}
break;
- case 153:
+ case 167:
/* Line 1455 of yacc.c */
- #line 1238 "program_parse.y"
-#line 1427 "program_parse.y"
++#line 1431 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTPROD;
;}
break;
- case 155:
+ case 169:
/* Line 1455 of yacc.c */
- #line 1250 "program_parse.y"
-#line 1439 "program_parse.y"
++#line 1443 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 156:
+ case 170:
/* Line 1455 of yacc.c */
- #line 1258 "program_parse.y"
-#line 1447 "program_parse.y"
++#line 1451 "program_parse.y"
{
(yyval.integer) = STATE_TEXENV_COLOR;
;}
break;
- case 157:
+ case 171:
/* Line 1455 of yacc.c */
- #line 1264 "program_parse.y"
-#line 1453 "program_parse.y"
++#line 1457 "program_parse.y"
{
(yyval.integer) = STATE_AMBIENT;
;}
break;
- case 158:
+ case 172:
/* Line 1455 of yacc.c */
- #line 1268 "program_parse.y"
-#line 1457 "program_parse.y"
++#line 1461 "program_parse.y"
{
(yyval.integer) = STATE_DIFFUSE;
;}
break;
- case 159:
+ case 173:
/* Line 1455 of yacc.c */
- #line 1272 "program_parse.y"
-#line 1461 "program_parse.y"
++#line 1465 "program_parse.y"
{
(yyval.integer) = STATE_SPECULAR;
;}
break;
- case 160:
+ case 174:
/* Line 1455 of yacc.c */
- #line 1278 "program_parse.y"
-#line 1467 "program_parse.y"
++#line 1471 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
;}
break;
- case 161:
+ case 175:
/* Line 1455 of yacc.c */
- #line 1289 "program_parse.y"
-#line 1478 "program_parse.y"
++#line 1482 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_TEXGEN;
;}
break;
- case 162:
+ case 176:
/* Line 1455 of yacc.c */
- #line 1298 "program_parse.y"
-#line 1487 "program_parse.y"
++#line 1491 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S;
;}
break;
- case 163:
+ case 177:
/* Line 1455 of yacc.c */
- #line 1302 "program_parse.y"
-#line 1491 "program_parse.y"
++#line 1495 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_OBJECT_S;
;}
break;
- case 164:
+ case 178:
/* Line 1455 of yacc.c */
- #line 1307 "program_parse.y"
-#line 1496 "program_parse.y"
++#line 1500 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
;}
break;
- case 165:
+ case 179:
/* Line 1455 of yacc.c */
- #line 1311 "program_parse.y"
-#line 1500 "program_parse.y"
++#line 1504 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
;}
break;
- case 166:
+ case 180:
/* Line 1455 of yacc.c */
- #line 1315 "program_parse.y"
-#line 1504 "program_parse.y"
++#line 1508 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
;}
break;
- case 167:
+ case 181:
/* Line 1455 of yacc.c */
- #line 1319 "program_parse.y"
-#line 1508 "program_parse.y"
++#line 1512 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
;}
break;
- case 168:
+ case 182:
/* Line 1455 of yacc.c */
- #line 1325 "program_parse.y"
-#line 1514 "program_parse.y"
++#line 1518 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 169:
+ case 183:
/* Line 1455 of yacc.c */
- #line 1332 "program_parse.y"
-#line 1521 "program_parse.y"
++#line 1525 "program_parse.y"
{
(yyval.integer) = STATE_FOG_COLOR;
;}
break;
- case 170:
+ case 184:
/* Line 1455 of yacc.c */
- #line 1336 "program_parse.y"
-#line 1525 "program_parse.y"
++#line 1529 "program_parse.y"
{
(yyval.integer) = STATE_FOG_PARAMS;
;}
break;
- case 171:
+ case 185:
/* Line 1455 of yacc.c */
- #line 1342 "program_parse.y"
-#line 1531 "program_parse.y"
++#line 1535 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_CLIPPLANE;
;}
break;
- case 172:
+ case 186:
/* Line 1455 of yacc.c */
- #line 1350 "program_parse.y"
-#line 1539 "program_parse.y"
++#line 1543 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
;}
break;
- case 173:
+ case 187:
/* Line 1455 of yacc.c */
- #line 1361 "program_parse.y"
-#line 1550 "program_parse.y"
++#line 1554 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 174:
+ case 188:
/* Line 1455 of yacc.c */
- #line 1368 "program_parse.y"
-#line 1557 "program_parse.y"
++#line 1561 "program_parse.y"
{
(yyval.integer) = STATE_POINT_SIZE;
;}
break;
- case 175:
+ case 189:
/* Line 1455 of yacc.c */
- #line 1372 "program_parse.y"
-#line 1561 "program_parse.y"
++#line 1565 "program_parse.y"
{
(yyval.integer) = STATE_POINT_ATTENUATION;
;}
break;
- case 176:
+ case 190:
/* Line 1455 of yacc.c */
- #line 1378 "program_parse.y"
-#line 1567 "program_parse.y"
++#line 1571 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
;}
break;
- case 177:
+ case 191:
/* Line 1455 of yacc.c */
- #line 1388 "program_parse.y"
-#line 1577 "program_parse.y"
++#line 1581 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
;}
break;
- case 178:
+ case 192:
/* Line 1455 of yacc.c */
- #line 1398 "program_parse.y"
-#line 1587 "program_parse.y"
++#line 1591 "program_parse.y"
{
(yyval.state)[2] = 0;
(yyval.state)[3] = 3;
;}
break;
- case 179:
+ case 193:
/* Line 1455 of yacc.c */
- #line 1403 "program_parse.y"
-#line 1592 "program_parse.y"
++#line 1596 "program_parse.y"
{
/* It seems logical that the matrix row range specifier would have
* to specify a range or more than one row (i.e., $5 > $3).
;}
break;
- case 180:
+ case 194:
/* Line 1455 of yacc.c */
- #line 1421 "program_parse.y"
-#line 1610 "program_parse.y"
++#line 1614 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
;}
break;
- case 181:
+ case 195:
/* Line 1455 of yacc.c */
- #line 1429 "program_parse.y"
-#line 1618 "program_parse.y"
++#line 1622 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 182:
+ case 196:
/* Line 1455 of yacc.c */
- #line 1433 "program_parse.y"
-#line 1622 "program_parse.y"
++#line 1626 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 183:
+ case 197:
/* Line 1455 of yacc.c */
- #line 1439 "program_parse.y"
-#line 1628 "program_parse.y"
++#line 1632 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVERSE;
;}
break;
- case 184:
+ case 198:
/* Line 1455 of yacc.c */
- #line 1443 "program_parse.y"
-#line 1632 "program_parse.y"
++#line 1636 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_TRANSPOSE;
;}
break;
- case 185:
+ case 199:
/* Line 1455 of yacc.c */
- #line 1447 "program_parse.y"
-#line 1636 "program_parse.y"
++#line 1640 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVTRANS;
;}
break;
- case 186:
+ case 200:
/* Line 1455 of yacc.c */
- #line 1453 "program_parse.y"
-#line 1642 "program_parse.y"
++#line 1646 "program_parse.y"
{
if ((yyvsp[(1) - (1)].integer) > 3) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
;}
break;
- case 187:
+ case 201:
/* Line 1455 of yacc.c */
- #line 1464 "program_parse.y"
-#line 1653 "program_parse.y"
++#line 1657 "program_parse.y"
{
(yyval.state)[0] = STATE_MODELVIEW_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 188:
+ case 202:
/* Line 1455 of yacc.c */
- #line 1469 "program_parse.y"
-#line 1658 "program_parse.y"
++#line 1662 "program_parse.y"
{
(yyval.state)[0] = STATE_PROJECTION_MATRIX;
(yyval.state)[1] = 0;
;}
break;
- case 189:
+ case 203:
/* Line 1455 of yacc.c */
- #line 1474 "program_parse.y"
-#line 1663 "program_parse.y"
++#line 1667 "program_parse.y"
{
(yyval.state)[0] = STATE_MVP_MATRIX;
(yyval.state)[1] = 0;
;}
break;
- case 190:
+ case 204:
/* Line 1455 of yacc.c */
- #line 1479 "program_parse.y"
-#line 1668 "program_parse.y"
++#line 1672 "program_parse.y"
{
(yyval.state)[0] = STATE_TEXTURE_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 191:
+ case 205:
/* Line 1455 of yacc.c */
- #line 1484 "program_parse.y"
-#line 1673 "program_parse.y"
++#line 1677 "program_parse.y"
{
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
;}
break;
- case 192:
+ case 206:
/* Line 1455 of yacc.c */
- #line 1489 "program_parse.y"
-#line 1678 "program_parse.y"
++#line 1682 "program_parse.y"
{
(yyval.state)[0] = STATE_PROGRAM_MATRIX;
(yyval.state)[1] = (yyvsp[(3) - (4)].integer);
;}
break;
- case 193:
+ case 207:
/* Line 1455 of yacc.c */
- #line 1496 "program_parse.y"
-#line 1685 "program_parse.y"
++#line 1689 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 194:
+ case 208:
/* Line 1455 of yacc.c */
- #line 1500 "program_parse.y"
-#line 1689 "program_parse.y"
++#line 1693 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (3)].integer);
;}
break;
- case 195:
+ case 209:
/* Line 1455 of yacc.c */
- #line 1505 "program_parse.y"
-#line 1694 "program_parse.y"
++#line 1698 "program_parse.y"
{
/* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
* zero is valid.
;}
break;
- case 196:
+ case 210:
/* Line 1455 of yacc.c */
- #line 1518 "program_parse.y"
-#line 1707 "program_parse.y"
++#line 1711 "program_parse.y"
{
/* Since GL_ARB_matrix_palette isn't supported, just let any value
* through here. The error will be generated later.
;}
break;
- case 197:
+ case 211:
/* Line 1455 of yacc.c */
- #line 1526 "program_parse.y"
-#line 1715 "program_parse.y"
++#line 1719 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
;}
break;
- case 198:
+ case 212:
/* Line 1455 of yacc.c */
- #line 1537 "program_parse.y"
-#line 1726 "program_parse.y"
++#line 1730 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_DEPTH_RANGE;
;}
break;
- case 203:
+ case 217:
/* Line 1455 of yacc.c */
- #line 1549 "program_parse.y"
-#line 1738 "program_parse.y"
++#line 1742 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 204:
+ case 218:
/* Line 1455 of yacc.c */
- #line 1559 "program_parse.y"
-#line 1748 "program_parse.y"
++#line 1752 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
;}
break;
- case 205:
+ case 219:
/* Line 1455 of yacc.c */
- #line 1564 "program_parse.y"
-#line 1753 "program_parse.y"
++#line 1757 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 206:
+ case 220:
/* Line 1455 of yacc.c */
- #line 1571 "program_parse.y"
-#line 1760 "program_parse.y"
++#line 1764 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 207:
+ case 221:
/* Line 1455 of yacc.c */
- #line 1581 "program_parse.y"
-#line 1770 "program_parse.y"
++#line 1774 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 208:
+ case 222:
/* Line 1455 of yacc.c */
- #line 1590 "program_parse.y"
-#line 1779 "program_parse.y"
++#line 1783 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
;}
break;
- case 209:
+ case 223:
/* Line 1455 of yacc.c */
- #line 1595 "program_parse.y"
-#line 1784 "program_parse.y"
++#line 1788 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 210:
+ case 224:
/* Line 1455 of yacc.c */
- #line 1602 "program_parse.y"
-#line 1791 "program_parse.y"
++#line 1795 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 211:
+ case 225:
/* Line 1455 of yacc.c */
- #line 1612 "program_parse.y"
-#line 1801 "program_parse.y"
++#line 1805 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
;}
break;
- case 212:
+ case 226:
/* Line 1455 of yacc.c */
- #line 1622 "program_parse.y"
-#line 1811 "program_parse.y"
++#line 1815 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
;}
break;
- case 217:
+ case 231:
/* Line 1455 of yacc.c */
- #line 1637 "program_parse.y"
-#line 1826 "program_parse.y"
++#line 1830 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
;}
break;
- case 218:
+ case 232:
/* Line 1455 of yacc.c */
- #line 1647 "program_parse.y"
-#line 1836 "program_parse.y"
++#line 1840 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
;}
break;
- case 219:
+ case 233:
/* Line 1455 of yacc.c */
- #line 1655 "program_parse.y"
-#line 1844 "program_parse.y"
++#line 1848 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
;}
break;
- case 220:
+ case 234:
/* Line 1455 of yacc.c */
- #line 1665 "program_parse.y"
-#line 1854 "program_parse.y"
++#line 1858 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
;}
break;
- case 221:
+ case 235:
/* Line 1455 of yacc.c */
- #line 1673 "program_parse.y"
-#line 1862 "program_parse.y"
++#line 1866 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
;}
break;
- case 222:
+ case 236:
/* Line 1455 of yacc.c */
- #line 1682 "program_parse.y"
-#line 1871 "program_parse.y"
++#line 1875 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
;}
break;
- case 223:
+ case 237:
/* Line 1455 of yacc.c */
- #line 1691 "program_parse.y"
-#line 1880 "program_parse.y"
++#line 1884 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
;}
break;
- case 224:
+ case 238:
/* Line 1455 of yacc.c */
- #line 1701 "program_parse.y"
-#line 1890 "program_parse.y"
++#line 1894 "program_parse.y"
{
(yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
;}
break;
- case 225:
+ case 239:
/* Line 1455 of yacc.c */
- #line 1705 "program_parse.y"
-#line 1894 "program_parse.y"
++#line 1898 "program_parse.y"
{
(yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
;}
break;
- case 226:
+ case 240:
/* Line 1455 of yacc.c */
- #line 1710 "program_parse.y"
-#line 1899 "program_parse.y"
++#line 1903 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
- case 227:
+ case 241:
/* Line 1455 of yacc.c */
- #line 1711 "program_parse.y"
-#line 1900 "program_parse.y"
++#line 1904 "program_parse.y"
{ (yyval.negate) = TRUE; ;}
break;
- case 228:
+ case 242:
/* Line 1455 of yacc.c */
- #line 1712 "program_parse.y"
-#line 1901 "program_parse.y"
++#line 1905 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
- case 229:
+ case 243:
/* Line 1455 of yacc.c */
- #line 1715 "program_parse.y"
- { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
-#line 1904 "program_parse.y"
++#line 1908 "program_parse.y"
+ { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
break;
- case 231:
+ case 245:
+
+ /* Line 1455 of yacc.c */
-#line 1908 "program_parse.y"
++#line 1912 "program_parse.y"
+ {
+ /* NV_fragment_program_option defines the size qualifiers in a
+ * fairly broken way. "SHORT" or "LONG" can optionally be used
+ * before TEMP or OUTPUT. However, neither is a reserved word!
+ * This means that we have to parse it as an identifier, then check
+ * to make sure it's one of the valid values. *sigh*
+ *
+ * In addition, the grammar in the extension spec does *not* allow
+ * the size specifier to be optional, but all known implementations
+ * do.
+ */
+ if (!state->option.NV_fragment) {
+ yyerror(& (yylsp[(1) - (1)]), state, "unexpected IDENTIFIER");
+ YYERROR;
+ }
+
+ if (strcmp("SHORT", (yyvsp[(1) - (1)].string)) == 0) {
+ } else if (strcmp("LONG", (yyvsp[(1) - (1)].string)) == 0) {
+ } else {
+ char *const err_str =
+ make_error_string("invalid storage size specifier \"%s\"",
+ (yyvsp[(1) - (1)].string));
+
+ yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL)
+ ? err_str : "invalid storage size specifier");
+
+ if (err_str != NULL) {
+ _mesa_free(err_str);
+ }
+
+ YYERROR;
+ }
+ ;}
+ break;
+
+ case 246:
+
+ /* Line 1455 of yacc.c */
-#line 1942 "program_parse.y"
++#line 1946 "program_parse.y"
+ {
+ ;}
+ break;
+
+ case 247:
/* Line 1455 of yacc.c */
- #line 1718 "program_parse.y"
-#line 1946 "program_parse.y"
++#line 1950 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
- case 233:
+ case 249:
/* Line 1455 of yacc.c */
- #line 1722 "program_parse.y"
-#line 1950 "program_parse.y"
++#line 1954 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
YYERROR;
;}
break;
- case 234:
+ case 250:
/* Line 1455 of yacc.c */
- #line 1728 "program_parse.y"
-#line 1956 "program_parse.y"
++#line 1960 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
YYERROR;
;}
break;
- case 235:
+ case 251:
/* Line 1455 of yacc.c */
- #line 1736 "program_parse.y"
-#line 1964 "program_parse.y"
++#line 1968 "program_parse.y"
{
struct asm_symbol *const s =
- declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)]));
+ declare_variable(state, (yyvsp[(3) - (5)].string), at_output, & (yylsp[(3) - (5)]));
if (s == NULL) {
YYERROR;
;}
break;
- case 236:
+ case 252:
/* Line 1455 of yacc.c */
- #line 1749 "program_parse.y"
-#line 1977 "program_parse.y"
++#line 1981 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_HPOS;
;}
break;
- case 237:
+ case 253:
/* Line 1455 of yacc.c */
- #line 1758 "program_parse.y"
-#line 1986 "program_parse.y"
++#line 1990 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_FOGC;
;}
break;
- case 238:
+ case 254:
/* Line 1455 of yacc.c */
- #line 1767 "program_parse.y"
-#line 1995 "program_parse.y"
++#line 1999 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (2)].result);
;}
break;
- case 239:
+ case 255:
/* Line 1455 of yacc.c */
- #line 1771 "program_parse.y"
-#line 1999 "program_parse.y"
++#line 2003 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_PSIZ;
;}
break;
- case 240:
+ case 256:
/* Line 1455 of yacc.c */
- #line 1780 "program_parse.y"
-#line 2008 "program_parse.y"
++#line 2012 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
;}
break;
- case 241:
+ case 257:
/* Line 1455 of yacc.c */
- #line 1789 "program_parse.y"
-#line 2017 "program_parse.y"
++#line 2021 "program_parse.y"
{
if (state->mode == ARB_fragment) {
(yyval.result) = FRAG_RESULT_DEPTH;
;}
break;
- case 242:
+ case 258:
/* Line 1455 of yacc.c */
- #line 1800 "program_parse.y"
-#line 2028 "program_parse.y"
++#line 2032 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
;}
break;
- case 243:
+ case 259:
/* Line 1455 of yacc.c */
- #line 1806 "program_parse.y"
-#line 2034 "program_parse.y"
++#line 2038 "program_parse.y"
{
(yyval.integer) = (state->mode == ARB_vertex)
? VERT_RESULT_COL0
;}
break;
- case 244:
+ case 260:
/* Line 1455 of yacc.c */
- #line 1812 "program_parse.y"
-#line 2040 "program_parse.y"
++#line 2044 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_COL0;
;}
break;
- case 245:
+ case 261:
/* Line 1455 of yacc.c */
- #line 1821 "program_parse.y"
-#line 2049 "program_parse.y"
++#line 2053 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_BFC0;
;}
break;
- case 246:
+ case 262:
/* Line 1455 of yacc.c */
- #line 1832 "program_parse.y"
-#line 2060 "program_parse.y"
++#line 2064 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 247:
+ case 263:
/* Line 1455 of yacc.c */
- #line 1836 "program_parse.y"
-#line 2064 "program_parse.y"
++#line 2068 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 0;
;}
break;
- case 248:
+ case 264:
/* Line 1455 of yacc.c */
- #line 1845 "program_parse.y"
-#line 2073 "program_parse.y"
++#line 2077 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 1;
;}
break;
- case 249:
+ case 265:
/* Line 1455 of yacc.c */
- #line 1855 "program_parse.y"
-#line 2083 "program_parse.y"
++#line 2087 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 250:
+ case 266:
/* Line 1455 of yacc.c */
- #line 1856 "program_parse.y"
-#line 2084 "program_parse.y"
++#line 2088 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 251:
+ case 267:
/* Line 1455 of yacc.c */
- #line 1857 "program_parse.y"
-#line 2085 "program_parse.y"
++#line 2089 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
- case 252:
+ case 268:
/* Line 1455 of yacc.c */
- #line 1860 "program_parse.y"
-#line 2088 "program_parse.y"
++#line 2092 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 253:
+ case 269:
/* Line 1455 of yacc.c */
- #line 1861 "program_parse.y"
-#line 2089 "program_parse.y"
++#line 2093 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 254:
+ case 270:
/* Line 1455 of yacc.c */
- #line 1862 "program_parse.y"
-#line 2090 "program_parse.y"
++#line 2094 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
- case 255:
+ case 271:
/* Line 1455 of yacc.c */
- #line 1865 "program_parse.y"
-#line 2093 "program_parse.y"
++#line 2097 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 256:
+ case 272:
/* Line 1455 of yacc.c */
- #line 1866 "program_parse.y"
-#line 2094 "program_parse.y"
++#line 2098 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 257:
+ case 273:
/* Line 1455 of yacc.c */
- #line 1869 "program_parse.y"
-#line 2097 "program_parse.y"
++#line 2101 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 258:
+ case 274:
/* Line 1455 of yacc.c */
- #line 1870 "program_parse.y"
-#line 2098 "program_parse.y"
++#line 2102 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 259:
+ case 275:
/* Line 1455 of yacc.c */
- #line 1873 "program_parse.y"
-#line 2101 "program_parse.y"
++#line 2105 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 260:
+ case 276:
/* Line 1455 of yacc.c */
- #line 1874 "program_parse.y"
-#line 2102 "program_parse.y"
++#line 2106 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 261:
+ case 277:
/* Line 1455 of yacc.c */
- #line 1878 "program_parse.y"
-#line 2106 "program_parse.y"
++#line 2110 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
;}
break;
- case 262:
+ case 278:
/* Line 1455 of yacc.c */
- #line 1889 "program_parse.y"
-#line 2117 "program_parse.y"
++#line 2121 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
;}
break;
- case 263:
+ case 279:
/* Line 1455 of yacc.c */
- #line 1900 "program_parse.y"
-#line 2128 "program_parse.y"
++#line 2132 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
;}
break;
- case 264:
+ case 280:
/* Line 1455 of yacc.c */
- #line 1911 "program_parse.y"
-#line 2139 "program_parse.y"
++#line 2143 "program_parse.y"
{
struct asm_symbol *exist = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string));
/* Line 1455 of yacc.c */
- #line 4581 "program_parse.tab.c"
-#line 4905 "program_parse.tab.c"
++#line 4909 "program_parse.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1675 of yacc.c */
- #line 1931 "program_parse.y"
-#line 2163 "program_parse.y"
++#line 2167 "program_parse.y"
+
+
+ void
+ asm_instruction_set_operands(struct asm_instruction *inst,
+ const struct prog_dst_register *dst,
+ const struct asm_src_register *src0,
+ const struct asm_src_register *src1,
+ const struct asm_src_register *src2)
+ {
+ /* In the core ARB extensions only the KIL instruction doesn't have a
+ * destination register.
+ */
+ if (dst == NULL) {
+ init_dst_reg(& inst->Base.DstReg);
+ } else {
+ inst->Base.DstReg = *dst;
+ }
+
+ /* The only instruction that doesn't have any source registers is the
+ * condition-code based KIL instruction added by NV_fragment_program_option.
+ */
+ if (src0 != NULL) {
+ inst->Base.SrcReg[0] = src0->Base;
+ inst->SrcReg[0] = *src0;
+ } else {
+ init_src_reg(& inst->SrcReg[0]);
+ }
+
+ if (src1 != NULL) {
+ inst->Base.SrcReg[1] = src1->Base;
+ inst->SrcReg[1] = *src1;
+ } else {
+ init_src_reg(& inst->SrcReg[1]);
+ }
+
+ if (src2 != NULL) {
+ inst->Base.SrcReg[2] = src2->Base;
+ inst->SrcReg[2] = *src2;
+ } else {
+ init_src_reg(& inst->SrcReg[2]);
+ }
+ }
struct asm_instruction *