diff options
| author | Nate Begeman <natebegeman@mac.com> | 2005-07-21 20:44:43 +0000 |
|---|---|---|
| committer | Nate Begeman <natebegeman@mac.com> | 2005-07-21 20:44:43 +0000 |
| commit | a9443f29b06f9896ceb3b8f5f26aa5e80249f649 (patch) | |
| tree | 0859e34d7d3c68e06845d978bbc043fc12bb3e4a /llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp | |
| parent | 53208ecf34002b24b76407a3d4e706a889064345 (diff) | |
| download | bcm5719-llvm-a9443f29b06f9896ceb3b8f5f26aa5e80249f649.tar.gz bcm5719-llvm-a9443f29b06f9896ceb3b8f5f26aa5e80249f649.zip | |
Support building non-PIC
Remove the LoadHiAddr pseudo-instruction.
Optimization of stores to and loads from statics.
Force JIT to use new non-PIC codepaths.
llvm-svn: 22494
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp b/llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp index 98e69e9cc46..854ccf024f8 100644 --- a/llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp +++ b/llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp @@ -563,7 +563,7 @@ unsigned ISel::getConstDouble(double doubleVal, unsigned Result=0) { MachineConstantPool *CP = BB->getParent()->getConstantPool(); ConstantFP *CFP = ConstantFP::get(Type::DoubleTy, doubleVal); unsigned CPI = CP->getConstantPoolIndex(CFP); - BuildMI(BB, PPC::LOADHiAddr, 2, Tmp1).addReg(getGlobalBaseReg()) + BuildMI(BB, PPC::ADDIS, 2, Tmp1).addReg(getGlobalBaseReg()) .addConstantPoolIndex(CPI); BuildMI(BB, PPC::LFD, 2, Result).addConstantPoolIndex(CPI).addReg(Tmp1); return Result; @@ -909,7 +909,7 @@ unsigned ISel::SelectExprFP(SDOperand N, unsigned Result) // Load constant fp value unsigned Tmp4 = MakeReg(MVT::i32); unsigned TmpL = MakeReg(MVT::i32); - BuildMI(BB, PPC::LOADHiAddr, 2, Tmp4).addReg(getGlobalBaseReg()) + BuildMI(BB, PPC::ADDIS, 2, Tmp4).addReg(getGlobalBaseReg()) .addConstantPoolIndex(CPI); BuildMI(BB, PPC::LFD, 2, ConstF).addConstantPoolIndex(CPI).addReg(Tmp4); // Store the hi & low halves of the fp value, currently in int regs @@ -1002,7 +1002,7 @@ unsigned ISel::SelectExpr(SDOperand N) { case ISD::ConstantPool: Tmp1 = cast<ConstantPoolSDNode>(N)->getIndex(); Tmp2 = MakeReg(MVT::i64); - BuildMI(BB, PPC::LOADHiAddr, 2, Tmp2).addReg(getGlobalBaseReg()) + BuildMI(BB, PPC::ADDIS, 2, Tmp2).addReg(getGlobalBaseReg()) .addConstantPoolIndex(Tmp1); BuildMI(BB, PPC::LA, 2, Result).addReg(Tmp2).addConstantPoolIndex(Tmp1); return Result; @@ -1015,7 +1015,7 @@ unsigned ISel::SelectExpr(SDOperand N) { case ISD::GlobalAddress: { GlobalValue *GV = cast<GlobalAddressSDNode>(N)->getGlobal(); Tmp1 = MakeReg(MVT::i64); - BuildMI(BB, PPC::LOADHiAddr, 2, Tmp1).addReg(getGlobalBaseReg()) + BuildMI(BB, PPC::ADDIS, 2, Tmp1).addReg(getGlobalBaseReg()) .addGlobalAddress(GV); if (GV->hasWeakLinkage() || GV->isExternal()) { BuildMI(BB, PPC::LD, 2, Result).addGlobalAddress(GV).addReg(Tmp1); @@ -1057,7 +1057,7 @@ unsigned ISel::SelectExpr(SDOperand N) { if (ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(Address)) { Tmp1 = MakeReg(MVT::i64); int CPI = CP->getIndex(); - BuildMI(BB, PPC::LOADHiAddr, 2, Tmp1).addReg(getGlobalBaseReg()) + BuildMI(BB, PPC::ADDIS, 2, Tmp1).addReg(getGlobalBaseReg()) .addConstantPoolIndex(CPI); BuildMI(BB, Opc, 2, Result).addConstantPoolIndex(CPI).addReg(Tmp1); } |

