summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrCompiler.td
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-05-17 08:10:18 +0000
committerEric Christopher <echristo@apple.com>2011-05-17 08:10:18 +0000
commitc324f72ab722a852d65fa1f1a45c1de678b0e9a6 (patch)
treec34234e4ef3d5e4ac7e9bbe03a4edfe1e1c77dd4 /lib/Target/X86/X86InstrCompiler.td
parent811c2b7110105c4c8cd3649f66a3c83b3afec864 (diff)
downloadllvm-c324f72ab722a852d65fa1f1a45c1de678b0e9a6.tar.gz
llvm-c324f72ab722a852d65fa1f1a45c1de678b0e9a6.tar.bz2
llvm-c324f72ab722a852d65fa1f1a45c1de678b0e9a6.tar.xz
Support XOR and AND optimization with no return value.
Finishes off rdar://8470697 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131458 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrCompiler.td')
-rw-r--r--lib/Target/X86/X86InstrCompiler.td2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrCompiler.td b/lib/Target/X86/X86InstrCompiler.td
index 31b33ab83a..998dfcccf2 100644
--- a/lib/Target/X86/X86InstrCompiler.td
+++ b/lib/Target/X86/X86InstrCompiler.td
@@ -630,6 +630,8 @@ def #NAME#64mi8 : RIi8<{ImmOpc8{7}, ImmOpc8{6}, ImmOpc8{5}, ImmOpc8{4},
defm LOCK_ADD : LOCK_ArithBinOp<0x00, 0x80, 0x83, MRM0m, "add">;
defm LOCK_SUB : LOCK_ArithBinOp<0x28, 0x80, 0x83, MRM5m, "sub">;
defm LOCK_OR : LOCK_ArithBinOp<0x08, 0x80, 0x83, MRM1m, "or">;
+defm LOCK_AND : LOCK_ArithBinOp<0x08, 0x80, 0x83, MRM4m, "and">;
+defm LOCK_XOR : LOCK_ArithBinOp<0x08, 0x80, 0x83, MRM6m, "xor">;
// Optimized codegen when the non-memory output is not used.
let Defs = [EFLAGS], mayLoad = 1, mayStore = 1, isCodeGenOnly = 1 in {