Supporting addc instruction
authorHomer Hsing <homer.xing@intel.com>
Fri, 14 Sep 2012 00:20:13 +0000 (08:20 +0800)
committerDamien Lespiau <damien.lespiau@intel.com>
Mon, 4 Mar 2013 15:54:31 +0000 (15:54 +0000)
The addc instruction performs component-wise addition of
src0 and src1 and stores the results in dst;
it also stores the carry into acc.

assembler/src/brw_defines.h
assembler/src/gram.y
assembler/src/lex.l

index aaaa520..519cf86 100644 (file)
 #define BRW_OPCODE_MAC        72
 #define BRW_OPCODE_MACH       73
 #define BRW_OPCODE_LZD        74
+#define BRW_OPCODE_ADDC       78
 #define BRW_OPCODE_SAD2       80
 #define BRW_OPCODE_SADA2      81
 #define BRW_OPCODE_DP4        84
index 7af5bd5..f3f3a60 100644 (file)
@@ -115,6 +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> SEND NOP JMPI IF IFF WHILE ELSE BREAK CONT HALT MSAVE
 %token <integer> PUSH MREST POP WAIT DO ENDIF ILLEGAL
 %token <integer> MATH_INST
@@ -491,6 +492,7 @@ binaryaccinstruction:
 ;
 
 binaryaccop:   AVG | ADD | SEL | AND | OR | XOR | SHR | SHL | ASR | CMP | CMPN | PLN
+              | ADDC
 ;
 
 trinaryop:     MAD | LRP | BFE | BFI2
index 2c80e71..b162033 100644 (file)
@@ -100,6 +100,7 @@ yylval.integer = BRW_CHANNEL_W;
 
 "avg" { yylval.integer = BRW_OPCODE_AVG; return AVG; }
 "add" { yylval.integer = BRW_OPCODE_ADD; return ADD; }
+"addc" { yylval.integer = BRW_OPCODE_ADDC; return ADDC; }
 "sel" { yylval.integer = BRW_OPCODE_SEL; return SEL; }
 "and" { yylval.integer = BRW_OPCODE_AND; return AND; }
 "or" { yylval.integer = BRW_OPCODE_OR; return OR; }