"mov[zs]x (mem), GR16" are not ambiguous: the mem

must be 8 bits.  Support this memory form.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117902 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-11-01 05:41:10 +00:00
parent b501d4f673
commit acc473fcf9
2 changed files with 12 additions and 0 deletions

View File

@ -1262,6 +1262,9 @@ include "X86InstrCompiler.td"
def : InstAlias<(outs GR16:$dst), (ins GR8 :$src),
"movsx $src, $dst",
(MOVSX16rr8W GR16:$dst, GR8:$src)>;
def : InstAlias<(outs GR16:$dst), (ins i8mem:$src),
"movsx $src, $dst",
(MOVSX16rm8W GR16:$dst, i8mem:$src)>;
def : InstAlias<(outs GR32:$dst), (ins GR8 :$src),
"movsx $src, $dst",
@ -1284,6 +1287,9 @@ def : InstAlias<(outs GR64:$dst), (ins GR32:$src),
def : InstAlias<(outs GR16:$dst), (ins GR8 :$src),
"movzx $src, $dst",
(MOVZX16rr8W GR16:$dst, GR8:$src)>;
def : InstAlias<(outs GR16:$dst), (ins i8mem:$src),
"movzx $src, $dst",
(MOVZX16rm8W GR16:$dst, i8mem:$src)>;
def : InstAlias<(outs GR32:$dst), (ins GR8 :$src),
"movzx $src, $dst",

View File

@ -692,7 +692,13 @@ movzx %bl, %rax
// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
movzx %cx, %rax
// CHECK: movsbw (%rax), %ax
// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
movsx (%rax), %ax
// CHECK: movzbw (%rax), %ax
// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
movzx (%rax), %ax
// rdar://7873482