[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrInfo.td

Chris Lattner lattner at cs.uiuc.edu
Sun Jan 2 17:28:14 PST 2005



Changes in directory llvm/lib/Target/X86:

X86InstrInfo.td updated: 1.113 -> 1.114
---
Log message:

ADC and IMUL are also commutable.


---
Diffs of the changes:  (+4 -0)

Index: llvm/lib/Target/X86/X86InstrInfo.td
diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.113 llvm/lib/Target/X86/X86InstrInfo.td:1.114
--- llvm/lib/Target/X86/X86InstrInfo.td:1.113	Sat Jan  1 20:35:46 2005
+++ llvm/lib/Target/X86/X86InstrInfo.td	Sun Jan  2 19:27:59 2005
@@ -928,8 +928,10 @@
                      "add{l} {$src2, $dst|$dst, $src2}">;
 }
 
+let isCommutable = 1 in {  // X = ADC Y, Z --> X = ADC Z, Y
 def ADC32rr  : I<0x11, MRMDestReg, (ops R32:$dst, R32:$src1, R32:$src2),
                  "adc{l} {$src2, $dst|$dst, $src2}">;
+}
 def ADC32rm  : I<0x13, MRMSrcMem , (ops R32:$dst, R32:$src1, i32mem:$src2),
                  "adc{l} {$src2, $dst|$dst, $src2}">;
 def ADC32ri  : Ii32<0x81, MRM2r, (ops R32:$dst, R32:$src1, i32imm:$src2),
@@ -1020,10 +1022,12 @@
 def SBB32ri8 : Ii8<0x83, MRM3r, (ops R32:$dst, R32:$src1, i8imm:$src2),
                    "sbb{l} {$src2, $dst|$dst, $src2}">;
 
+let isCommutable = 1 in {  // X = IMUL Y, Z --> X = IMUL Z, Y
 def IMUL16rr : I<0xAF, MRMSrcReg, (ops R16:$dst, R16:$src1, R16:$src2),
                  "imul{w} {$src2, $dst|$dst, $src2}">, TB, OpSize;
 def IMUL32rr : I<0xAF, MRMSrcReg, (ops R32:$dst, R32:$src1, R32:$src2),
                  "imul{l} {$src2, $dst|$dst, $src2}">, TB;
+}
 def IMUL16rm : I<0xAF, MRMSrcMem, (ops R16:$dst, R16:$src1, i16mem:$src2),
                  "imul{w} {$src2, $dst|$dst, $src2}">, TB, OpSize;
 def IMUL32rm : I<0xAF, MRMSrcMem, (ops R32:$dst, R32:$src1, i32mem:$src2),






More information about the llvm-commits mailing list