#define BRW_OPCODE_ASR 12
#define BRW_OPCODE_CMP 16
#define BRW_OPCODE_CMPN 17
+#define BRW_OPCODE_BFREV 23
#define BRW_OPCODE_BFE 24
#define BRW_OPCODE_BFI1 25
#define BRW_OPCODE_BFI2 26
%token <integer> MOV FRC RNDU RNDD RNDE RNDZ NOT LZD
%token <integer> MUL MAC MACH LINE SAD2 SADA2 DP4 DPH DP3 DP2
%token <integer> AVG ADD SEL AND OR XOR SHR SHL ASR CMP CMPN PLN
-%token <integer> ADDC BFI1
+%token <integer> ADDC BFI1 BFREV
%token <integer> SEND NOP JMPI IF IFF WHILE ELSE BREAK CONT HALT MSAVE
%token <integer> PUSH MREST POP WAIT DO ENDIF ILLEGAL
%token <integer> MATH_INST
}
;
-unaryop: MOV | FRC | RNDU | RNDD | RNDE | RNDZ | NOT | LZD
+unaryop: MOV | FRC | RNDU | RNDD | RNDE | RNDZ | NOT | LZD | BFREV
;
binaryinstruction:
"bfe" { yylval.integer = BRW_OPCODE_BFE; return BFE; }
"bfi1" { yylval.integer = BRW_OPCODE_BFI1; return BFI1; }
"bfi2" { yylval.integer = BRW_OPCODE_BFI2; return BFI2; }
+"bfrev" { yylval.integer = BRW_OPCODE_BFREV; return BFREV; }
"mul" { yylval.integer = BRW_OPCODE_MUL; return MUL; }
"mac" { yylval.integer = BRW_OPCODE_MAC; return MAC; }
"mach" { yylval.integer = BRW_OPCODE_MACH; return MACH; }