From: Rafael Espindola Date: Tue, 21 Apr 2009 08:22:09 +0000 (+0000) Subject: TLS_addr64 and TLS_addr32 define RDI and EAX. They don't use them. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7daa13c2a4299a1a52eda8ae2746f0a0f2893315;p=oota-llvm.git 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 --- diff --git a/lib/Target/X86/X86Instr64bit.td b/lib/Target/X86/X86Instr64bit.td index 69c74b2c985..e84d1368f46 100644 --- a/lib/Target/X86/X86Instr64bit.td +++ b/lib/Target/X86/X86Instr64bit.td @@ -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)]>, diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 7cf1ad31fcb..462433bb27b 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -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)]>,