summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrInfo.td
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-04-15 00:04:23 +0000
committerDan Gohman <gohman@apple.com>2009-04-15 00:04:23 +0000
commit7913ea5e4aa7e9a3032a30393fec7738ed48ba73 (patch)
treecfd134ce64b1c7f45bc49459bd8c6c0f64f24fcc /llvm/lib/Target/X86/X86InstrInfo.td
parente665e3cf2fdcb4fceaec299d79092772ee3a05a9 (diff)
downloadbcm5719-llvm-7913ea5e4aa7e9a3032a30393fec7738ed48ba73.tar.gz
bcm5719-llvm-7913ea5e4aa7e9a3032a30393fec7738ed48ba73.zip
Add a new MOV8rr_NOREX, and make X86's copyRegToReg use it when
either the source or destination is a physical h register. This fixes sqlite3 with the post-RA scheduler enabled. llvm-svn: 69111
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.td')
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.td13
1 files changed, 9 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td
index 077b4563b06..4fd3320090b 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.td
+++ b/llvm/lib/Target/X86/X86InstrInfo.td
@@ -783,10 +783,15 @@ def MOV32mr : I<0x89, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src),
"mov{l}\t{$src, $dst|$dst, $src}",
[(store GR32:$src, addr:$dst)]>;
-// A version of MOV8mr that uses i8mem_NOREX so that it can be used for
-// storing h registers, which can't be encoded when a REX prefix is present.
-def MOV8mr_NOREX : I<0x88, MRMDestMem, (outs), (ins i8mem_NOREX:$dst, GR8:$src),
- "mov{b}\t{$src, $dst|$dst, $src} # NOREX", []>;
+// Versions of MOV8rr and MOV8mr that use i8mem_NOREX and GR8_NOREX so that they
+// can be used for copying and storing h registers, which can't be encoded when
+// a REX prefix is present.
+let neverHasSideEffects = 1 in
+def MOV8rr_NOREX : I<0x88, MRMDestReg, (outs GR8_NOREX:$dst), (ins GR8_NOREX:$src),
+ "mov{b}\t{$src, $dst|$dst, $src} # NOREX", []>;
+def MOV8mr_NOREX : I<0x88, MRMDestMem,
+ (outs), (ins i8mem_NOREX:$dst, GR8_NOREX:$src),
+ "mov{b}\t{$src, $dst|$dst, $src} # NOREX", []>;
//===----------------------------------------------------------------------===//
// Fixed-Register Multiplication and Division Instructions...
OpenPOWER on IntegriCloud