diff options
| author | Sean Callanan <scallanan@apple.com> | 2009-09-10 19:52:26 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2009-09-10 19:52:26 +0000 |
| commit | 62aebf9fa283fe179c46ba08a9c27457e32444c6 (patch) | |
| tree | b3859c5260d88798d81c7910b928a2325cbedce2 | |
| parent | 64804f37bbfd40bd3f0b3d4a9681e1645f04f446 (diff) | |
| download | bcm5719-llvm-62aebf9fa283fe179c46ba08a9c27457e32444c6.tar.gz bcm5719-llvm-62aebf9fa283fe179c46ba08a9c27457e32444c6.zip | |
Added XOR instructions for rAX and immediates of
various widths.
llvm-svn: 81458
| -rw-r--r-- | llvm/lib/Target/X86/X86Instr64bit.td | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86Instr64bit.td b/llvm/lib/Target/X86/X86Instr64bit.td index c6a28b869f6..def660fc5bc 100644 --- a/llvm/lib/Target/X86/X86Instr64bit.td +++ b/llvm/lib/Target/X86/X86Instr64bit.td @@ -1003,6 +1003,10 @@ def XOR64mi32 : RIi32<0x81, MRM6m, (outs), (ins i64mem:$dst, i64i32imm:$src), "xor{q}\t{$src, $dst|$dst, $src}", [(store (xor (loadi64 addr:$dst), i64immSExt32:$src), addr:$dst), (implicit EFLAGS)]>; + +def XOR64i32 : RIi32<0x35, RawFrm, (outs), (ins i32imm:$src), + "xor{q}\t{$src, %rax|%rax, $src}", []>; + } // Defs = [EFLAGS] //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 3a99e92f369..f358ab67d71 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -1895,6 +1895,13 @@ let isTwoAddress = 0 in { "xor{l}\t{$src, $dst|$dst, $src}", [(store (xor (load addr:$dst), i32immSExt8:$src), addr:$dst), (implicit EFLAGS)]>; + + def XOR8i8 : Ii8 <0x34, RawFrm, (outs), (ins i8imm:$src), + "xor{b}\t{$src, %al|%al, $src}", []>; + def XOR16i16 : Ii16 <0x35, RawFrm, (outs), (ins i16imm:$src), + "xor{w}\t{$src, %ax|%ax, $src}", []>, OpSize; + def XOR32i32 : Ii32 <0x35, RawFrm, (outs), (ins i32imm:$src), + "xor{l}\t{$src, %eax|%eax, $src}", []>; } // isTwoAddress = 0 } // Defs = [EFLAGS] |

