mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Add .pdata and .xdata sections to the COFF TLOF implementation.
llvm-svn: 131763
This commit is contained in:
parent
909aff492f
commit
989cc73ef3
@ -58,6 +58,8 @@ public:
|
||||
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
|
||||
|
||||
virtual const MCSection *getEHFrameSection() const;
|
||||
virtual const MCSection *getWin64EHFuncTableSection() const { return NULL; }
|
||||
virtual const MCSection *getWin64EHTableSection() const { return NULL; }
|
||||
|
||||
virtual void emitPersonalityValue(MCStreamer &Streamer,
|
||||
const TargetMachine &TM,
|
||||
@ -133,6 +135,8 @@ public:
|
||||
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
|
||||
|
||||
virtual const MCSection *getEHFrameSection() const;
|
||||
virtual const MCSection *getWin64EHFuncTableSection() const { return NULL; }
|
||||
virtual const MCSection *getWin64EHTableSection() const { return NULL; }
|
||||
|
||||
virtual const MCSection *
|
||||
SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
|
||||
@ -196,6 +200,8 @@ public:
|
||||
|
||||
class TargetLoweringObjectFileCOFF : public TargetLoweringObjectFile {
|
||||
const MCSection *DrectveSection;
|
||||
const MCSection *PDataSection;
|
||||
const MCSection *XDataSection;
|
||||
public:
|
||||
TargetLoweringObjectFileCOFF() {}
|
||||
~TargetLoweringObjectFileCOFF() {}
|
||||
@ -203,6 +209,10 @@ public:
|
||||
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
|
||||
|
||||
virtual const MCSection *getEHFrameSection() const;
|
||||
virtual const MCSection *getWin64EHFuncTableSection() const {
|
||||
return PDataSection;
|
||||
}
|
||||
virtual const MCSection *getWin64EHTableSection() const {return XDataSection;}
|
||||
|
||||
virtual const MCSection *getDrectveSection() const { return DrectveSection; }
|
||||
|
||||
|
@ -155,6 +155,8 @@ public:
|
||||
const MCSection *getTLSExtraDataSection() const {
|
||||
return TLSExtraDataSection;
|
||||
}
|
||||
virtual const MCSection *getWin64EHFuncTableSection() const = 0;
|
||||
virtual const MCSection *getWin64EHTableSection() const = 0;
|
||||
|
||||
/// shouldEmitUsedDirectiveFor - This hook allows targets to selectively
|
||||
/// decide not to emit the UsedDirective for some symbols in llvm.used.
|
||||
|
@ -941,6 +941,7 @@ void TargetLoweringObjectFileCOFF::Initialize(MCContext &Ctx,
|
||||
SectionKind::getMetadata());
|
||||
DwarfLineSection =
|
||||
getContext().getCOFFSection(".debug_line",
|
||||
SectionKind::getMetadata());
|
||||
COFF::IMAGE_SCN_MEM_DISCARDABLE |
|
||||
COFF::IMAGE_SCN_MEM_READ,
|
||||
SectionKind::getMetadata());
|
||||
@ -989,6 +990,20 @@ void TargetLoweringObjectFileCOFF::Initialize(MCContext &Ctx,
|
||||
getContext().getCOFFSection(".drectve",
|
||||
COFF::IMAGE_SCN_LNK_INFO,
|
||||
SectionKind::getMetadata());
|
||||
|
||||
PDataSection =
|
||||
getContext().getCOFFSection(".pdata",
|
||||
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
COFF::IMAGE_SCN_MEM_READ |
|
||||
COFF::IMAGE_SCN_MEM_WRITE,
|
||||
SectionKind::getDataRel());
|
||||
|
||||
XDataSection =
|
||||
getContext().getCOFFSection(".xdata",
|
||||
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
COFF::IMAGE_SCN_MEM_READ |
|
||||
COFF::IMAGE_SCN_MEM_WRITE,
|
||||
SectionKind::getDataRel());
|
||||
}
|
||||
|
||||
const MCSection *TargetLoweringObjectFileCOFF::getEHFrameSection() const {
|
||||
|
Loading…
Reference in New Issue
Block a user