forked from OSchip/llvm-project
remove the PPCLinuxTargetAsmInfo implementation of PreferredEHDataFormat,
because it just calls the default impl. Remove the PPCDarwinTargetAsmInfo version of PreferredEHDataFormat because it just returns DW_EH_PE_absptr unless on 10.6. However, 10.6 doesn't support PPC, so the default impl is just fine. llvm-svn: 77724
This commit is contained in:
parent
5ebf64e075
commit
740749b470
|
@ -34,27 +34,6 @@ PPCDarwinTargetAsmInfo::PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM) :
|
||||||
SupportsWeakOmittedEHFrame = false;
|
SupportsWeakOmittedEHFrame = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// PreferredEHDataFormat - This hook allows the target to select data
|
|
||||||
/// format used for encoding pointers in exception handling data. Reason is
|
|
||||||
/// 0 for data, 1 for code labels, 2 for function pointers. Global is true
|
|
||||||
/// if the symbol can be relocated.
|
|
||||||
unsigned
|
|
||||||
PPCDarwinTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
|
|
||||||
bool Global) const {
|
|
||||||
const PPCSubtarget *Subtarget = &TM.getSubtarget<PPCSubtarget>();
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *PPCDarwinTargetAsmInfo::getEHGlobalPrefix() const {
|
const char *PPCDarwinTargetAsmInfo::getEHGlobalPrefix() const {
|
||||||
const PPCSubtarget* Subtarget = &TM.getSubtarget<PPCSubtarget>();
|
const PPCSubtarget* Subtarget = &TM.getSubtarget<PPCSubtarget>();
|
||||||
if (Subtarget->getDarwinVers() > 9)
|
if (Subtarget->getDarwinVers() > 9)
|
||||||
|
@ -104,16 +83,6 @@ PPCLinuxTargetAsmInfo::PPCLinuxTargetAsmInfo(const PPCTargetMachine &TM) :
|
||||||
DwarfExceptionSection = "\t.section\t.gcc_except_table,\"a\",@progbits";
|
DwarfExceptionSection = "\t.section\t.gcc_except_table,\"a\",@progbits";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// PreferredEHDataFormat - This hook allows the target to select data
|
|
||||||
/// format used for encoding pointers in exception handling data. Reason is
|
|
||||||
/// 0 for data, 1 for code labels, 2 for function pointers. Global is true
|
|
||||||
/// if the symbol can be relocated.
|
|
||||||
unsigned
|
|
||||||
PPCLinuxTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
|
|
||||||
bool Global) const {
|
|
||||||
// We really need to write something here.
|
|
||||||
return TargetAsmInfo::PreferredEHDataFormat(Reason, Global);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Instantiate default implementation.
|
// Instantiate default implementation.
|
||||||
TEMPLATE_INSTANTIATION(class PPCTargetAsmInfo<TargetAsmInfo>);
|
TEMPLATE_INSTANTIATION(class PPCTargetAsmInfo<TargetAsmInfo>);
|
||||||
|
|
|
@ -46,15 +46,11 @@ namespace llvm {
|
||||||
|
|
||||||
struct PPCDarwinTargetAsmInfo : public PPCTargetAsmInfo<DarwinTargetAsmInfo> {
|
struct PPCDarwinTargetAsmInfo : public PPCTargetAsmInfo<DarwinTargetAsmInfo> {
|
||||||
explicit PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM);
|
explicit PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM);
|
||||||
virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
|
|
||||||
bool Global) const;
|
|
||||||
virtual const char *getEHGlobalPrefix() const;
|
virtual const char *getEHGlobalPrefix() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct PPCLinuxTargetAsmInfo : public PPCTargetAsmInfo<ELFTargetAsmInfo> {
|
struct PPCLinuxTargetAsmInfo : public PPCTargetAsmInfo<ELFTargetAsmInfo> {
|
||||||
explicit PPCLinuxTargetAsmInfo(const PPCTargetMachine &TM);
|
explicit PPCLinuxTargetAsmInfo(const PPCTargetMachine &TM);
|
||||||
virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
|
|
||||||
bool Global) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
|
Loading…
Reference in New Issue