Supporting instruction Bit Field Insert 1

The bfi1 instruction component-wise generates mask with control
from src0 and src1 and stores the results in dst.
This commit is contained in:
Homer Hsing 2012-09-14 08:27:41 +08:00 committed by Damien Lespiau
parent 5777bfa91f
commit 4d6337dfaf
3 changed files with 4 additions and 2 deletions

View File

@ -569,6 +569,7 @@
#define BRW_OPCODE_CMP 16
#define BRW_OPCODE_CMPN 17
#define BRW_OPCODE_BFE 24
#define BRW_OPCODE_BFI1 25
#define BRW_OPCODE_BFI2 26
#define BRW_OPCODE_JMPI 32
#define BRW_OPCODE_IF 34

View File

@ -115,7 +115,7 @@ void set_direct_src_operand(struct src_operand *src, struct direct_reg *reg,
%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
%token <integer> ADDC BFI1
%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
@ -492,7 +492,7 @@ binaryaccinstruction:
;
binaryaccop: AVG | ADD | SEL | AND | OR | XOR | SHR | SHL | ASR | CMP | CMPN | PLN
| ADDC
| ADDC | BFI1
;
trinaryop: MAD | LRP | BFE | BFI2

View File

@ -86,6 +86,7 @@ yylval.integer = BRW_CHANNEL_W;
"mad" { yylval.integer = BRW_OPCODE_MAD; return MAD; }
"lrp" { yylval.integer = BRW_OPCODE_LRP; return LRP; }
"bfe" { yylval.integer = BRW_OPCODE_BFE; return BFE; }
"bfi1" { yylval.integer = BRW_OPCODE_BFI1; return BFI1; }
"bfi2" { yylval.integer = BRW_OPCODE_BFI2; return BFI2; }
"mul" { yylval.integer = BRW_OPCODE_MUL; return MUL; }
"mac" { yylval.integer = BRW_OPCODE_MAC; return MAC; }