aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PowerPC
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-07-29 00:59:34 +0000
committerBill Wendling <isanbard@gmail.com>2009-07-29 00:59:34 +0000
commit859cc77963d4d3a477abebe62b1ff15e4d849e19 (patch)
tree83467599ccbaae56fff6eeef773167879339df04 /lib/Target/PowerPC
parentc841fe5fd167f863f4635b225fddac4bdba5bee4 (diff)
downloadexternal_llvm-859cc77963d4d3a477abebe62b1ff15e4d849e19.zip
external_llvm-859cc77963d4d3a477abebe62b1ff15e4d849e19.tar.gz
external_llvm-859cc77963d4d3a477abebe62b1ff15e4d849e19.tar.bz2
Change the "PreferredEHDataFormat" from "absptr" if we're on a Darwin system >
Leopard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77414 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC')
-rw-r--r--lib/Target/PowerPC/PPCTargetAsmInfo.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
index 39c8d21..68fa73e 100644
--- a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
+++ b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
@@ -41,12 +41,16 @@ PPCDarwinTargetAsmInfo::PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM) :
unsigned
PPCDarwinTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
bool Global) const {
- if ((Reason == DwarfEncoding::Data || Reason == DwarfEncoding::Functions)
- && Global)
- return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
+ const PPCSubtarget *Subtarget = &TM.getSubtarget<PPCSubtarget>();
- if (Reason == DwarfEncoding::CodeLabels || !Global)
- return DW_EH_PE_pcrel;
+ if (Subtarget->getDarwinVers() > 9) {
+ if ((Reason == DwarfEncoding::Data || Reason == DwarfEncoding::Functions)
+ && Global)
+ return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
+
+ if (Reason == DwarfEncoding::CodeLabels || !Global)
+ return DW_EH_PE_pcrel;
+ }
return DW_EH_PE_absptr;
}