/// this is suported by the target.
void printVisibility(const MCSymbol *Sym, unsigned Visibility) const;
- // FIXME: This is deprecated and should be removed.
- void printVisibility(const std::string& Name, unsigned Visibility) const;
-
/// printOffset - This is just convenient handler for printing offsets.
void printOffset(int64_t Offset) const;
O << '\n';
for (Module::const_alias_iterator I = M.alias_begin(), E = M.alias_end();
I != E; ++I) {
- std::string Name = Mang->getMangledName(I);
+ MCSymbol *Name = GetGlobalValueSymbol(I);
const GlobalValue *GV = cast<GlobalValue>(I->getAliasedGlobal());
- std::string Target = Mang->getMangledName(GV);
+ MCSymbol *Target = GetGlobalValueSymbol(GV);
- if (I->hasExternalLinkage() || !MAI->getWeakRefDirective())
- O << "\t.globl\t" << Name << '\n';
- else if (I->hasWeakLinkage())
- O << MAI->getWeakRefDirective() << Name << '\n';
- else if (!I->hasLocalLinkage())
- llvm_unreachable("Invalid alias linkage");
+ if (I->hasExternalLinkage() || !MAI->getWeakRefDirective()) {
+ O << "\t.globl\t";
+ Name->print(O, MAI);
+ O << '\n';
+ } else if (I->hasWeakLinkage()) {
+ O << MAI->getWeakRefDirective();
+ Name->print(O, MAI);
+ O << '\n';
+ } else {
+ assert(!I->hasLocalLinkage() && "Invalid alias linkage");
+ }
printVisibility(Name, I->getVisibility());
- O << MAI->getSetDirective() << ' ' << Name << ", " << Target << '\n';
+ O << MAI->getSetDirective() << ' ';
+ Name->print(O, MAI);
+ O << ", ";
+ Target->print(O, MAI);
+ O << '\n';
}
}
}
}
-void AsmPrinter::printVisibility(const std::string& Name,
- unsigned Visibility) const {
- if (Visibility == GlobalValue::HiddenVisibility) {
- if (const char *Directive = MAI->getHiddenDirective())
- O << Directive << Name << '\n';
- } else if (Visibility == GlobalValue::ProtectedVisibility) {
- if (const char *Directive = MAI->getProtectedDirective())
- O << Directive << Name << '\n';
- }
-}
-
void AsmPrinter::printVisibility(const MCSymbol *Sym,
unsigned Visibility) const {
if (Visibility == GlobalValue::HiddenVisibility) {
O << "\tretlw high(" << PAN::getFrameLabel(CurrentFnName) << ")\n";
// Emit function start label.
- O << CurrentFnName << ":\n";
+ CurrentFnSym->print(O, MAI);
+ O << ":\n";
DebugLoc CurDL;
O << "\n";
// Emit the data section name.
O << "\n";
- PIC16Section *fPDataSection = const_cast<PIC16Section *>(getObjFileLowering().
+ PIC16Section *fPDataSection =
+ const_cast<PIC16Section *>(getObjFileLowering().
SectionForFrame(CurrentFnName));
fPDataSection->setColor(getFunctionColor(F));
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
using namespace llvm;
STATISTIC(EmittedInsts, "Number of machine instrs printed");
return;
case MachineOperand::MO_GlobalAddress: {
const GlobalValue *GV = MO.getGlobal();
- std::string Name = Mang->getMangledName(GV);
-
- O << Name;
+ GetGlobalValueSymbol(GV)->print(O, MAI);
// Assemble calls via PLT for externally visible symbols if PIC.
if (TM.getRelocationModel() == Reloc::PIC_ &&
printOffset(MO.getOffset());
break;
- case MachineOperand::MO_GlobalAddress: {
- const GlobalValue *GV = MO.getGlobal();
- std::string Name = Mang->getMangledName(GV);
-
- O << Name;
+ case MachineOperand::MO_GlobalAddress:
+ GetGlobalValueSymbol(MO.getGlobal())->print(O, MAI);
break;
- }
case MachineOperand::MO_ExternalSymbol: {
- std::string Name(MAI->getGlobalPrefix());
- Name += MO.getSymbolName();
- O << Name;
+ GetExternalSymbolSymbol(MO.getSymbolName())->print(O, MAI);
break;
}
default: