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:
Chris Lattner 2009-07-31 20:43:26 +00:00
parent 5ebf64e075
commit 740749b470
2 changed files with 0 additions and 35 deletions

View File

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

View File

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