mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 18:06:13 +00:00
Add support for negate and abs to source operands.
This commit is contained in:
parent
0d929b430b
commit
dc96c56d9e
@ -56,6 +56,7 @@
|
||||
%token LCURLY RCURLY
|
||||
%token COMMA
|
||||
%token DOT
|
||||
%token MINUS ABS
|
||||
|
||||
%token TYPE_UD, TYPE_D, TYPE_UW, TYPE_W, TYPE_UB, TYPE_B,
|
||||
%token TYPE_VF, TYPE_HF, TYPE_V, TYPE_F
|
||||
@ -86,7 +87,7 @@
|
||||
%type <program> instrseq
|
||||
%type <integer> instoption
|
||||
%type <integer> unaryop binaryop binaryaccop
|
||||
%type <integer> conditionalmodifier saturate
|
||||
%type <integer> conditionalmodifier saturate negate abs
|
||||
%type <integer> regtype srcimmtype execsize dstregion
|
||||
%type <integer> subregnum msgtarget
|
||||
%type <region> region
|
||||
@ -324,19 +325,22 @@ directsrcaccoperand: directsrcoperand
|
||||
src: directsrcoperand
|
||||
;
|
||||
|
||||
/* XXX: srcmodifier, swizzle srcaccoperandex */
|
||||
directsrcoperand: directgenreg region regtype
|
||||
/* XXX: srcaccoperandex */
|
||||
directsrcoperand:
|
||||
negate abs directgenreg region regtype
|
||||
{
|
||||
/* Returns a source operand in the src0 fields of an
|
||||
* instruction.
|
||||
*/
|
||||
$$.bits1.da1.src0_reg_file = $1.reg_file;
|
||||
$$.bits1.da1.src0_reg_type = $3;
|
||||
$$.bits2.da1.src0_subreg_nr = $1.subreg_nr;
|
||||
$$.bits2.da1.src0_reg_nr = $1.reg_nr;
|
||||
$$.bits2.da1.src0_vert_stride = $2.vert_stride;
|
||||
$$.bits2.da1.src0_width = $2.width;
|
||||
$$.bits2.da1.src0_horiz_stride = $2.horiz_stride;
|
||||
$$.bits1.da1.src0_reg_file = $3.reg_file;
|
||||
$$.bits1.da1.src0_reg_type = $5;
|
||||
$$.bits2.da1.src0_subreg_nr = $3.subreg_nr;
|
||||
$$.bits2.da1.src0_reg_nr = $3.reg_nr;
|
||||
$$.bits2.da1.src0_vert_stride = $4.vert_stride;
|
||||
$$.bits2.da1.src0_width = $4.width;
|
||||
$$.bits2.da1.src0_horiz_stride = $4.horiz_stride;
|
||||
$$.bits2.da1.src0_negate = $1;
|
||||
$$.bits2.da1.src0_abs = $2;
|
||||
}
|
||||
;
|
||||
|
||||
@ -447,6 +451,13 @@ imm32: INTEGER { $$ = $1; }
|
||||
/* 1.4.12: Predication and modifiers */
|
||||
/* XXX: do the predicate */
|
||||
predicate:
|
||||
;
|
||||
|
||||
negate: /* empty */ { $$ = 0; }
|
||||
| MINUS { $$ = 1; }
|
||||
|
||||
abs: /* empty */ { $$ = 0; }
|
||||
| ABS { $$ = 1; }
|
||||
|
||||
execsize: LPAREN INTEGER RPAREN
|
||||
{
|
||||
@ -542,6 +553,8 @@ void set_instruction_src0(struct brw_instruction *instr,
|
||||
instr->bits2.da1.src0_width = src->bits2.da1.src0_width;
|
||||
instr->bits2.da1.src0_horiz_stride =
|
||||
src->bits2.da1.src0_horiz_stride;
|
||||
instr->bits2.da1.src0_negate = src->bits2.da1.src0_negate;
|
||||
instr->bits2.da1.src0_abs = src->bits2.da1.src0_abs;
|
||||
}
|
||||
}
|
||||
|
||||
@ -561,6 +574,8 @@ void set_instruction_src1(struct brw_instruction *instr,
|
||||
instr->bits3.da1.src1_width = src->bits2.da1.src0_width;
|
||||
instr->bits3.da1.src1_horiz_stride =
|
||||
src->bits2.da1.src0_horiz_stride;
|
||||
instr->bits3.da1.src1_negate = src->bits2.da1.src0_negate;
|
||||
instr->bits3.da1.src1_abs = src->bits2.da1.src0_abs;
|
||||
}
|
||||
}
|
||||
|
||||
|
352
assembler/lex.c
352
assembler/lex.c
@ -293,47 +293,49 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
|
||||
*yy_cp = '\0'; \
|
||||
yy_c_buf_p = yy_cp;
|
||||
|
||||
#define YY_NUM_RULES 62
|
||||
#define YY_END_OF_BUFFER 63
|
||||
static yyconst short int yy_acclist[151] =
|
||||
#define YY_NUM_RULES 64
|
||||
#define YY_END_OF_BUFFER 65
|
||||
static yyconst short int yy_acclist[156] =
|
||||
{ 0,
|
||||
58, 58, 58, 58, 63, 61, 62, 60, 61, 62,
|
||||
60, 62, 31, 61, 62, 32, 61, 62, 37, 61,
|
||||
62, 61, 62, 38, 61, 62, 61, 62, 58, 61,
|
||||
62, 30, 61, 62, 33, 61, 62, 34, 61, 62,
|
||||
51, 61, 62, 47, 61, 62, 61, 62, 52, 61,
|
||||
62, 61, 62, 49, 61, 62, 40, 61, 62, 61,
|
||||
62, 61, 62, 42, 61, 62, 43, 61, 62, 61,
|
||||
62, 61, 62, 41, 61, 62, 61, 62, 43, 61,
|
||||
62, 61, 62, 61, 62, 61, 62, 61, 62, 35,
|
||||
61, 62, 36, 61, 62, 58, 61, 62, 4, 62,
|
||||
60, 60, 60, 60, 65, 63, 64, 62, 63, 64,
|
||||
62, 64, 31, 63, 64, 32, 63, 64, 37, 63,
|
||||
64, 39, 63, 64, 38, 63, 64, 63, 64, 60,
|
||||
63, 64, 30, 63, 64, 33, 63, 64, 34, 63,
|
||||
64, 53, 63, 64, 49, 63, 64, 63, 64, 54,
|
||||
63, 64, 63, 64, 51, 63, 64, 42, 63, 64,
|
||||
63, 64, 63, 64, 44, 63, 64, 45, 63, 64,
|
||||
63, 64, 63, 64, 43, 63, 64, 63, 64, 45,
|
||||
63, 64, 63, 64, 63, 64, 63, 64, 63, 64,
|
||||
35, 63, 64, 36, 63, 64, 39, 63, 64, 60,
|
||||
|
||||
5, 62, 4, 5, 62, 4, 62, 60, 2, 58,
|
||||
50, 46, 48, 44, 45, 58, 3, 1, 1, 59,
|
||||
57, 39, 18, 17, 16, 14, 15, 9, 7, 8,
|
||||
19, 53, 28, 11, 10, 23, 21, 6, 26, 22,
|
||||
12, 20, 13, 27, 54, 55, 25, 24, 56, 29
|
||||
63, 64, 4, 64, 5, 64, 4, 5, 64, 4,
|
||||
64, 62, 2, 60, 52, 48, 50, 46, 47, 60,
|
||||
3, 1, 1, 61, 59, 41, 18, 17, 16, 14,
|
||||
15, 9, 7, 8, 19, 55, 28, 11, 10, 23,
|
||||
21, 6, 26, 22, 12, 20, 40, 13, 27, 56,
|
||||
57, 25, 24, 58, 29
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_accept[159] =
|
||||
static yyconst short int yy_accept[164] =
|
||||
{ 0,
|
||||
1, 2, 3, 4, 5, 5, 5, 6, 8, 11,
|
||||
13, 16, 19, 22, 24, 27, 29, 32, 35, 38,
|
||||
41, 44, 47, 49, 52, 54, 57, 60, 62, 64,
|
||||
67, 70, 72, 74, 77, 79, 82, 84, 86, 88,
|
||||
90, 93, 96, 99, 101, 103, 106, 108, 109, 109,
|
||||
110, 110, 110, 111, 111, 112, 113, 114, 114, 114,
|
||||
114, 115, 115, 115, 116, 116, 116, 116, 116, 116,
|
||||
116, 116, 116, 116, 116, 116, 116, 116, 116, 117,
|
||||
118, 118, 119, 120, 121, 122, 123, 124, 124, 125,
|
||||
126, 127, 128, 128, 128, 129, 129, 129, 129, 130,
|
||||
13, 16, 19, 22, 25, 28, 30, 33, 36, 39,
|
||||
42, 45, 48, 50, 53, 55, 58, 61, 63, 65,
|
||||
68, 71, 73, 75, 78, 80, 83, 85, 87, 89,
|
||||
91, 94, 97, 100, 103, 105, 107, 110, 112, 113,
|
||||
113, 113, 114, 114, 114, 115, 115, 116, 117, 118,
|
||||
118, 118, 118, 119, 119, 119, 120, 120, 120, 120,
|
||||
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
|
||||
120, 121, 122, 122, 122, 123, 124, 125, 126, 127,
|
||||
128, 128, 129, 130, 131, 132, 132, 132, 133, 133,
|
||||
|
||||
131, 132, 132, 132, 132, 132, 132, 133, 133, 133,
|
||||
134, 134, 134, 134, 135, 136, 136, 137, 138, 139,
|
||||
140, 141, 142, 142, 142, 143, 143, 143, 143, 143,
|
||||
143, 144, 144, 144, 145, 146, 146, 146, 146, 146,
|
||||
147, 148, 148, 149, 149, 149, 149, 149, 149, 149,
|
||||
149, 149, 149, 150, 150, 150, 151, 151
|
||||
133, 133, 134, 135, 136, 136, 136, 136, 136, 136,
|
||||
137, 137, 137, 138, 138, 138, 138, 138, 139, 140,
|
||||
140, 141, 142, 143, 144, 145, 146, 146, 146, 147,
|
||||
147, 147, 148, 148, 148, 148, 149, 149, 149, 150,
|
||||
151, 151, 151, 151, 151, 152, 153, 153, 154, 154,
|
||||
154, 154, 154, 154, 154, 154, 154, 154, 155, 155,
|
||||
155, 156, 156
|
||||
} ;
|
||||
|
||||
static yyconst int yy_ec[256] =
|
||||
@ -378,86 +380,88 @@ static yyconst int yy_meta[54] =
|
||||
1, 1, 1
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_base[160] =
|
||||
static yyconst short int yy_base[165] =
|
||||
{ 0,
|
||||
0, 0, 45, 54, 69, 71, 239, 240, 53, 62,
|
||||
240, 240, 240, 67, 240, 78, 78, 240, 240, 240,
|
||||
240, 240, 213, 240, 75, 240, 66, 192, 192, 240,
|
||||
205, 190, 195, 70, 59, 71, 74, 195, 186, 185,
|
||||
240, 240, 107, 240, 240, 240, 218, 84, 115, 240,
|
||||
111, 121, 129, 202, 240, 240, 240, 195, 193, 187,
|
||||
240, 133, 177, 240, 181, 108, 188, 172, 180, 175,
|
||||
178, 187, 182, 117, 173, 169, 182, 174, 159, 240,
|
||||
113, 240, 148, 165, 240, 240, 240, 175, 240, 240,
|
||||
240, 240, 176, 175, 171, 168, 169, 163, 240, 240,
|
||||
0, 0, 45, 54, 69, 71, 243, 244, 53, 62,
|
||||
212, 244, 244, 67, 244, 78, 78, 244, 244, 244,
|
||||
244, 244, 216, 244, 75, 244, 66, 195, 195, 244,
|
||||
208, 193, 198, 70, 59, 71, 74, 198, 189, 188,
|
||||
244, 244, 244, 107, 244, 244, 244, 221, 84, 200,
|
||||
115, 244, 111, 121, 129, 204, 244, 244, 244, 197,
|
||||
195, 189, 244, 133, 179, 244, 183, 108, 190, 174,
|
||||
182, 177, 180, 189, 184, 117, 175, 171, 184, 176,
|
||||
159, 244, 167, 113, 244, 148, 165, 244, 244, 244,
|
||||
176, 244, 244, 244, 244, 177, 176, 172, 169, 170,
|
||||
|
||||
240, 164, 170, 160, 139, 157, 240, 167, 165, 240,
|
||||
151, 155, 146, 240, 240, 166, 240, 240, 240, 240,
|
||||
240, 240, 180, 153, 240, 162, 157, 177, 159, 155,
|
||||
240, 153, 153, 240, 168, 133, 145, 123, 138, 240,
|
||||
240, 120, 240, 119, 133, 118, 130, 130, 119, 107,
|
||||
122, 84, 240, 78, 64, 240, 240, 100, 76
|
||||
164, 244, 244, 244, 165, 171, 161, 139, 158, 244,
|
||||
168, 166, 244, 152, 192, 155, 146, 244, 244, 166,
|
||||
244, 244, 244, 244, 244, 244, 180, 153, 244, 162,
|
||||
157, 244, 177, 159, 155, 244, 153, 153, 244, 168,
|
||||
133, 145, 123, 138, 244, 244, 120, 244, 119, 133,
|
||||
118, 130, 130, 119, 107, 122, 84, 244, 78, 64,
|
||||
244, 244, 100, 76
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_def[160] =
|
||||
static yyconst short int yy_def[165] =
|
||||
{ 0,
|
||||
157, 1, 1, 1, 158, 158, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
159, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
159, 157, 159, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
162, 1, 1, 1, 163, 163, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 164, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 164, 162, 164, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 0, 157, 157
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 0, 162, 162
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_nxt[294] =
|
||||
static yyconst short int yy_nxt[298] =
|
||||
{ 0,
|
||||
8, 9, 10, 8, 11, 12, 8, 13, 14, 15,
|
||||
16, 17, 17, 17, 17, 17, 17, 18, 19, 20,
|
||||
21, 22, 23, 24, 8, 8, 25, 26, 8, 27,
|
||||
8, 28, 29, 8, 30, 31, 8, 32, 8, 33,
|
||||
34, 35, 8, 8, 36, 37, 38, 39, 8, 40,
|
||||
8, 41, 42, 8, 48, 48, 43, 43, 43, 43,
|
||||
43, 43, 8, 48, 48, 43, 43, 43, 43, 43,
|
||||
43, 45, 46, 45, 46, 47, 81, 47, 49, 49,
|
||||
49, 49, 49, 49, 50, 48, 48, 52, 51, 53,
|
||||
53, 53, 53, 53, 53, 55, 56, 58, 59, 66,
|
||||
8, 41, 42, 43, 49, 49, 44, 44, 44, 44,
|
||||
44, 44, 43, 49, 49, 44, 44, 44, 44, 44,
|
||||
44, 46, 47, 46, 47, 48, 84, 48, 51, 51,
|
||||
51, 51, 51, 51, 52, 49, 49, 54, 53, 55,
|
||||
55, 55, 55, 55, 55, 57, 58, 60, 61, 68,
|
||||
|
||||
44, 70, 57, 74, 72, 60, 71, 75, 156, 67,
|
||||
73, 155, 68, 82, 83, 82, 83, 69, 79, 79,
|
||||
79, 79, 79, 79, 52, 154, 49, 49, 49, 49,
|
||||
49, 49, 84, 84, 84, 84, 84, 84, 52, 95,
|
||||
53, 53, 53, 53, 53, 53, 89, 90, 91, 105,
|
||||
82, 83, 122, 96, 97, 153, 152, 106, 151, 150,
|
||||
149, 148, 147, 107, 146, 145, 144, 143, 123, 92,
|
||||
79, 79, 79, 79, 79, 79, 84, 84, 84, 84,
|
||||
84, 84, 142, 141, 140, 139, 138, 137, 136, 135,
|
||||
134, 133, 132, 131, 130, 129, 128, 127, 126, 125,
|
||||
45, 72, 59, 76, 74, 62, 73, 77, 161, 69,
|
||||
75, 160, 70, 85, 86, 85, 86, 71, 81, 81,
|
||||
81, 81, 81, 81, 54, 159, 51, 51, 51, 51,
|
||||
51, 51, 87, 87, 87, 87, 87, 87, 54, 98,
|
||||
55, 55, 55, 55, 55, 55, 92, 93, 94, 108,
|
||||
85, 86, 126, 99, 100, 158, 157, 109, 156, 155,
|
||||
154, 153, 152, 110, 151, 150, 149, 148, 127, 95,
|
||||
81, 81, 81, 81, 81, 81, 87, 87, 87, 87,
|
||||
87, 87, 147, 146, 145, 144, 143, 142, 141, 140,
|
||||
139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
|
||||
|
||||
124, 121, 120, 119, 118, 117, 116, 115, 114, 113,
|
||||
112, 111, 110, 109, 108, 104, 103, 102, 101, 100,
|
||||
99, 98, 94, 93, 88, 87, 86, 85, 80, 78,
|
||||
77, 76, 65, 64, 63, 62, 61, 54, 157, 7,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157
|
||||
129, 128, 125, 124, 123, 122, 121, 120, 119, 118,
|
||||
117, 116, 115, 114, 113, 112, 111, 107, 106, 105,
|
||||
104, 103, 102, 101, 97, 96, 91, 90, 89, 88,
|
||||
83, 82, 80, 79, 78, 67, 66, 65, 64, 63,
|
||||
56, 50, 162, 7, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162
|
||||
|
||||
} ;
|
||||
|
||||
static yyconst short int yy_chk[294] =
|
||||
static yyconst short int yy_chk[298] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
@ -466,31 +470,31 @@ static yyconst short int yy_chk[294] =
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 3, 9, 9, 3, 3, 3, 3,
|
||||
3, 3, 4, 10, 10, 4, 4, 4, 4, 4,
|
||||
4, 5, 5, 6, 6, 5, 159, 6, 14, 14,
|
||||
14, 14, 14, 14, 16, 48, 48, 17, 16, 17,
|
||||
4, 5, 5, 6, 6, 5, 164, 6, 14, 14,
|
||||
14, 14, 14, 14, 16, 49, 49, 17, 16, 17,
|
||||
17, 17, 17, 17, 17, 25, 25, 27, 27, 34,
|
||||
|
||||
158, 35, 25, 37, 36, 27, 35, 37, 155, 34,
|
||||
36, 154, 34, 51, 51, 81, 81, 34, 43, 43,
|
||||
43, 43, 43, 43, 49, 152, 49, 49, 49, 49,
|
||||
49, 49, 52, 52, 52, 52, 52, 52, 53, 66,
|
||||
53, 53, 53, 53, 53, 53, 62, 62, 62, 74,
|
||||
83, 83, 105, 66, 66, 151, 150, 74, 149, 148,
|
||||
147, 146, 145, 74, 144, 142, 139, 138, 105, 62,
|
||||
79, 79, 79, 79, 79, 79, 84, 84, 84, 84,
|
||||
84, 84, 137, 136, 135, 133, 132, 130, 129, 128,
|
||||
127, 126, 124, 123, 116, 113, 112, 111, 109, 108,
|
||||
163, 35, 25, 37, 36, 27, 35, 37, 160, 34,
|
||||
36, 159, 34, 53, 53, 84, 84, 34, 44, 44,
|
||||
44, 44, 44, 44, 51, 157, 51, 51, 51, 51,
|
||||
51, 51, 54, 54, 54, 54, 54, 54, 55, 68,
|
||||
55, 55, 55, 55, 55, 55, 64, 64, 64, 76,
|
||||
86, 86, 108, 68, 68, 156, 155, 76, 154, 153,
|
||||
152, 151, 150, 76, 149, 147, 144, 143, 108, 64,
|
||||
81, 81, 81, 81, 81, 81, 87, 87, 87, 87,
|
||||
87, 87, 142, 141, 140, 138, 137, 135, 134, 133,
|
||||
131, 130, 128, 127, 120, 117, 116, 115, 114, 112,
|
||||
|
||||
106, 104, 103, 102, 98, 97, 96, 95, 94, 93,
|
||||
88, 78, 77, 76, 75, 73, 72, 71, 70, 69,
|
||||
68, 67, 65, 63, 60, 59, 58, 54, 47, 40,
|
||||
39, 38, 33, 32, 31, 29, 28, 23, 7, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||||
157, 157, 157
|
||||
111, 109, 107, 106, 105, 101, 100, 99, 98, 97,
|
||||
96, 91, 83, 80, 79, 78, 77, 75, 74, 73,
|
||||
72, 71, 70, 69, 67, 65, 62, 61, 60, 56,
|
||||
50, 48, 40, 39, 38, 33, 32, 31, 29, 28,
|
||||
23, 11, 7, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162
|
||||
|
||||
} ;
|
||||
|
||||
@ -719,14 +723,14 @@ yy_match:
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 158 )
|
||||
if ( yy_current_state >= 163 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
*yy_state_ptr++ = yy_current_state;
|
||||
++yy_cp;
|
||||
}
|
||||
while ( yy_base[yy_current_state] != 240 );
|
||||
while ( yy_base[yy_current_state] != 244 );
|
||||
|
||||
yy_find_action:
|
||||
yy_current_state = *--yy_state_ptr;
|
||||
@ -961,58 +965,68 @@ YY_RULE_SETUP
|
||||
#line 66 "lex.l"
|
||||
{ return DOT; }
|
||||
YY_BREAK
|
||||
/* XXX: this lexing of register files is shady */
|
||||
case 39:
|
||||
YY_RULE_SETUP
|
||||
#line 69 "lex.l"
|
||||
#line 67 "lex.l"
|
||||
{ return MINUS; }
|
||||
YY_BREAK
|
||||
case 40:
|
||||
YY_RULE_SETUP
|
||||
#line 68 "lex.l"
|
||||
{ return ABS; }
|
||||
YY_BREAK
|
||||
/* XXX: this lexing of register files is shady */
|
||||
case 41:
|
||||
YY_RULE_SETUP
|
||||
#line 71 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return ACCREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 40:
|
||||
case 42:
|
||||
YY_RULE_SETUP
|
||||
#line 73 "lex.l"
|
||||
#line 75 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return ADDRESSREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 41:
|
||||
case 43:
|
||||
YY_RULE_SETUP
|
||||
#line 77 "lex.l"
|
||||
#line 79 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return MSGREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 42:
|
||||
case 44:
|
||||
YY_RULE_SETUP
|
||||
#line 81 "lex.l"
|
||||
#line 83 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return FLAGREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 43:
|
||||
case 45:
|
||||
YY_RULE_SETUP
|
||||
#line 85 "lex.l"
|
||||
#line 87 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return GENREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 44:
|
||||
case 46:
|
||||
YY_RULE_SETUP
|
||||
#line 89 "lex.l"
|
||||
#line 91 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return CONTROLREG;
|
||||
}
|
||||
YY_BREAK
|
||||
case 45:
|
||||
case 47:
|
||||
YY_RULE_SETUP
|
||||
#line 93 "lex.l"
|
||||
#line 95 "lex.l"
|
||||
{
|
||||
BEGIN(IN_REG);
|
||||
return IPREG;
|
||||
@ -1022,99 +1036,99 @@ YY_RULE_SETUP
|
||||
* Lexing of register types should probably require the ":" symbol specified
|
||||
* in the BNF of the assembly, but our existing source didn't use that syntax.
|
||||
*/
|
||||
case 46:
|
||||
YY_RULE_SETUP
|
||||
#line 102 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_UD; }
|
||||
YY_BREAK
|
||||
case 47:
|
||||
YY_RULE_SETUP
|
||||
#line 103 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_D; }
|
||||
YY_BREAK
|
||||
case 48:
|
||||
YY_RULE_SETUP
|
||||
#line 104 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_UW; }
|
||||
{ BEGIN(INITIAL); return TYPE_UD; }
|
||||
YY_BREAK
|
||||
case 49:
|
||||
YY_RULE_SETUP
|
||||
#line 105 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_W; }
|
||||
{ BEGIN(INITIAL); return TYPE_D; }
|
||||
YY_BREAK
|
||||
case 50:
|
||||
YY_RULE_SETUP
|
||||
#line 106 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_UB; }
|
||||
{ BEGIN(INITIAL); return TYPE_UW; }
|
||||
YY_BREAK
|
||||
case 51:
|
||||
YY_RULE_SETUP
|
||||
#line 107 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_B; }
|
||||
{ BEGIN(INITIAL); return TYPE_W; }
|
||||
YY_BREAK
|
||||
case 52:
|
||||
YY_RULE_SETUP
|
||||
#line 108 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_F; }
|
||||
{ BEGIN(INITIAL); return TYPE_UB; }
|
||||
YY_BREAK
|
||||
case 53:
|
||||
YY_RULE_SETUP
|
||||
#line 110 "lex.l"
|
||||
{ return SATURATE; }
|
||||
#line 109 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_B; }
|
||||
YY_BREAK
|
||||
case 54:
|
||||
YY_RULE_SETUP
|
||||
#line 111 "lex.l"
|
||||
{ return ALIGN1; }
|
||||
#line 110 "lex.l"
|
||||
{ BEGIN(INITIAL); return TYPE_F; }
|
||||
YY_BREAK
|
||||
case 55:
|
||||
YY_RULE_SETUP
|
||||
#line 112 "lex.l"
|
||||
{ return ALIGN16; }
|
||||
{ return SATURATE; }
|
||||
YY_BREAK
|
||||
case 56:
|
||||
YY_RULE_SETUP
|
||||
#line 113 "lex.l"
|
||||
{ return MASK_DISABLE; }
|
||||
{ return ALIGN1; }
|
||||
YY_BREAK
|
||||
case 57:
|
||||
YY_RULE_SETUP
|
||||
#line 114 "lex.l"
|
||||
{ return EOT; }
|
||||
{ return ALIGN16; }
|
||||
YY_BREAK
|
||||
case 58:
|
||||
YY_RULE_SETUP
|
||||
#line 115 "lex.l"
|
||||
{ return MASK_DISABLE; }
|
||||
YY_BREAK
|
||||
case 59:
|
||||
YY_RULE_SETUP
|
||||
#line 116 "lex.l"
|
||||
{ return EOT; }
|
||||
YY_BREAK
|
||||
case 60:
|
||||
YY_RULE_SETUP
|
||||
#line 118 "lex.l"
|
||||
{
|
||||
yylval.integer = atoi(yytext);
|
||||
return INTEGER;
|
||||
}
|
||||
YY_BREAK
|
||||
case 59:
|
||||
case 61:
|
||||
YY_RULE_SETUP
|
||||
#line 121 "lex.l"
|
||||
#line 123 "lex.l"
|
||||
{
|
||||
yylval.number = strtod(yytext, NULL);
|
||||
return NUMBER;
|
||||
}
|
||||
YY_BREAK
|
||||
case 60:
|
||||
YY_RULE_SETUP
|
||||
#line 126 "lex.l"
|
||||
{ } /* eat up whitespace */
|
||||
YY_BREAK
|
||||
case 61:
|
||||
case 62:
|
||||
YY_RULE_SETUP
|
||||
#line 128 "lex.l"
|
||||
{ } /* eat up whitespace */
|
||||
YY_BREAK
|
||||
case 63:
|
||||
YY_RULE_SETUP
|
||||
#line 130 "lex.l"
|
||||
{
|
||||
printf("parse error at line %d: unexpected \"%s\"\n",
|
||||
yylineno, yytext);
|
||||
exit(1);
|
||||
}
|
||||
YY_BREAK
|
||||
case 62:
|
||||
case 64:
|
||||
YY_RULE_SETUP
|
||||
#line 133 "lex.l"
|
||||
#line 135 "lex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
@ -1407,7 +1421,7 @@ static yy_state_type yy_get_previous_state()
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 158 )
|
||||
if ( yy_current_state >= 163 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
@ -1437,11 +1451,11 @@ yy_state_type yy_current_state;
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 158 )
|
||||
if ( yy_current_state >= 163 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
yy_is_jam = (yy_current_state == 157);
|
||||
yy_is_jam = (yy_current_state == 162);
|
||||
if ( ! yy_is_jam )
|
||||
*yy_state_ptr++ = yy_current_state;
|
||||
|
||||
@ -2002,7 +2016,7 @@ int main()
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#line 133 "lex.l"
|
||||
#line 135 "lex.l"
|
||||
|
||||
|
||||
char *
|
||||
|
@ -64,6 +64,8 @@ int saved_state = INITIAL;
|
||||
"}" { return RCURLY; }
|
||||
"," { return COMMA; }
|
||||
"." { return DOT; }
|
||||
"-" { return MINUS; }
|
||||
"(abs)" { return ABS; }
|
||||
|
||||
/* XXX: this lexing of register files is shady */
|
||||
"acc" {
|
||||
|
@ -62,8 +62,8 @@ add (1) g7.28<1>F g1.22<0,1,0>UW 1UB { align1 };
|
||||
|
||||
/* Now, map these screen space coordinates into texture coordinates. */
|
||||
/* subtract screen-space X origin of vertex 0. */
|
||||
add (8) g4<1>F g4<8,8,1>F g1<0,1,0>F { align1 };
|
||||
add (8) g5<1>F g5<8,8,1>F g1<0,1,0>F { align1 };
|
||||
add (8) g4<1>F g4<8,8,1>F -g1<0,1,0>F { align1 };
|
||||
add (8) g5<1>F g5<8,8,1>F -g1<0,1,0>F { align1 };
|
||||
/* scale by texture X increment */
|
||||
mul (8) g4<1>F g4<8,8,1>F g3<0,1,0>F { align1 };
|
||||
mul (8) g5<1>F g5<8,8,1>F g3<0,1,0>F { align1 };
|
||||
@ -71,8 +71,8 @@ mul (8) g5<1>F g5<8,8,1>F g3<0,1,0>F { align1 };
|
||||
add (8) g4<1>F g4<8,8,1>F g3.12<0,1,0>F { align1 };
|
||||
add (8) g5<1>F g5<8,8,1>F g3.12<0,1,0>F { align1 };
|
||||
/* subtract screen-space Y origin of vertex 0. */
|
||||
add (8) g6<1>F g6<8,8,1>F g1.4<0,1,0>F { align1 };
|
||||
add (8) g7<1>F g7<8,8,1>F g1.4<0,1,0>F { align1 };
|
||||
add (8) g6<1>F g6<8,8,1>F -g1.4<0,1,0>F { align1 };
|
||||
add (8) g7<1>F g7<8,8,1>F -g1.4<0,1,0>F { align1 };
|
||||
/* scale by texture Y increment */
|
||||
mul (8) g6<1>F g6<8,8,1>F g3.20<0,1,0>F { align1 };
|
||||
mul (8) g7<1>F g7<8,8,1>F g3.20<0,1,0>F { align1 };
|
||||
|
Loading…
x
Reference in New Issue
Block a user