diff options
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h')
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h index 5d283488cc7..3fc8ba7a51d 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h @@ -20,6 +20,10 @@ class MipsLinkingContext; /// \brief TargetLayout for Mips template <class ELFT> class MipsTargetLayout final : public TargetLayout<ELFT> { public: + enum MipsSectionOrder { + ORDER_MIPS_REGINFO = TargetLayout<ELFT>::ORDER_RO_NOTE + 1 + }; + MipsTargetLayout(MipsLinkingContext &ctx) : TargetLayout<ELFT>(ctx), _gotSection(new (this->_allocator) MipsGOTSection<ELFT>(ctx)), @@ -39,6 +43,16 @@ public: return TargetLayout<ELFT>::createSection(name, type, permissions, order); } + typename TargetLayout<ELFT>::SegmentType + getSegmentType(Section<ELFT> *section) const override { + switch (section->order()) { + case ORDER_MIPS_REGINFO: + return llvm::ELF::PT_MIPS_REGINFO; + default: + return TargetLayout<ELFT>::getSegmentType(section); + } + } + /// \brief GP offset relative to .got section. uint64_t getGPOffset() const { return 0x7FF0; } |