According to BSPEC, put PLN & BFI1 to binaryop, put SUBB to binaryaccop
authorHomer Hsing <homer.xing@intel.com>
Tue, 18 Sep 2012 05:47:22 +0000 (13:47 +0800)
committerDamien Lespiau <damien.lespiau@intel.com>
Mon, 4 Mar 2013 15:54:32 +0000 (15:54 +0000)
bspec: BFI1 should not access accumulator. PLN should not use accumulator
as source.
future work in gram.y: show warning if acc is used as dest for
ADDC/SUBB/CMP/CMPN/SHL/BFI1.

assembler/src/gram.y

index 58940cb..645e5d4 100644 (file)
@@ -454,7 +454,8 @@ binaryinstruction:
                }
 ;
 
-binaryop:      MUL | MAC | MACH | LINE | SAD2 | SADA2 | DP4 | DPH | DP3 | DP2 | SUBB
+/* bspec: BFI1 should not access accumulator. */
+binaryop:      MUL | MAC | MACH | LINE | SAD2 | SADA2 | DP4 | DPH | DP3 | DP2 | PLN | BFI1
 ;
 
 // Source operands can be accumulators
@@ -492,8 +493,8 @@ binaryaccinstruction:
                }
 ;
 
-binaryaccop:   AVG | ADD | SEL | AND | OR | XOR | SHR | SHL | ASR | CMP | CMPN | PLN
-              | ADDC | BFI1
+/* TODO: bspec says ADDC/SUBB/CMP/CMPN/SHL/BFI1 cannot use accumulator as dest. */
+binaryaccop:   AVG | ADD | SEL | AND | OR | XOR | SHR | SHL | ASR | CMP | CMPN | ADDC | SUBB
 ;
 
 trinaryop:     MAD | LRP | BFE | BFI2