diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-02-15 07:29:18 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-02-15 07:29:18 +0000 |
commit | 0877c6575addcce0807cf2181f92f83a19e30954 (patch) | |
tree | 077f34ea57ee326d6110417cf05118e1a5670f48 /lib/Target/X86/X86InstrInfo.td | |
parent | b556a706f617beff8cf6947e6d1f0cc97391631b (diff) | |
download | llvm-0877c6575addcce0807cf2181f92f83a19e30954.tar.gz llvm-0877c6575addcce0807cf2181f92f83a19e30954.tar.bz2 llvm-0877c6575addcce0807cf2181f92f83a19e30954.tar.xz |
Add opcode extension forms of MOV8ri/MOV16ri/MOV32ri.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201463 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrInfo.td')
-rw-r--r-- | lib/Target/X86/X86InstrInfo.td | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index ac7ff500d3..34a592ffbb 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -1212,6 +1212,16 @@ def MOV64ri : RIi64<0xB8, AddRegFrm, (outs GR64:$dst), (ins i64imm:$src), "movabs{q}\t{$src, $dst|$dst, $src}", [(set GR64:$dst, imm:$src)], IIC_MOV>; } + +// Longer forms that use a ModR/M byte. Needed for disassembler +let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in { +def MOV8ri_alt : Ii8 <0xC6, MRM0r, (outs GR8 :$dst), (ins i8imm :$src), + "mov{b}\t{$src, $dst|$dst, $src}", [], IIC_MOV>; +def MOV16ri_alt : Ii16<0xC7, MRM0r, (outs GR16:$dst), (ins i16imm:$src), + "mov{w}\t{$src, $dst|$dst, $src}", [], IIC_MOV>, OpSize16; +def MOV32ri_alt : Ii32<0xC7, MRM0r, (outs GR32:$dst), (ins i32imm:$src), + "mov{l}\t{$src, $dst|$dst, $src}", [], IIC_MOV>, OpSize32; +} } // SchedRW let SchedRW = [WriteStore] in { |