Supporting integer subtraction with borrow

subb: subtract unsigned integer src1 from src0. store the result
in dst and store the borrow (0 or 1) as a 32-bit value in acc.
This commit is contained in:
Homer Hsing 2012-09-14 09:02:01 +08:00 committed by Damien Lespiau
parent 9e711a4f2c
commit b1ef3bc209
3 changed files with 4 additions and 2 deletions

View File

@ -607,6 +607,7 @@
#define BRW_OPCODE_FBL 76
#define BRW_OPCODE_CBIT 77
#define BRW_OPCODE_ADDC 78
#define BRW_OPCODE_SUBB 79
#define BRW_OPCODE_SAD2 80
#define BRW_OPCODE_SADA2 81
#define BRW_OPCODE_DP4 84

View File

@ -119,7 +119,7 @@ void set_direct_src_operand(struct src_operand *src, struct direct_reg *reg,
%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
%token <integer> MAD LRP BFE BFI2
%token <integer> MAD LRP BFE BFI2 SUBB
%token NULL_TOKEN MATH SAMPLER GATEWAY READ WRITE URB THREAD_SPAWNER VME DATA_PORT
@ -455,7 +455,7 @@ binaryinstruction:
}
;
binaryop: MUL | MAC | MACH | LINE | SAD2 | SADA2 | DP4 | DPH | DP3 | DP2
binaryop: MUL | MAC | MACH | LINE | SAD2 | SADA2 | DP4 | DPH | DP3 | DP2 | SUBB
;
binaryaccinstruction:

View File

@ -117,6 +117,7 @@ yylval.integer = BRW_CHANNEL_W;
"asr" { yylval.integer = BRW_OPCODE_ASR; return ASR; }
"cmp" { yylval.integer = BRW_OPCODE_CMP; return CMP; }
"cmpn" { yylval.integer = BRW_OPCODE_CMPN; return CMPN; }
"subb" { yylval.integer = BRW_OPCODE_SUBB; return SUBB; }
"send" { yylval.integer = BRW_OPCODE_SEND; return SEND; }
"nop" { yylval.integer = BRW_OPCODE_NOP; return NOP; }