1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Now that the default for Darwin platforms is to place the LSDA into the TEXT

section, remove the target-specific code that performs this.

llvm-svn: 98580
This commit is contained in:
Bill Wendling 2010-03-15 21:09:38 +00:00
parent 45a0ae21b8
commit 5493cf6715
11 changed files with 6 additions and 133 deletions

View File

@ -560,8 +560,8 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
} }
// Exception Handling. // Exception Handling.
LSDASection = getMachOSection("__DATA", "__gcc_except_tab", 0, LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
SectionKind::getDataRel()); SectionKind::getReadOnlyWithRel());
EHFrameSection = EHFrameSection =
getMachOSection("__TEXT", "__eh_frame", getMachOSection("__TEXT", "__eh_frame",
MCSectionMachO::S_COALESCED | MCSectionMachO::S_COALESCED |
@ -788,7 +788,7 @@ unsigned TargetLoweringObjectFileMachO::getFDEEncoding() const {
} }
unsigned TargetLoweringObjectFileMachO::getTTypeEncoding() const { unsigned TargetLoweringObjectFileMachO::getTTypeEncoding() const {
return DW_EH_PE_absptr; return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
} }
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -130,7 +130,7 @@ void ARMTargetLowering::addQRTypeForNEON(EVT VT) {
static TargetLoweringObjectFile *createTLOF(TargetMachine &TM) { static TargetLoweringObjectFile *createTLOF(TargetMachine &TM) {
if (TM.getSubtarget<ARMSubtarget>().isTargetDarwin()) if (TM.getSubtarget<ARMSubtarget>().isTargetDarwin())
return new ARMMachOTargetObjectFile(); return new TargetLoweringObjectFileMachO();
return new ARMElfTargetObjectFile(); return new ARMElfTargetObjectFile();
} }

View File

@ -10,7 +10,6 @@
#include "ARMTargetObjectFile.h" #include "ARMTargetObjectFile.h"
#include "ARMSubtarget.h" #include "ARMSubtarget.h"
#include "llvm/MC/MCSectionELF.h" #include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/Support/Dwarf.h" #include "llvm/Support/Dwarf.h"
#include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetMachine.h"
using namespace llvm; using namespace llvm;
@ -35,20 +34,3 @@ void ARMElfTargetObjectFile::Initialize(MCContext &Ctx,
SectionKind::getDataRel()); SectionKind::getDataRel());
} }
} }
//===----------------------------------------------------------------------===//
// Mach-O Target
//===----------------------------------------------------------------------===//
void ARMMachOTargetObjectFile::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
// Exception Handling.
LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
SectionKind::getReadOnlyWithRel());
}
unsigned ARMMachOTargetObjectFile::getTTypeEncoding() const {
return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
}

View File

@ -24,18 +24,6 @@ public:
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM); virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
}; };
// FIXME: This subclass isn't 100% necessary. It will become obsolete once we
// can place all LSDAs into the TEXT section. See
// <rdar://problem/6804645>.
class ARMMachOTargetObjectFile : public TargetLoweringObjectFileMachO {
public:
ARMMachOTargetObjectFile() : TargetLoweringObjectFileMachO() {}
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
virtual unsigned getTTypeEncoding() const;
};
} // end namespace llvm } // end namespace llvm
#endif #endif

View File

@ -24,7 +24,6 @@ add_llvm_target(PowerPCCodeGen
PPCRegisterInfo.cpp PPCRegisterInfo.cpp
PPCSubtarget.cpp PPCSubtarget.cpp
PPCTargetMachine.cpp PPCTargetMachine.cpp
PPCTargetObjectFile.cpp
) )
target_link_libraries (LLVMPowerPCCodeGen LLVMSelectionDAG) target_link_libraries (LLVMPowerPCCodeGen LLVMSelectionDAG)

View File

@ -16,7 +16,6 @@
#include "PPCPerfectShuffle.h" #include "PPCPerfectShuffle.h"
#include "PPCPredicates.h" #include "PPCPredicates.h"
#include "PPCTargetMachine.h" #include "PPCTargetMachine.h"
#include "PPCTargetObjectFile.h"
#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/VectorExtras.h" #include "llvm/ADT/VectorExtras.h"
#include "llvm/CodeGen/CallingConvLower.h" #include "llvm/CodeGen/CallingConvLower.h"
@ -60,7 +59,7 @@ cl::desc("enable preincrement load/store generation on PPC (experimental)"),
static TargetLoweringObjectFile *CreateTLOF(const PPCTargetMachine &TM) { static TargetLoweringObjectFile *CreateTLOF(const PPCTargetMachine &TM) {
if (TM.getSubtargetImpl()->isDarwin()) if (TM.getSubtargetImpl()->isDarwin())
return new PPCMachOTargetObjectFile(); return new TargetLoweringObjectFileMachO();
return new TargetLoweringObjectFileELF(); return new TargetLoweringObjectFileELF();
} }

View File

@ -1,33 +0,0 @@
//===-- llvm/Target/PPCTargetObjectFile.cpp - PPC Object Info Impl --------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "PPCTargetObjectFile.h"
#include "PPCSubtarget.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Target/TargetMachine.h"
using namespace llvm;
using namespace dwarf;
//===----------------------------------------------------------------------===//
// Mach-O Target
//===----------------------------------------------------------------------===//
void PPCMachOTargetObjectFile::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
// Exception Handling.
LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
SectionKind::getReadOnlyWithRel());
}
unsigned PPCMachOTargetObjectFile::getTTypeEncoding() const {
return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
}

View File

@ -1,34 +0,0 @@
//===-- llvm/Target/PPCTargetObjectFile.h - PowerPC Object Info -*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_TARGET_PPC_TARGETOBJECTFILE_H
#define LLVM_TARGET_PPC_TARGETOBJECTFILE_H
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
namespace llvm {
class MCContext;
class TargetMachine;
// FIXME: This subclass isn't 100% necessary. It will become obsolete once we
// can place all LSDAs into the TEXT section. See
// <rdar://problem/6804645>.
class PPCMachOTargetObjectFile : public TargetLoweringObjectFileMachO {
public:
PPCMachOTargetObjectFile() : TargetLoweringObjectFileMachO() {}
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
virtual unsigned getTTypeEncoding() const;
};
} // end namespace llvm
#endif

View File

@ -37,7 +37,6 @@
#include "llvm/CodeGen/PseudoSourceValue.h" #include "llvm/CodeGen/PseudoSourceValue.h"
#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h" #include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCSymbol.h" #include "llvm/MC/MCSymbol.h"
#include "llvm/ADT/BitVector.h" #include "llvm/ADT/BitVector.h"
#include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallSet.h"
@ -74,11 +73,6 @@ static TargetLoweringObjectFile *createTLOF(X86TargetMachine &TM) {
switch (TM.getSubtarget<X86Subtarget>().TargetType) { switch (TM.getSubtarget<X86Subtarget>().TargetType) {
default: llvm_unreachable("unknown subtarget type"); default: llvm_unreachable("unknown subtarget type");
case X86Subtarget::isDarwin: case X86Subtarget::isDarwin:
if (TM.getSubtarget<X86Subtarget>().is64Bit())
return new X8664_MachoTargetObjectFile();
else
return new X86_MachoTargetObjectFile();
if (TM.getSubtarget<X86Subtarget>().is64Bit()) if (TM.getSubtarget<X86Subtarget>().is64Bit())
return new X8664_MachoTargetObjectFile(); return new X8664_MachoTargetObjectFile();
return new TargetLoweringObjectFileMachO(); return new TargetLoweringObjectFileMachO();

View File

@ -19,19 +19,6 @@
using namespace llvm; using namespace llvm;
using namespace dwarf; using namespace dwarf;
void X86_MachoTargetObjectFile::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
// Exception Handling.
LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
SectionKind::getReadOnlyWithRel());
}
unsigned X86_MachoTargetObjectFile::getTTypeEncoding() const {
return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
}
const MCExpr *X8664_MachoTargetObjectFile:: const MCExpr *X8664_MachoTargetObjectFile::
getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
MachineModuleInfo *MMI, unsigned Encoding, MachineModuleInfo *MMI, unsigned Encoding,

View File

@ -17,18 +17,9 @@
namespace llvm { namespace llvm {
class X86TargetMachine; class X86TargetMachine;
/// X86_MachoTargetObjectFile - This TLOF implementation is used for Darwin
/// x86 variants.
class X86_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
public:
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
virtual unsigned getTTypeEncoding() const;
};
/// X8664_MachoTargetObjectFile - This TLOF implementation is used for Darwin /// X8664_MachoTargetObjectFile - This TLOF implementation is used for Darwin
/// x86-64. /// x86-64.
class X8664_MachoTargetObjectFile : public X86_MachoTargetObjectFile { class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
public: public:
virtual const MCExpr * virtual const MCExpr *
getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,