diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-01-15 23:26:49 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-01-15 23:26:49 +0000 |
| commit | 45400336abf5c1b5029fec81ae3b3c01624c449e (patch) | |
| tree | 963ca064a9a05985bd7280431dc733378912ae66 /llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | |
| parent | 0dca0a9650d13491ca4a893d06acbec102f06397 (diff) | |
| download | bcm5719-llvm-45400336abf5c1b5029fec81ae3b3c01624c449e.tar.gz bcm5719-llvm-45400336abf5c1b5029fec81ae3b3c01624c449e.zip | |
mc'ize a bunch of symbol stuff, eliminating std::strings.
llvm-svn: 93578
Diffstat (limited to 'llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp index 7e6261934b9..bcec896b9c5 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp @@ -184,27 +184,24 @@ namespace { } else if (ACPV->isBlockAddress()) { O << GetBlockAddressSymbol(ACPV->getBlockAddress())->getName(); } else if (ACPV->isGlobalValue()) { - std::string Name; GlobalValue *GV = ACPV->getGV(); bool isIndirect = Subtarget->isTargetDarwin() && Subtarget->GVIsIndirectSymbol(GV, TM.getRelocationModel()); if (!isIndirect) - Name = Mang->getMangledName(GV); + GetGlobalValueSymbol(GV)->print(O, MAI); else { // FIXME: Remove this when Darwin transition to @GOT like syntax. - Name = Mang->getMangledName(GV, "$non_lazy_ptr", true); - MCSymbol *Sym = OutContext.GetOrCreateSymbol(StringRef(Name)); + MCSymbol *Sym = GetPrivateGlobalValueSymbolStub(GV, "$non_lazy_ptr"); + Sym->print(O, MAI); MachineModuleInfoMachO &MMIMachO = MMI->getObjFileInfo<MachineModuleInfoMachO>(); const MCSymbol *&StubSym = GV->hasHiddenVisibility() ? MMIMachO.getHiddenGVStubEntry(Sym) : MMIMachO.getGVStubEntry(Sym); - if (StubSym == 0) { + if (StubSym == 0) StubSym = GetGlobalValueSymbol(GV); - } } - O << Name; } else { assert(ACPV->isExtSymbol() && "unrecognized constant pool value"); GetExternalSymbolSymbol(ACPV->getSymbol())->print(O, MAI); @@ -217,9 +214,9 @@ namespace { << "+" << (unsigned)ACPV->getPCAdjustment(); if (ACPV->mustAddCurrentAddress()) O << "-."; - O << ")"; + O << ')'; } - O << "\n"; + O << '\n'; } void getAnalysisUsage(AnalysisUsage &AU) const { @@ -379,7 +376,7 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum, else if ((Modifier && strcmp(Modifier, "hi16") == 0) || (TF & ARMII::MO_HI16)) O << ":upper16:"; - O << Mang->getMangledName(GV); + GetGlobalValueSymbol(GV)->print(O, MAI); printOffset(MO.getOffset()); @@ -1225,10 +1222,10 @@ void ARMAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) { if (isDarwin) { if (GVar->hasLocalLinkage()) { - O << MAI->getLCOMMDirective() << name << "," << Size + O << MAI->getLCOMMDirective() << name << ',' << Size << ',' << Align; } else if (GVar->hasCommonLinkage()) { - O << MAI->getCOMMDirective() << name << "," << Size + O << MAI->getCOMMDirective() << name << ',' << Size << ',' << Align; } else { OutStreamer.SwitchSection(TheSection); |

