summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-16 00:14:19 +0000
committerChris Lattner <sabre@nondot.org>2009-09-16 00:14:19 +0000
commit4e465598f05972a20daf5ffc8e8a7af0212cb605 (patch)
tree65a0dee2274fa69c76de5a75dcdd1e520816841d /llvm/lib/Target
parentdd5a9890344d52e0b93af4bbc4c0002d9dfc70d4 (diff)
downloadbcm5719-llvm-4e465598f05972a20daf5ffc8e8a7af0212cb605.tar.gz
bcm5719-llvm-4e465598f05972a20daf5ffc8e8a7af0212cb605.zip
eliminate the PPC backend's implementation of EmitExternalGlobal
and use PersonalityPrefix/Suffix to achieve the same effect (like the x86 backend). This changes the code generated for ppc static mode, but guess what, we were generating this before: .byte 0x9B ; Personality (indirect pcrel sdata4) .long ___gxx_personality_v0-. ; Personality which is not correct! (it is not an 'indirect' reference). llvm-svn: 81965
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp15
-rw-r--r--llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp3
2 files changed, 3 insertions, 15 deletions
diff --git a/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
index 9c02aefdc4c..09f4af35a28 100644
--- a/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
@@ -341,8 +341,6 @@ namespace {
const char *Modifier);
virtual bool runOnMachineFunction(MachineFunction &F) = 0;
-
- virtual void EmitExternalGlobal(const GlobalVariable *GV);
};
/// PPCLinuxAsmPrinter - PowerPC assembly printer, customized for Linux
@@ -462,19 +460,6 @@ void PPCAsmPrinter::printOp(const MachineOperand &MO) {
}
}
-/// EmitExternalGlobal - In this case we need to use the indirect symbol.
-///
-void PPCAsmPrinter::EmitExternalGlobal(const GlobalVariable *GV) {
- std::string Name;
-
- if (TM.getRelocationModel() != Reloc::Static) {
- Name = Mang->getMangledName(GV, "$non_lazy_ptr", true);
- } else {
- Name = Mang->getMangledName(GV);
- }
- O << Name;
-}
-
/// PrintAsmOperand - Print out an operand for an inline asm expression.
///
bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
diff --git a/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp b/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp
index c87879b2a33..6aad786f1d3 100644
--- a/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp
@@ -22,6 +22,9 @@ PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit) {
if (!is64Bit)
Data64bitsDirective = 0; // We can't emit a 64-bit unit in PPC32 mode.
AssemblerDialect = 1; // New-Style mnemonics.
+
+ PersonalityPrefix = "L";
+ PersonalitySuffix = "$non_lazy_ptr";
}
PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
OpenPOWER on IntegriCloud