diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-07-29 00:59:34 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-07-29 00:59:34 +0000 |
commit | bef0437d61f321b29a74552db698123c67b5bd18 (patch) | |
tree | 972214d66777db72965d35a66b4032ee9dd8c1a9 /llvm/lib/Target/X86 | |
parent | dce1e4949e1f630b44203b8a26d229e8693309a9 (diff) | |
download | bcm5719-llvm-bef0437d61f321b29a74552db698123c67b5bd18.tar.gz bcm5719-llvm-bef0437d61f321b29a74552db698123c67b5bd18.zip |
Change the "PreferredEHDataFormat" from "absptr" if we're on a Darwin system >
Leopard.
llvm-svn: 77414
Diffstat (limited to 'llvm/lib/Target/X86')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetAsmInfo.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp index 277c3cbba73..3223f3cb72f 100644 --- a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp @@ -94,12 +94,16 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM): unsigned X86DarwinTargetAsmInfo::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 X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>(); + + 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; + if (Reason == DwarfEncoding::CodeLabels || !Global) + return DW_EH_PE_pcrel; + } return DW_EH_PE_absptr; } |