summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h')
-rw-r--r--lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h14
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; }
OpenPOWER on IntegriCloud