[llvm] [PowerPC] 32-bit large code-model support for toc-data (PR #85129)

Amy Kwan via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 18 11:58:06 PDT 2024


================
@@ -1236,6 +1249,30 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
     EmitToStreamer(*OutStreamer, TmpInst);
     return;
   }
+  case PPC::ADDItocL: {
+    // Transform %xd = ADDItocL %xs, @sym
+    LowerPPCMachineInstrToMCInst(MI, TmpInst, *this);
+
+    // Change the opcode to load address.
+    TmpInst.setOpcode(PPC::LA);
+
+    const MachineOperand &MO = MI->getOperand(2);
+    assert(MO.isGlobal() && "Invalid operand for ADDItocL.");
+
+    LLVM_DEBUG(assert(
+        !(MO.isGlobal() && Subtarget->isGVIndirectSymbol(MO.getGlobal())) &&
+        "Interposable definitions must use indirect access."));
----------------
amy-kwan wrote:

nit: 
```suggestion
        "Interposable definitions must use indirect accesses."));
```

https://github.com/llvm/llvm-project/pull/85129


More information about the llvm-commits mailing list