mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-09 04:25:37 +00:00
simplify personality function stub printing to use the mangler and
decorateName like other stuff instead of special casing _. Also, stick it into GVStubs and let the normal stub printer print the stub instead of doing it manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74090 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7af485e109
commit
381d4fef6f
@ -1134,9 +1134,8 @@ bool X86ATTAsmPrinter::doFinalization(Module &M) {
|
||||
i != e; ++i)
|
||||
O << "\t.ascii \" -export:" << i->getKeyData() << ",data\"\n";
|
||||
|
||||
if (!DLLExportedFns.empty()) {
|
||||
if (!DLLExportedFns.empty())
|
||||
SwitchToDataSection(".section .drectve");
|
||||
}
|
||||
|
||||
for (StringSet<>::iterator i = DLLExportedFns.begin(),
|
||||
e = DLLExportedFns.end();
|
||||
@ -1162,20 +1161,21 @@ bool X86ATTAsmPrinter::doFinalization(Module &M) {
|
||||
|
||||
// Print global value stubs.
|
||||
bool InStubSection = false;
|
||||
// Add the (possibly multiple) personalities to the set of global value
|
||||
// stubs. Only referenced functions get into the Personalities list.
|
||||
if (TAI->doesSupportExceptionHandling() && MMI && !Subtarget->is64Bit()) {
|
||||
// Add the (possibly multiple) personalities to the set of global values.
|
||||
// Only referenced functions get into the Personalities list.
|
||||
const std::vector<Function *>& Personalities = MMI->getPersonalities();
|
||||
for (std::vector<Function *>::const_iterator I = Personalities.begin(),
|
||||
E = Personalities.end(); I != E; ++I) {
|
||||
if (!*I)
|
||||
const std::vector<Function*> &Personalities = MMI->getPersonalities();
|
||||
for (unsigned i = 0, e = Personalities.size(); i != e; ++i) {
|
||||
if (Personalities[i] == 0)
|
||||
continue;
|
||||
if (!InStubSection) {
|
||||
SwitchToDataSection(
|
||||
"\t.section __IMPORT,__pointers,non_lazy_symbol_pointers");
|
||||
InStubSection = true;
|
||||
}
|
||||
printGVStub((*I)->getNameStart(), "_");
|
||||
std::string Name = Mang->getValueName(Personalities[i]);
|
||||
decorateName(Name, Personalities[i]);
|
||||
GVStubs.insert(Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user