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
This commit is contained in:
Bill Wendling 2009-07-29 00:59:34 +00:00
parent c841fe5fd1
commit 859cc77963
2 changed files with 18 additions and 10 deletions

View File

@ -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;
}

View File

@ -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 (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;
}