/// printSuffixedName - This prints a name with preceding
/// getPrivateGlobalPrefix and the specified suffix, handling quoted names
/// correctly.
- void printSuffixedName(const char *Name, const char* Suffix);
- void printSuffixedName(std::string &Name, const char* Suffix);
+ void printSuffixedName(const char *Name, const char *Suffix,
+ const char *Prefix = 0);
+ void printSuffixedName(const std::string &Name, const char* Suffix);
private:
void EmitLLVMUsedList(Constant *List);
}
}
-void AsmPrinter::printSuffixedName(const char *Name, const char* Suffix) {
+void AsmPrinter::printSuffixedName(const char *Name, const char *Suffix,
+ const char *Prefix) {
if (Name[0]=='\"')
- O << '\"' << TAI->getPrivateGlobalPrefix() <<
- Name[1] << Suffix << '\"';
+ O << '\"';
+ O << TAI->getPrivateGlobalPrefix();
+ if (Prefix) O << Prefix;
+ if (Name[0]=='\"')
+ O << '\"';
+ if (Name[0]=='\"')
+ O << Name[1];
else
- O << TAI->getPrivateGlobalPrefix() << Name << Suffix;
+ O << Name;
+ O << Suffix;
+ if (Name[0]=='\"')
+ O << '\"';
}
-void AsmPrinter::printSuffixedName(std::string &Name, const char* Suffix) {
+void AsmPrinter::printSuffixedName(const std::string &Name, const char* Suffix) {
printSuffixedName(Name.c_str(), Suffix);
}
/// printGVStub - Print stub for a global value.
///
void X86ATTAsmPrinter::printGVStub(const char *GV, const char *Prefix) {
- if (Prefix) O << Prefix;
- printSuffixedName(GV, "$non_lazy_ptr");
+ printSuffixedName(GV, "$non_lazy_ptr", Prefix);
O << ":\n\t.indirect_symbol ";
if (Prefix) O << Prefix;
O << GV << "\n\t.long\t0\n";