summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrSystem.td
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-03-04 00:10:17 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-03-04 00:10:17 +0000
commitac39bd534be9a8022c09cc8be81db2de109baecb (patch)
tree9d3a984891a73cc2e7ffdde24b6ada24dce72937 /lib/Target/X86/X86InstrSystem.td
parente7147dba733c95aec215f5576539b07f11636ff3 (diff)
downloadllvm-ac39bd534be9a8022c09cc8be81db2de109baecb.tar.gz
llvm-ac39bd534be9a8022c09cc8be81db2de109baecb.tar.bz2
llvm-ac39bd534be9a8022c09cc8be81db2de109baecb.tar.xz
PR9377: Handle x86 str with register operand in a way consistent with gas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126970 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrSystem.td')
-rw-r--r--lib/Target/X86/X86InstrSystem.td13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Target/X86/X86InstrSystem.td b/lib/Target/X86/X86InstrSystem.td
index 6a24d145c6..be7d5efa5a 100644
--- a/lib/Target/X86/X86InstrSystem.td
+++ b/lib/Target/X86/X86InstrSystem.td
@@ -207,10 +207,15 @@ def LSL64rr : RI<0x03, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
def INVLPG : I<0x01, MRM7m, (outs), (ins i8mem:$addr), "invlpg\t$addr", []>, TB;
-def STRr : I<0x00, MRM1r, (outs GR16:$dst), (ins),
- "str{w}\t{$dst}", []>, TB;
-def STRm : I<0x00, MRM1m, (outs i16mem:$dst), (ins),
- "str{w}\t{$dst}", []>, TB;
+def STR16r : I<0x00, MRM1r, (outs GR16:$dst), (ins),
+ "str{w}\t{$dst}", []>, TB, OpSize;
+def STR32r : I<0x00, MRM1r, (outs GR32:$dst), (ins),
+ "str{l}\t{$dst}", []>, TB;
+def STR64r : RI<0x00, MRM1r, (outs GR64:$dst), (ins),
+ "str{q}\t{$dst}", []>, TB;
+def STRm : I<0x00, MRM1m, (outs i16mem:$dst), (ins),
+ "str{w}\t{$dst}", []>, TB;
+
def LTRr : I<0x00, MRM3r, (outs), (ins GR16:$src),
"ltr{w}\t{$src}", []>, TB;
def LTRm : I<0x00, MRM3m, (outs), (ins i16mem:$src),