diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-01-03 01:27:59 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-01-03 01:27:59 +0000 |
| commit | d4bb2bbce1ba7294084fc22c6445f4111afd52a3 (patch) | |
| tree | 6467e78e5ba0c24147b56c93fbe02e08a6ef9780 /llvm/lib/Target | |
| parent | 82787e90f307ab2b30813858fb3492146434308a (diff) | |
| download | bcm5719-llvm-d4bb2bbce1ba7294084fc22c6445f4111afd52a3.tar.gz bcm5719-llvm-d4bb2bbce1ba7294084fc22c6445f4111afd52a3.zip | |
ADC and IMUL are also commutable.
llvm-svn: 19264
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index fdab1e2fc1c..c5e9dcc8095 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -928,8 +928,10 @@ let isTwoAddress = 0 in { "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 SBB16ri8 : Ii8<0x83, MRM3r, (ops R16:$dst, R16:$src1, i8imm:$src2), 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), |

