diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-07-14 18:17:16 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-07-14 18:17:16 +0000 |
| commit | 8c9a96b96671b77181f32836d8427e6de1ca5ec1 (patch) | |
| tree | 871751d8e5bb55f7b6f580f86f87ae6e1ec5260c /llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp | |
| parent | 4c21caa656839b43f5a1f87a7ca77cfae59937ec (diff) | |
| download | bcm5719-llvm-8c9a96b96671b77181f32836d8427e6de1ca5ec1.tar.gz bcm5719-llvm-8c9a96b96671b77181f32836d8427e6de1ca5ec1.zip | |
Reapply my previous asmprinter changes now with more testing and two
additional bug fixes:
1. The bug that everyone hit was a problem in the asmprinter where it
would remove $stub but keep the L prefix on a name when emitting the
indirect symbol. This is easy to fix by keeping the name of the stub
and the name of the symbol in a StringMap instead of just keeping a
StringSet and trying to reconstruct it late.
2. There was a problem printing the personality function. The current
logic to print out the personality function from the DWARF information
is a bit of a cesspool right now that duplicates a bunch of other
logic in the asm printer. The short version of it is that it depends
on emitting both the L and _ prefix for symbols (at least on darwin)
and until I can untangle it, it is best to switch the mangler back to
emitting both prefixes.
llvm-svn: 75646
Diffstat (limited to 'llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp b/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp index 1e3e83c8410..f43a3941230 100644 --- a/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp +++ b/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp @@ -117,11 +117,9 @@ void AlphaAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) { O << MO.getSymbolName(); return; - case MachineOperand::MO_GlobalAddress: { - GlobalValue *GV = MO.getGlobal(); - O << Mang->getValueName(GV); + case MachineOperand::MO_GlobalAddress: + O << Mang->getMangledName(MO.getGlobal()); return; - } case MachineOperand::MO_JumpTableIndex: O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() @@ -218,7 +216,7 @@ void AlphaAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) { if (EmitSpecialLLVMGlobal(GVar)) return; - std::string name = Mang->getValueName(GVar); + std::string name = Mang->getMangledName(GVar); Constant *C = GVar->getInitializer(); if (isa<MDNode>(C) || isa<MDString>(C)) return; |

