Changes in directory llvm/lib/Target/PowerPC:
PPCAsmPrinter.cpp updated: 1.112 -> 1.113 --- Log message: only use dyld stubs if not in ppc-static mode. This completes support for non-static codegen. --- Diffs of the changes: (+21 -15) PPCAsmPrinter.cpp | 36 +++++++++++++++++++++--------------- 1 files changed, 21 insertions(+), 15 deletions(-) Index: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp diff -u llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.112 llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.113 --- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.112 Thu Nov 17 13:25:59 2005 +++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp Thu Nov 17 13:40:30 2005 @@ -154,20 +154,24 @@ void printCallOperand(const MachineInstr *MI, unsigned OpNo, MVT::ValueType VT) { const MachineOperand &MO = MI->getOperand(OpNo); - if (MO.getType() == MachineOperand::MO_ExternalSymbol) { - std::string Name(GlobalPrefix); Name += MO.getSymbolName(); - FnStubs.insert(Name); - O << "L" << Name << "$stub"; - } else if (MO.getType() == MachineOperand::MO_GlobalAddress && - isa<Function>(MO.getGlobal()) && - cast<Function>(MO.getGlobal())->isExternal()) { - // Dynamically-resolved functions need a stub for the function. - std::string Name = Mang->getValueName(MO.getGlobal()); - FnStubs.insert(Name); - O << "L" << Name << "$stub"; - } else { - printOp(MI->getOperand(OpNo)); + if (!PPCGenerateStaticCode) { + if (MO.getType() == MachineOperand::MO_ExternalSymbol) { + std::string Name(GlobalPrefix); Name += MO.getSymbolName(); + FnStubs.insert(Name); + O << "L" << Name << "$stub"; + return; + } else if (MO.getType() == MachineOperand::MO_GlobalAddress && + isa<Function>(MO.getGlobal()) && + cast<Function>(MO.getGlobal())->isExternal()) { + // Dynamically-resolved functions need a stub for the function. + std::string Name = Mang->getValueName(MO.getGlobal()); + FnStubs.insert(Name); + O << "L" << Name << "$stub"; + return; + } } + + printOp(MI->getOperand(OpNo)); } void printAbsAddrOperand(const MachineInstr *MI, unsigned OpNo, MVT::ValueType VT) { @@ -334,7 +338,9 @@ std::string Name = Mang->getValueName(GV); // External or weakly linked global variables need non-lazily-resolved stubs - if ((GV->isExternal() || GV->hasWeakLinkage() || GV->hasLinkOnceLinkage())){ + if (!PPCGenerateStaticCode && + ((GV->isExternal() || GV->hasWeakLinkage() || + GV->hasLinkOnceLinkage()))) { if (GV->hasLinkOnceLinkage()) LinkOnceStubs.insert(Name); else @@ -343,7 +349,7 @@ return; } - O << Mang->getValueName(GV); + O << Name; return; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits