LA is really addi. Be consistent with operand ordering to avoid confusing the code...
authorChris Lattner <sabre@nondot.org>
Tue, 23 Nov 2004 05:54:25 +0000 (05:54 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 23 Nov 2004 05:54:25 +0000 (05:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18138 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPC32ISelSimple.cpp
lib/Target/PowerPC/PPCInstrInfo.td

index 83ace163939fa208fa99b36bbfc477907526e291..b8546338e867851fb18f1c0a821196dbfa457eb8 100644 (file)
@@ -698,14 +698,16 @@ void PPC32ISel::copyConstantToRegister(MachineBasicBlock *MBB,
     
     unsigned GlobalBase = makeAnotherReg(Type::IntTy);
     unsigned TmpReg = makeAnotherReg(GV->getType());
-    unsigned Opcode = (GV->hasWeakLinkage() 
-                      || GV->isExternal() 
-                      || dyn_cast<Function>(GV)) ? PPC::LWZ : PPC::LA;
     
     // Move value at base + distance into return reg
     BuildMI(*MBB, IP, PPC::LOADHiAddr, 2, TmpReg)
       .addReg(getGlobalBaseReg(MBB, IP)).addGlobalAddress(GV);
-    BuildMI(*MBB, IP, Opcode, 2, R).addGlobalAddress(GV).addReg(TmpReg);
+
+    if (GV->hasWeakLinkage() || GV->isExternal() || dyn_cast<Function>(GV)) {
+      BuildMI(*MBB, IP, PPC::LWZ, 2, R).addGlobalAddress(GV).addReg(TmpReg);
+    } else {
+      BuildMI(*MBB, IP, PPC::LA, 2, R).addReg(TmpReg).addGlobalAddress(GV);
+    }
   
     // Add the GV to the list of things whose addresses have been taken.
     TM.AddressTaken.insert(GV);
index 4c6b5dc730941d79fa84013765b7e93b0be4914c..cfd3ad4097cb6f3615586d2526843dece7f749ee 100644 (file)
@@ -113,7 +113,7 @@ def ADDICo : DForm_2<13, 0, 0, (ops GPRC:$rD, GPRC:$rA, s16imm:$imm),
                      "addic. $rD, $rA, $imm">;
 def ADDIS  : DForm_2<15, 0, 0, (ops GPRC:$rD, GPRC:$rA, s16imm:$imm),
                      "addis $rD, $rA, $imm">;
-def LA     : DForm_2<14, 0, 0, (ops GPRC:$rD, symbolLo:$sym, GPRC:$rA),
+def LA     : DForm_2<14, 0, 0, (ops GPRC:$rD, GPRC:$rA, symbolLo:$sym),
                      "la $rD, $sym($rA)">;
 def LOADHiAddr : DForm_2<15, 0, 0, (ops GPRC:$rD, GPRC:$rA, symbolHi:$sym),
                          "addis $rD, $rA, $sym">;