fix rdar://7947167 - llvm-mc doesn't match movsq

llvm-svn: 103199
This commit is contained in:
Chris Lattner 2010-05-06 21:48:14 +00:00
parent 12cc7eeb82
commit 348dc9b15a
2 changed files with 27 additions and 4 deletions

View File

@ -309,16 +309,22 @@ def BSR64rm : RI<0xBD, MRMSrcMem, (outs GR64:$dst), (ins i64mem:$src),
} // Defs = [EFLAGS]
// Repeat string ops
let Defs = [RCX,RDI,RSI], Uses = [RCX,RDI,RSI] in
let Defs = [RCX,RDI,RSI], Uses = [RCX,RDI,RSI], isCodeGenOnly = 1 in
def REP_MOVSQ : RI<0xA5, RawFrm, (outs), (ins), "{rep;movsq|rep movsq}",
[(X86rep_movs i64)]>, REP;
let Defs = [RCX,RDI], Uses = [RAX,RCX,RDI] in
let Defs = [RCX,RDI], Uses = [RAX,RCX,RDI], isCodeGenOnly = 1 in
def REP_STOSQ : RI<0xAB, RawFrm, (outs), (ins), "{rep;stosq|rep stosq}",
[(X86rep_stos i64)]>, REP;
def SCAS64 : RI<0xAF, RawFrm, (outs), (ins), "scas{q}", []>;
let Defs = [EDI,ESI], Uses = [EDI,ESI,EFLAGS] in
def MOVSQ : RI<0xA5, RawFrm, (outs), (ins), "movsq", []>;
def CMPS64 : RI<0xA7, RawFrm, (outs), (ins), "cmps{q}", []>;
let Defs = [RCX,RDI], Uses = [RAX,RCX,RDI,EFLAGS] in
def STOSQ : RI<0xAB, RawFrm, (outs), (ins), "stosq", []>;
def SCAS64 : RI<0xAF, RawFrm, (outs), (ins), "scasq", []>;
def CMPS64 : RI<0xA7, RawFrm, (outs), (ins), "cmpsq", []>;
// Fast system-call instructions
def SYSEXIT64 : RI<0x35, RawFrm,

View File

@ -52,3 +52,20 @@ testq %rax, %rbx
// CHECK: cmpq %rbx, %r14
// CHECK: encoding: [0x49,0x39,0xde]
cmpq %rbx, %r14
// rdar://7947167
movsq
// CHECK: movsq
// CHECK: encoding: [0x48,0xa5]
movsl
// CHECK: movsl
// CHECK: encoding: [0xa5]
stosq
// CHECK: stosq
// CHECK: encoding: [0x48,0xab]
stosl
// CHECK: stosl
// CHECK: encoding: [0xab]