[PowerPC] The VK_PLT symbolref modifier is only used on 32-bit ELF. [NFC]
authorSean Fertile <sd.fertile@gmail.com>
Wed, 8 Jan 2020 17:32:32 +0000 (12:32 -0500)
committerSean Fertile <sd.fertile@gmail.com>
Thu, 9 Jan 2020 19:07:07 +0000 (14:07 -0500)
Fix a conditional that guarded code for execution only on 32-bit ELF by
checking that the Subtarget was not 64-bit and not-Darwin. By adding a new
target ABI (AIX), the condition is no longer correct. This code is dead for
AIX, due to a 'report_fatal_error' for thread local storage usage earlier in the
pipeline, but needs to be modifed as part of Darwins removal from the
PowerPC backend.

llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp

index 40e7f88..79d8660 100644 (file)
@@ -508,9 +508,9 @@ void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI,
           (!Subtarget->isPPC64() && MI->getOperand(1).getReg() == PPC::R3)) &&
          "GETtls[ld]ADDR[32] must read GPR3");
 
-  if (!Subtarget->isPPC64() && !Subtarget->isDarwin() &&
-      isPositionIndependent())
+  if (Subtarget->is32BitELFABI() && isPositionIndependent())
     Kind = MCSymbolRefExpr::VK_PLT;
+
   const MCExpr *TlsRef =
     MCSymbolRefExpr::create(TlsGetAddr, Kind, OutContext);