[PowerPC] Handle 32-bit targets properly in PPCTLSDynamicCall.cpp
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 4 Feb 2015 05:51:56 +0000 (05:51 +0000)
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 4 Feb 2015 05:51:56 +0000 (05:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228116 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCTLSDynamicCall.cpp
test/CodeGen/PowerPC/tls-pic.ll

index b0e1dfa52a4de16defc62861590ac04282671cd6..1b74c4e76e7128de62cd7eacfe336369127c9259 100644 (file)
@@ -56,7 +56,9 @@ protected:
         MachineInstr *MI = I;
 
         if (MI->getOpcode() != PPC::GETtlsADDR &&
-            MI->getOpcode() != PPC::GETtlsldADDR)
+            MI->getOpcode() != PPC::GETtlsldADDR &&
+           MI->getOpcode() != PPC::GETtlsADDR32 &&
+           MI->getOpcode() != PPC::GETtlsldADDR32)
           continue;
 
         DEBUG(dbgs() << "TLS Dynamic Call Fixup:\n    " << *MI;);
index b6782142c7f0cd04806b8d27f11e942e6b0dae31..549cd1927a70e052679d885bdce57a937b202615 100644 (file)
@@ -25,12 +25,12 @@ entry:
 ; OPT0:      addis [[REG2:[0-9]+]], 3, a@dtprel@ha
 ; OPT0:      addi {{[0-9]+}}, [[REG2]], a@dtprel@l
 ; OPT0-32-LABEL: main
-; OPT0-32:        addi {{[0-9]+}}, {{[0-9]+}}, a@got@tlsld
+; OPT0-32:        addi 3, {{[0-9]+}}, a@got@tlsld
 ; OPT0-32:        bl __tls_get_addr(a@tlsld)@PLT
 ; OPT0-32:        addis [[REG:[0-9]+]], 3, a@dtprel@ha
 ; OPT0-32:        addi  {{[0-9]+}}, [[REG]], a@dtprel@l
 ; OPT1-32-LABEL: main
-; OPT1-32:        addi {{[0-9]+}}, {{[0-9]+}}, a@got@tlsld
+; OPT1-32:        addi 3, {{[0-9]+}}, a@got@tlsld
 ; OPT1-32:        bl __tls_get_addr(a@tlsld)@PLT
 ; OPT1-32:        addis [[REG:[0-9]+]], 3, a@dtprel@ha
 ; OPT1-32:        addi  {{[0-9]+}}, [[REG]], a@dtprel@l