#include <string.h>
#include "main/mtypes.h"
+#include "main/imports.h"
+#include "program.h"
#include "prog_parameter.h"
#include "prog_parameter_layout.h"
#include "prog_statevars.h"
static struct asm_symbol *declare_variable(struct asm_parser_state *state,
char *name, enum asm_type t, struct YYLTYPE *locp);
+static int add_state_reference(struct gl_program_parameter_list *param_list,
+ const gl_state_index tokens[STATE_LENGTH]);
+
static int initialize_symbol_from_state(struct gl_program *prog,
struct asm_symbol *param_var, const gl_state_index tokens[STATE_LENGTH]);
static int yyparse(struct asm_parser_state *state);
+static char *make_error_string(const char *fmt, ...);
+
static void yyerror(struct YYLTYPE *locp, struct asm_parser_state *state,
const char *s);
/* Line 189 of yacc.c */
-#line 167 "program_parse.tab.c"
+#line 174 "program_parse.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
{
/* Line 214 of yacc.c */
-#line 100 "program_parse.y"
+#line 107 "program_parse.y"
struct asm_instruction *inst;
struct asm_symbol *sym;
/* Line 214 of yacc.c */
-#line 322 "program_parse.tab.c"
+#line 329 "program_parse.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
-#line 233 "program_parse.y"
+#line 240 "program_parse.y"
extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param,
void *yyscanner);
/* Line 264 of yacc.c */
-#line 353 "program_parse.tab.c"
+#line 360 "program_parse.tab.c"
#ifdef short
# undef short
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 240, 240, 243, 251, 260, 261, 264, 282, 283,
- 286, 301, 304, 309, 316, 317, 318, 319, 320, 321,
- 322, 325, 326, 329, 335, 342, 349, 357, 364, 372,
- 385, 392, 398, 399, 400, 401, 402, 405, 417, 430,
- 443, 465, 474, 483, 490, 499, 527, 569, 580, 601,
- 611, 617, 641, 658, 658, 660, 667, 679, 680, 681,
- 684, 696, 708, 726, 737, 749, 751, 752, 753, 754,
- 757, 757, 757, 757, 758, 761, 762, 763, 764, 765,
- 766, 769, 787, 791, 797, 801, 805, 809, 813, 817,
- 821, 825, 831, 842, 842, 843, 845, 849, 853, 857,
- 863, 863, 865, 881, 904, 907, 918, 924, 930, 931,
- 938, 944, 950, 958, 964, 970, 978, 984, 990, 998,
- 999, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
- 1011, 1014, 1023, 1027, 1031, 1037, 1046, 1050, 1054, 1058,
- 1062, 1068, 1074, 1081, 1086, 1094, 1104, 1106, 1114, 1120,
- 1124, 1128, 1134, 1145, 1154, 1158, 1163, 1167, 1171, 1175,
- 1181, 1188, 1192, 1198, 1206, 1217, 1224, 1228, 1234, 1244,
- 1255, 1259, 1277, 1286, 1289, 1295, 1299, 1303, 1309, 1320,
- 1325, 1330, 1335, 1340, 1344, 1352, 1355, 1360, 1373, 1381,
- 1394, 1394, 1396, 1396, 1398, 1408, 1413, 1420, 1430, 1439,
- 1444, 1451, 1461, 1471, 1483, 1483, 1484, 1484, 1486, 1493,
- 1498, 1505, 1510, 1516, 1524, 1535, 1539, 1545, 1546, 1547,
- 1550, 1550, 1553, 1553, 1556, 1562, 1570, 1583, 1592, 1601,
- 1605, 1614, 1623, 1634, 1641, 1646, 1655, 1667, 1670, 1679,
- 1690, 1691, 1692, 1695, 1696, 1697, 1700, 1701, 1704, 1705,
- 1708, 1709, 1712, 1723, 1734, 1745
+ 0, 247, 247, 250, 258, 267, 268, 271, 289, 290,
+ 293, 308, 311, 316, 323, 324, 325, 326, 327, 328,
+ 329, 332, 333, 336, 342, 349, 356, 364, 371, 379,
+ 392, 399, 405, 406, 407, 408, 409, 412, 424, 437,
+ 450, 472, 481, 490, 497, 506, 534, 576, 587, 608,
+ 618, 624, 648, 665, 665, 667, 674, 686, 687, 688,
+ 691, 703, 715, 733, 744, 756, 758, 759, 760, 761,
+ 764, 764, 764, 764, 765, 768, 769, 770, 771, 772,
+ 773, 776, 794, 798, 804, 808, 812, 816, 820, 824,
+ 828, 832, 838, 849, 849, 850, 852, 856, 860, 864,
+ 870, 870, 872, 888, 911, 914, 925, 931, 937, 938,
+ 945, 951, 957, 965, 971, 977, 985, 991, 997, 1005,
+ 1006, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
+ 1018, 1021, 1030, 1034, 1038, 1044, 1053, 1057, 1061, 1065,
+ 1069, 1075, 1081, 1088, 1093, 1101, 1111, 1113, 1121, 1127,
+ 1131, 1135, 1141, 1152, 1161, 1165, 1170, 1174, 1178, 1182,
+ 1188, 1195, 1199, 1205, 1213, 1224, 1231, 1235, 1241, 1251,
+ 1262, 1266, 1284, 1293, 1296, 1302, 1306, 1310, 1316, 1327,
+ 1332, 1337, 1342, 1347, 1351, 1359, 1362, 1367, 1380, 1388,
+ 1401, 1401, 1403, 1403, 1405, 1415, 1420, 1427, 1437, 1446,
+ 1451, 1458, 1468, 1478, 1490, 1490, 1491, 1491, 1493, 1500,
+ 1505, 1512, 1517, 1523, 1531, 1542, 1546, 1552, 1553, 1554,
+ 1557, 1557, 1560, 1560, 1563, 1569, 1577, 1590, 1599, 1608,
+ 1612, 1621, 1630, 1641, 1648, 1653, 1662, 1674, 1677, 1686,
+ 1697, 1698, 1699, 1702, 1703, 1704, 1707, 1708, 1711, 1712,
+ 1715, 1716, 1719, 1730, 1741, 1752
};
#endif
case 3:
/* Line 1455 of yacc.c */
-#line 244 "program_parse.y"
+#line 251 "program_parse.y"
{
if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header");
case 4:
/* Line 1455 of yacc.c */
-#line 252 "program_parse.y"
+#line 259 "program_parse.y"
{
if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header");
case 7:
/* Line 1455 of yacc.c */
-#line 265 "program_parse.y"
+#line 272 "program_parse.y"
{
int valid = 0;
case 10:
/* Line 1455 of yacc.c */
-#line 287 "program_parse.y"
+#line 294 "program_parse.y"
{
if ((yyvsp[(1) - (2)].inst) != NULL) {
if (state->inst_tail == NULL) {
case 12:
/* Line 1455 of yacc.c */
-#line 305 "program_parse.y"
+#line 312 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumAluInstructions++;
case 13:
/* Line 1455 of yacc.c */
-#line 310 "program_parse.y"
+#line 317 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumTexInstructions++;
case 23:
/* Line 1455 of yacc.c */
-#line 330 "program_parse.y"
+#line 337 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
;}
case 24:
/* Line 1455 of yacc.c */
-#line 336 "program_parse.y"
+#line 343 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode;
case 25:
/* Line 1455 of yacc.c */
-#line 343 "program_parse.y"
+#line 350 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode;
case 26:
/* Line 1455 of yacc.c */
-#line 350 "program_parse.y"
+#line 357 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode;
case 27:
/* Line 1455 of yacc.c */
-#line 358 "program_parse.y"
+#line 365 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode;
case 28:
/* Line 1455 of yacc.c */
-#line 366 "program_parse.y"
+#line 373 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg));
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (8)].temp_inst).SaturateMode;
case 29:
/* Line 1455 of yacc.c */
-#line 373 "program_parse.y"
+#line 380 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL);
if ((yyval.inst) != NULL) {
case 30:
/* Line 1455 of yacc.c */
-#line 386 "program_parse.y"
+#line 393 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL);
state->fragment.UsesKill = 1;
case 31:
/* Line 1455 of yacc.c */
-#line 393 "program_parse.y"
+#line 400 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
case 32:
/* Line 1455 of yacc.c */
-#line 398 "program_parse.y"
+#line 405 "program_parse.y"
{ (yyval.integer) = TEXTURE_1D_INDEX; ;}
break;
case 33:
/* Line 1455 of yacc.c */
-#line 399 "program_parse.y"
+#line 406 "program_parse.y"
{ (yyval.integer) = TEXTURE_2D_INDEX; ;}
break;
case 34:
/* Line 1455 of yacc.c */
-#line 400 "program_parse.y"
+#line 407 "program_parse.y"
{ (yyval.integer) = TEXTURE_3D_INDEX; ;}
break;
case 35:
/* Line 1455 of yacc.c */
-#line 401 "program_parse.y"
+#line 408 "program_parse.y"
{ (yyval.integer) = TEXTURE_CUBE_INDEX; ;}
break;
case 36:
/* Line 1455 of yacc.c */
-#line 402 "program_parse.y"
+#line 409 "program_parse.y"
{ (yyval.integer) = TEXTURE_RECT_INDEX; ;}
break;
case 37:
/* Line 1455 of yacc.c */
-#line 406 "program_parse.y"
+#line 413 "program_parse.y"
{
/* FIXME: Is this correct? Should the extenedSwizzle be applied
* FIXME: to the existing swizzle?
case 38:
/* Line 1455 of yacc.c */
-#line 418 "program_parse.y"
+#line 425 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (3)].src_reg);
case 39:
/* Line 1455 of yacc.c */
-#line 431 "program_parse.y"
+#line 438 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (3)].src_reg);
case 40:
/* Line 1455 of yacc.c */
-#line 444 "program_parse.y"
+#line 451 "program_parse.y"
{
(yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg);
(yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask;
case 41:
/* Line 1455 of yacc.c */
-#line 466 "program_parse.y"
+#line 473 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_ADDRESS;
case 42:
/* Line 1455 of yacc.c */
-#line 475 "program_parse.y"
+#line 482 "program_parse.y"
{
(yyval.swiz_mask).swizzle = MAKE_SWIZZLE4((yyvsp[(1) - (7)].swiz_mask).swizzle, (yyvsp[(3) - (7)].swiz_mask).swizzle,
(yyvsp[(5) - (7)].swiz_mask).swizzle, (yyvsp[(7) - (7)].swiz_mask).swizzle);
case 43:
/* Line 1455 of yacc.c */
-#line 484 "program_parse.y"
+#line 491 "program_parse.y"
{
(yyval.swiz_mask).swizzle = (yyvsp[(2) - (2)].integer);
(yyval.swiz_mask).mask = ((yyvsp[(1) - (2)].negate)) ? 1 : 0;
case 44:
/* Line 1455 of yacc.c */
-#line 491 "program_parse.y"
+#line 498 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
case 45:
/* Line 1455 of yacc.c */
-#line 500 "program_parse.y"
+#line 507 "program_parse.y"
{
if (strlen((yyvsp[(1) - (1)].string)) > 1) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
case 46:
/* Line 1455 of yacc.c */
-#line 528 "program_parse.y"
+#line 535 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 47:
/* Line 1455 of yacc.c */
-#line 570 "program_parse.y"
+#line 577 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = PROGRAM_INPUT;
case 48:
/* Line 1455 of yacc.c */
-#line 581 "program_parse.y"
+#line 588 "program_parse.y"
{
if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr
- && ((yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) {
+ && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) {
yyerror(& (yylsp[(3) - (4)]), state, "out of bounds array access");
YYERROR;
}
case 49:
/* Line 1455 of yacc.c */
-#line 602 "program_parse.y"
+#line 609 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL)
case 50:
/* Line 1455 of yacc.c */
-#line 612 "program_parse.y"
+#line 619 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_OUTPUT;
case 51:
/* Line 1455 of yacc.c */
-#line 618 "program_parse.y"
+#line 625 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 52:
/* Line 1455 of yacc.c */
-#line 642 "program_parse.y"
+#line 649 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 55:
/* Line 1455 of yacc.c */
-#line 661 "program_parse.y"
+#line 668 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer);
case 56:
/* Line 1455 of yacc.c */
-#line 668 "program_parse.y"
+#line 675 "program_parse.y"
{
/* FINISHME: Add support for multiple address registers.
*/
case 57:
/* Line 1455 of yacc.c */
-#line 679 "program_parse.y"
+#line 686 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 58:
/* Line 1455 of yacc.c */
-#line 680 "program_parse.y"
+#line 687 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
break;
case 59:
/* Line 1455 of yacc.c */
-#line 681 "program_parse.y"
+#line 688 "program_parse.y"
{ (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;}
break;
case 60:
/* Line 1455 of yacc.c */
-#line 685 "program_parse.y"
+#line 692 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
yyerror(& (yylsp[(1) - (1)]), state,
case 61:
/* Line 1455 of yacc.c */
-#line 697 "program_parse.y"
+#line 704 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
yyerror(& (yylsp[(1) - (1)]), state,
case 62:
/* Line 1455 of yacc.c */
-#line 709 "program_parse.y"
+#line 716 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 63:
/* Line 1455 of yacc.c */
-#line 727 "program_parse.y"
+#line 734 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector");
case 64:
/* Line 1455 of yacc.c */
-#line 738 "program_parse.y"
+#line 745 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state,
case 69:
/* Line 1455 of yacc.c */
-#line 754 "program_parse.y"
+#line 761 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 74:
/* Line 1455 of yacc.c */
-#line 758 "program_parse.y"
+#line 765 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 81:
/* Line 1455 of yacc.c */
-#line 770 "program_parse.y"
+#line 777 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
case 82:
/* Line 1455 of yacc.c */
-#line 788 "program_parse.y"
+#line 795 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
case 83:
/* Line 1455 of yacc.c */
-#line 792 "program_parse.y"
+#line 799 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
case 84:
/* Line 1455 of yacc.c */
-#line 798 "program_parse.y"
+#line 805 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_POS;
;}
case 85:
/* Line 1455 of yacc.c */
-#line 802 "program_parse.y"
+#line 809 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_WEIGHT;
;}
case 86:
/* Line 1455 of yacc.c */
-#line 806 "program_parse.y"
+#line 813 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_NORMAL;
;}
case 87:
/* Line 1455 of yacc.c */
-#line 810 "program_parse.y"
+#line 817 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_COLOR0 + (yyvsp[(2) - (2)].integer);
;}
case 88:
/* Line 1455 of yacc.c */
-#line 814 "program_parse.y"
+#line 821 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_FOG;
;}
case 89:
/* Line 1455 of yacc.c */
-#line 818 "program_parse.y"
+#line 825 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
case 90:
/* Line 1455 of yacc.c */
-#line 822 "program_parse.y"
+#line 829 "program_parse.y"
{
YYERROR;
;}
case 91:
/* Line 1455 of yacc.c */
-#line 826 "program_parse.y"
+#line 833 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer);
;}
case 92:
/* Line 1455 of yacc.c */
-#line 832 "program_parse.y"
+#line 839 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference");
YYERROR;
}
case 96:
/* Line 1455 of yacc.c */
-#line 846 "program_parse.y"
+#line 853 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_WPOS;
;}
case 97:
/* Line 1455 of yacc.c */
-#line 850 "program_parse.y"
+#line 857 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer);
;}
case 98:
/* Line 1455 of yacc.c */
-#line 854 "program_parse.y"
+#line 861 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_FOGC;
;}
case 99:
/* Line 1455 of yacc.c */
-#line 858 "program_parse.y"
+#line 865 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
case 102:
/* Line 1455 of yacc.c */
-#line 866 "program_parse.y"
+#line 873 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)]));
case 103:
/* Line 1455 of yacc.c */
-#line 882 "program_parse.y"
+#line 889 "program_parse.y"
{
- if (((yyvsp[(4) - (6)].integer) != 0) && ((yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
+ if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
yyerror(& (yylsp[(4) - (6)]), state,
"parameter array size and number of bindings must match");
YYERROR;
case 104:
/* Line 1455 of yacc.c */
-#line 904 "program_parse.y"
+#line 911 "program_parse.y"
{
(yyval.integer) = 0;
;}
case 105:
/* Line 1455 of yacc.c */
-#line 908 "program_parse.y"
+#line 915 "program_parse.y"
{
- if (((yyvsp[(1) - (1)].integer) < 1) || ((yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
+ if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
YYERROR;
} else {
case 106:
/* Line 1455 of yacc.c */
-#line 919 "program_parse.y"
+#line 926 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym);
;}
case 107:
/* Line 1455 of yacc.c */
-#line 925 "program_parse.y"
+#line 932 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym);
;}
case 109:
/* Line 1455 of yacc.c */
-#line 932 "program_parse.y"
+#line 939 "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);
case 110:
/* Line 1455 of yacc.c */
-#line 939 "program_parse.y"
+#line 946 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 111:
/* Line 1455 of yacc.c */
-#line 945 "program_parse.y"
+#line 952 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 112:
/* Line 1455 of yacc.c */
-#line 951 "program_parse.y"
+#line 958 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 113:
/* Line 1455 of yacc.c */
-#line 959 "program_parse.y"
+#line 966 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 114:
/* Line 1455 of yacc.c */
-#line 965 "program_parse.y"
+#line 972 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 115:
/* Line 1455 of yacc.c */
-#line 971 "program_parse.y"
+#line 978 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 116:
/* Line 1455 of yacc.c */
-#line 979 "program_parse.y"
+#line 986 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 117:
/* Line 1455 of yacc.c */
-#line 985 "program_parse.y"
+#line 992 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 118:
/* Line 1455 of yacc.c */
-#line 991 "program_parse.y"
+#line 998 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 119:
/* Line 1455 of yacc.c */
-#line 998 "program_parse.y"
+#line 1005 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;}
break;
case 120:
/* Line 1455 of yacc.c */
-#line 999 "program_parse.y"
+#line 1006 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 121:
/* Line 1455 of yacc.c */
-#line 1002 "program_parse.y"
+#line 1009 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 122:
/* Line 1455 of yacc.c */
-#line 1003 "program_parse.y"
+#line 1010 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 123:
/* Line 1455 of yacc.c */
-#line 1004 "program_parse.y"
+#line 1011 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 124:
/* Line 1455 of yacc.c */
-#line 1005 "program_parse.y"
+#line 1012 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 125:
/* Line 1455 of yacc.c */
-#line 1006 "program_parse.y"
+#line 1013 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 126:
/* Line 1455 of yacc.c */
-#line 1007 "program_parse.y"
+#line 1014 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 127:
/* Line 1455 of yacc.c */
-#line 1008 "program_parse.y"
+#line 1015 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 128:
/* Line 1455 of yacc.c */
-#line 1009 "program_parse.y"
+#line 1016 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 129:
/* Line 1455 of yacc.c */
-#line 1010 "program_parse.y"
+#line 1017 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 130:
/* Line 1455 of yacc.c */
-#line 1011 "program_parse.y"
+#line 1018 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 131:
/* Line 1455 of yacc.c */
-#line 1015 "program_parse.y"
+#line 1022 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_MATERIAL;
case 132:
/* Line 1455 of yacc.c */
-#line 1024 "program_parse.y"
+#line 1031 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
case 133:
/* Line 1455 of yacc.c */
-#line 1028 "program_parse.y"
+#line 1035 "program_parse.y"
{
(yyval.integer) = STATE_EMISSION;
;}
case 134:
/* Line 1455 of yacc.c */
-#line 1032 "program_parse.y"
+#line 1039 "program_parse.y"
{
(yyval.integer) = STATE_SHININESS;
;}
case 135:
/* Line 1455 of yacc.c */
-#line 1038 "program_parse.y"
+#line 1045 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHT;
case 136:
/* Line 1455 of yacc.c */
-#line 1047 "program_parse.y"
+#line 1054 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
case 137:
/* Line 1455 of yacc.c */
-#line 1051 "program_parse.y"
+#line 1058 "program_parse.y"
{
(yyval.integer) = STATE_POSITION;
;}
case 138:
/* Line 1455 of yacc.c */
-#line 1055 "program_parse.y"
+#line 1062 "program_parse.y"
{
(yyval.integer) = STATE_ATTENUATION;
;}
case 139:
/* Line 1455 of yacc.c */
-#line 1059 "program_parse.y"
+#line 1066 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
case 140:
/* Line 1455 of yacc.c */
-#line 1063 "program_parse.y"
+#line 1070 "program_parse.y"
{
(yyval.integer) = STATE_HALF_VECTOR;
;}
case 141:
/* Line 1455 of yacc.c */
-#line 1069 "program_parse.y"
+#line 1076 "program_parse.y"
{
(yyval.integer) = STATE_SPOT_DIRECTION;
;}
case 142:
/* Line 1455 of yacc.c */
-#line 1075 "program_parse.y"
+#line 1082 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
case 143:
/* Line 1455 of yacc.c */
-#line 1082 "program_parse.y"
+#line 1089 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
case 144:
/* Line 1455 of yacc.c */
-#line 1087 "program_parse.y"
+#line 1094 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
case 145:
/* Line 1455 of yacc.c */
-#line 1095 "program_parse.y"
+#line 1102 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTPROD;
case 147:
/* Line 1455 of yacc.c */
-#line 1107 "program_parse.y"
+#line 1114 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(3) - (3)].integer);
case 148:
/* Line 1455 of yacc.c */
-#line 1115 "program_parse.y"
+#line 1122 "program_parse.y"
{
(yyval.integer) = STATE_TEXENV_COLOR;
;}
case 149:
/* Line 1455 of yacc.c */
-#line 1121 "program_parse.y"
+#line 1128 "program_parse.y"
{
(yyval.integer) = STATE_AMBIENT;
;}
case 150:
/* Line 1455 of yacc.c */
-#line 1125 "program_parse.y"
+#line 1132 "program_parse.y"
{
(yyval.integer) = STATE_DIFFUSE;
;}
case 151:
/* Line 1455 of yacc.c */
-#line 1129 "program_parse.y"
+#line 1136 "program_parse.y"
{
(yyval.integer) = STATE_SPECULAR;
;}
case 152:
/* Line 1455 of yacc.c */
-#line 1135 "program_parse.y"
+#line 1142 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxLights) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
YYERROR;
}
case 153:
/* Line 1455 of yacc.c */
-#line 1146 "program_parse.y"
+#line 1153 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_TEXGEN;
case 154:
/* Line 1455 of yacc.c */
-#line 1155 "program_parse.y"
+#line 1162 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S;
;}
case 155:
/* Line 1455 of yacc.c */
-#line 1159 "program_parse.y"
+#line 1166 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_OBJECT_S;
;}
case 156:
/* Line 1455 of yacc.c */
-#line 1164 "program_parse.y"
+#line 1171 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
;}
case 157:
/* Line 1455 of yacc.c */
-#line 1168 "program_parse.y"
+#line 1175 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
;}
case 158:
/* Line 1455 of yacc.c */
-#line 1172 "program_parse.y"
+#line 1179 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
;}
case 159:
/* Line 1455 of yacc.c */
-#line 1176 "program_parse.y"
+#line 1183 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
;}
case 160:
/* Line 1455 of yacc.c */
-#line 1182 "program_parse.y"
+#line 1189 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
case 161:
/* Line 1455 of yacc.c */
-#line 1189 "program_parse.y"
+#line 1196 "program_parse.y"
{
(yyval.integer) = STATE_FOG_COLOR;
;}
case 162:
/* Line 1455 of yacc.c */
-#line 1193 "program_parse.y"
+#line 1200 "program_parse.y"
{
(yyval.integer) = STATE_FOG_PARAMS;
;}
case 163:
/* Line 1455 of yacc.c */
-#line 1199 "program_parse.y"
+#line 1206 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_CLIPPLANE;
case 164:
/* Line 1455 of yacc.c */
-#line 1207 "program_parse.y"
+#line 1214 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
YYERROR;
}
case 165:
/* Line 1455 of yacc.c */
-#line 1218 "program_parse.y"
+#line 1225 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
case 166:
/* Line 1455 of yacc.c */
-#line 1225 "program_parse.y"
+#line 1232 "program_parse.y"
{
(yyval.integer) = STATE_POINT_SIZE;
;}
case 167:
/* Line 1455 of yacc.c */
-#line 1229 "program_parse.y"
+#line 1236 "program_parse.y"
{
(yyval.integer) = STATE_POINT_ATTENUATION;
;}
case 168:
/* Line 1455 of yacc.c */
-#line 1235 "program_parse.y"
+#line 1242 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
case 169:
/* Line 1455 of yacc.c */
-#line 1245 "program_parse.y"
+#line 1252 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
case 170:
/* Line 1455 of yacc.c */
-#line 1255 "program_parse.y"
+#line 1262 "program_parse.y"
{
(yyval.state)[2] = 0;
(yyval.state)[3] = 3;
case 171:
/* Line 1455 of yacc.c */
-#line 1260 "program_parse.y"
+#line 1267 "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).
case 172:
/* Line 1455 of yacc.c */
-#line 1278 "program_parse.y"
+#line 1285 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
case 173:
/* Line 1455 of yacc.c */
-#line 1286 "program_parse.y"
+#line 1293 "program_parse.y"
{
(yyval.integer) = 0;
;}
case 174:
/* Line 1455 of yacc.c */
-#line 1290 "program_parse.y"
+#line 1297 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
case 175:
/* Line 1455 of yacc.c */
-#line 1296 "program_parse.y"
+#line 1303 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVERSE;
;}
case 176:
/* Line 1455 of yacc.c */
-#line 1300 "program_parse.y"
+#line 1307 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_TRANSPOSE;
;}
case 177:
/* Line 1455 of yacc.c */
-#line 1304 "program_parse.y"
+#line 1311 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVTRANS;
;}
case 178:
/* Line 1455 of yacc.c */
-#line 1310 "program_parse.y"
+#line 1317 "program_parse.y"
{
if ((yyvsp[(1) - (1)].integer) > 3) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
case 179:
/* Line 1455 of yacc.c */
-#line 1321 "program_parse.y"
+#line 1328 "program_parse.y"
{
(yyval.state)[0] = STATE_MODELVIEW_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
case 180:
/* Line 1455 of yacc.c */
-#line 1326 "program_parse.y"
+#line 1333 "program_parse.y"
{
(yyval.state)[0] = STATE_PROJECTION_MATRIX;
(yyval.state)[1] = 0;
case 181:
/* Line 1455 of yacc.c */
-#line 1331 "program_parse.y"
+#line 1338 "program_parse.y"
{
(yyval.state)[0] = STATE_MVP_MATRIX;
(yyval.state)[1] = 0;
case 182:
/* Line 1455 of yacc.c */
-#line 1336 "program_parse.y"
+#line 1343 "program_parse.y"
{
(yyval.state)[0] = STATE_TEXTURE_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
case 183:
/* Line 1455 of yacc.c */
-#line 1341 "program_parse.y"
+#line 1348 "program_parse.y"
{
YYERROR;
;}
case 184:
/* Line 1455 of yacc.c */
-#line 1345 "program_parse.y"
+#line 1352 "program_parse.y"
{
(yyval.state)[0] = STATE_PROGRAM_MATRIX;
(yyval.state)[1] = (yyvsp[(3) - (4)].integer);
case 185:
/* Line 1455 of yacc.c */
-#line 1352 "program_parse.y"
+#line 1359 "program_parse.y"
{
(yyval.integer) = 0;
;}
case 186:
/* Line 1455 of yacc.c */
-#line 1356 "program_parse.y"
+#line 1363 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
case 187:
/* Line 1455 of yacc.c */
-#line 1361 "program_parse.y"
+#line 1368 "program_parse.y"
{
/* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
* zero is valid.
case 188:
/* Line 1455 of yacc.c */
-#line 1374 "program_parse.y"
+#line 1381 "program_parse.y"
{
/* Since GL_ARB_matrix_palette isn't supported, just let any value
* through here. The error will be generated later.
case 189:
/* Line 1455 of yacc.c */
-#line 1382 "program_parse.y"
+#line 1389 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
YYERROR;
}
case 194:
/* Line 1455 of yacc.c */
-#line 1399 "program_parse.y"
+#line 1406 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
case 195:
/* Line 1455 of yacc.c */
-#line 1409 "program_parse.y"
+#line 1416 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
case 196:
/* Line 1455 of yacc.c */
-#line 1414 "program_parse.y"
+#line 1421 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
case 197:
/* Line 1455 of yacc.c */
-#line 1421 "program_parse.y"
+#line 1428 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
case 198:
/* Line 1455 of yacc.c */
-#line 1431 "program_parse.y"
+#line 1438 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
case 199:
/* Line 1455 of yacc.c */
-#line 1440 "program_parse.y"
+#line 1447 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
case 200:
/* Line 1455 of yacc.c */
-#line 1445 "program_parse.y"
+#line 1452 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
case 201:
/* Line 1455 of yacc.c */
-#line 1452 "program_parse.y"
+#line 1459 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
case 202:
/* Line 1455 of yacc.c */
-#line 1462 "program_parse.y"
+#line 1469 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
YYERROR;
}
case 203:
/* Line 1455 of yacc.c */
-#line 1472 "program_parse.y"
+#line 1479 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
YYERROR;
}
case 208:
/* Line 1455 of yacc.c */
-#line 1487 "program_parse.y"
+#line 1494 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
case 209:
/* Line 1455 of yacc.c */
-#line 1494 "program_parse.y"
+#line 1501 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
case 210:
/* Line 1455 of yacc.c */
-#line 1499 "program_parse.y"
+#line 1506 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
case 211:
/* Line 1455 of yacc.c */
-#line 1506 "program_parse.y"
+#line 1513 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
case 212:
/* Line 1455 of yacc.c */
-#line 1511 "program_parse.y"
+#line 1518 "program_parse.y"
{
(yyval.vector).count = 2;
(yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
case 213:
/* Line 1455 of yacc.c */
-#line 1518 "program_parse.y"
+#line 1525 "program_parse.y"
{
(yyval.vector).count = 3;
(yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
case 214:
/* Line 1455 of yacc.c */
-#line 1526 "program_parse.y"
+#line 1533 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
case 215:
/* Line 1455 of yacc.c */
-#line 1536 "program_parse.y"
+#line 1543 "program_parse.y"
{
(yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
;}
case 216:
/* Line 1455 of yacc.c */
-#line 1540 "program_parse.y"
+#line 1547 "program_parse.y"
{
(yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
;}
case 217:
/* Line 1455 of yacc.c */
-#line 1545 "program_parse.y"
+#line 1552 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
case 218:
/* Line 1455 of yacc.c */
-#line 1546 "program_parse.y"
+#line 1553 "program_parse.y"
{ (yyval.negate) = TRUE; ;}
break;
case 219:
/* Line 1455 of yacc.c */
-#line 1547 "program_parse.y"
+#line 1554 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
case 220:
/* Line 1455 of yacc.c */
-#line 1550 "program_parse.y"
+#line 1557 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
case 222:
/* Line 1455 of yacc.c */
-#line 1553 "program_parse.y"
+#line 1560 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
case 224:
/* Line 1455 of yacc.c */
-#line 1557 "program_parse.y"
+#line 1564 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
YYERROR;
case 225:
/* Line 1455 of yacc.c */
-#line 1563 "program_parse.y"
+#line 1570 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
YYERROR;
case 226:
/* Line 1455 of yacc.c */
-#line 1571 "program_parse.y"
+#line 1578 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)]));
case 227:
/* Line 1455 of yacc.c */
-#line 1584 "program_parse.y"
+#line 1591 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_HPOS;
case 228:
/* Line 1455 of yacc.c */
-#line 1593 "program_parse.y"
+#line 1600 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_FOGC;
case 229:
/* Line 1455 of yacc.c */
-#line 1602 "program_parse.y"
+#line 1609 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (2)].result);
;}
case 230:
/* Line 1455 of yacc.c */
-#line 1606 "program_parse.y"
+#line 1613 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_PSIZ;
case 231:
/* Line 1455 of yacc.c */
-#line 1615 "program_parse.y"
+#line 1622 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
case 232:
/* Line 1455 of yacc.c */
-#line 1624 "program_parse.y"
+#line 1631 "program_parse.y"
{
if (state->mode == ARB_fragment) {
(yyval.result) = FRAG_RESULT_DEPTH;
case 233:
/* Line 1455 of yacc.c */
-#line 1635 "program_parse.y"
+#line 1642 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
;}
case 234:
/* Line 1455 of yacc.c */
-#line 1641 "program_parse.y"
+#line 1648 "program_parse.y"
{
(yyval.integer) = (state->mode == ARB_vertex)
? VERT_RESULT_COL0
case 235:
/* Line 1455 of yacc.c */
-#line 1647 "program_parse.y"
+#line 1654 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_COL0;
case 236:
/* Line 1455 of yacc.c */
-#line 1656 "program_parse.y"
+#line 1663 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_BFC0;
case 237:
/* Line 1455 of yacc.c */
-#line 1667 "program_parse.y"
+#line 1674 "program_parse.y"
{
(yyval.integer) = 0;
;}
case 238:
/* Line 1455 of yacc.c */
-#line 1671 "program_parse.y"
+#line 1678 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 0;
case 239:
/* Line 1455 of yacc.c */
-#line 1680 "program_parse.y"
+#line 1687 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 1;
case 240:
/* Line 1455 of yacc.c */
-#line 1690 "program_parse.y"
+#line 1697 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 241:
/* Line 1455 of yacc.c */
-#line 1691 "program_parse.y"
+#line 1698 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 242:
/* Line 1455 of yacc.c */
-#line 1692 "program_parse.y"
+#line 1699 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
case 243:
/* Line 1455 of yacc.c */
-#line 1695 "program_parse.y"
+#line 1702 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 244:
/* Line 1455 of yacc.c */
-#line 1696 "program_parse.y"
+#line 1703 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 245:
/* Line 1455 of yacc.c */
-#line 1697 "program_parse.y"
+#line 1704 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
case 246:
/* Line 1455 of yacc.c */
-#line 1700 "program_parse.y"
+#line 1707 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 247:
/* Line 1455 of yacc.c */
-#line 1701 "program_parse.y"
+#line 1708 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 248:
/* Line 1455 of yacc.c */
-#line 1704 "program_parse.y"
+#line 1711 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 249:
/* Line 1455 of yacc.c */
-#line 1705 "program_parse.y"
+#line 1712 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 250:
/* Line 1455 of yacc.c */
-#line 1708 "program_parse.y"
+#line 1715 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 251:
/* Line 1455 of yacc.c */
-#line 1709 "program_parse.y"
+#line 1716 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 252:
/* Line 1455 of yacc.c */
-#line 1713 "program_parse.y"
+#line 1720 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
YYERROR;
}
case 253:
/* Line 1455 of yacc.c */
-#line 1724 "program_parse.y"
+#line 1731 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
YYERROR;
}
case 254:
/* Line 1455 of yacc.c */
-#line 1735 "program_parse.y"
+#line 1742 "program_parse.y"
{
- if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
+ if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
YYERROR;
}
case 255:
/* Line 1455 of yacc.c */
-#line 1746 "program_parse.y"
+#line 1753 "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 4343 "program_parse.tab.c"
+#line 4350 "program_parse.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1675 of yacc.c */
-#line 1766 "program_parse.y"
+#line 1773 "program_parse.y"
struct asm_instruction *
struct asm_instruction *inst = calloc(1, sizeof(struct asm_instruction));
if (inst) {
- _mesa_init_instructions(inst, 1);
+ _mesa_init_instructions(& inst->Base, 1);
inst->Base.Opcode = op;
inst->Base.DstReg = *dst;