mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-19 12:33:51 +00:00
mc'ize a bunch of symbol stuff, eliminating std::strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93578 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d588b97cc9
commit
8b3787586e
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user