TLS_addr64 and TLS_addr32 define RDI and EAX. They don't use them.

This fixes PR4002.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69672 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2009-04-21 08:22:09 +00:00
parent e16178b75f
commit 7daa13c2a4
2 changed files with 2 additions and 2 deletions

View File

@ -1303,7 +1303,7 @@ def MOV64ri64i32 : Ii32<0xB8, AddRegFrm, (outs GR64:$dst), (ins i64i32imm:$src),
// Thread Local Storage Instructions
//===----------------------------------------------------------------------===//
let hasSideEffects = 1, Uses = [RDI] in
let hasSideEffects = 1, Defs = [RDI] in
def TLS_addr64 : I<0, Pseudo, (outs), (ins i64imm:$sym),
".byte\t0x66; leaq\t${sym:mem}(%rip), %rdi; .word\t0x6666; rex64",
[(X86tlsaddr tglobaltlsaddr:$sym)]>,

View File

@ -2977,7 +2977,7 @@ def MOV32r0 : I<0x31, MRMInitReg, (outs GR32:$dst), (ins),
// Thread Local Storage Instructions
//
let hasSideEffects = 1, Uses = [EAX, EBX] in
let hasSideEffects = 1, Uses = [EBX], Defs = [EAX] in
def TLS_addr32 : I<0, Pseudo, (outs), (ins i32imm:$sym),
"leal\t${sym:mem}(,%ebx,1), %eax",
[(X86tlsaddr tglobaltlsaddr:$sym)]>,