From ebfcad3e730e212a22b7fd049f28c61442f0759a Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 25 May 2015 14:00:56 +0000 Subject: [PATCH] Move Ordinal from MCSectionData to MCSection. NFC. Part of the work to merge MCSectionData and MCSection. llvm-svn: 238137 --- include/llvm/MC/MCAssembler.h | 7 ++----- include/llvm/MC/MCSection.h | 8 +++++++- lib/MC/MCAssembler.cpp | 9 ++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/include/llvm/MC/MCAssembler.h b/include/llvm/MC/MCAssembler.h index 564691e3e18..8f0105f6c2e 100644 --- a/include/llvm/MC/MCAssembler.h +++ b/include/llvm/MC/MCAssembler.h @@ -559,9 +559,6 @@ private: FragmentListType Fragments; MCSection *Section; - /// Ordinal - The section index in the assemblers section list. - unsigned Ordinal; - /// LayoutOrder - The index of this section in the layout order. unsigned LayoutOrder; @@ -600,8 +597,8 @@ public: bool hasInstructions() const { return HasInstructions; } void setHasInstructions(bool Value) { HasInstructions = Value; } - unsigned getOrdinal() const { return Ordinal; } - void setOrdinal(unsigned Value) { Ordinal = Value; } + unsigned getOrdinal() const; + void setOrdinal(unsigned Value); unsigned getLayoutOrder() const { return LayoutOrder; } void setLayoutOrder(unsigned Value) { LayoutOrder = Value; } diff --git a/include/llvm/MC/MCSection.h b/include/llvm/MC/MCSection.h index 38e7e210950..7d5128a2d20 100644 --- a/include/llvm/MC/MCSection.h +++ b/include/llvm/MC/MCSection.h @@ -39,10 +39,13 @@ private: MCSymbol *End; /// The alignment requirement of this section. unsigned Alignment; + /// The section index in the assemblers section list. + unsigned Ordinal; protected: MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin) - : Begin(Begin), End(nullptr), Alignment(1), Variant(V), Kind(K) {} + : Begin(Begin), End(nullptr), Alignment(1), Ordinal(~UINT32_C(0)), + Variant(V), Kind(K) {} SectionVariant Variant; SectionKind Kind; @@ -67,6 +70,9 @@ public: unsigned getAlignment() const { return Alignment; } void setAlignment(unsigned Value) { Alignment = Value; } + unsigned getOrdinal() const { return Ordinal; } + void setOrdinal(unsigned Value) { Ordinal = Value; } + virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS, const MCExpr *Subsection) const = 0; diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp index 2c041e26ac9..879f894ab1d 100644 --- a/lib/MC/MCAssembler.cpp +++ b/lib/MC/MCAssembler.cpp @@ -293,13 +293,16 @@ MCEncodedFragmentWithFixups::~MCEncodedFragmentWithFixups() { MCSectionData::MCSectionData() : Section(nullptr) {} MCSectionData::MCSectionData(MCSection &Section, MCAssembler *A) - : Section(&Section), Ordinal(~UINT32_C(0)), - BundleLockState(NotBundleLocked), BundleLockNestingDepth(0), - BundleGroupBeforeFirstInst(false), HasInstructions(false) { + : Section(&Section), BundleLockState(NotBundleLocked), + BundleLockNestingDepth(0), BundleGroupBeforeFirstInst(false), + HasInstructions(false) { if (A) A->getSectionList().push_back(this); } +unsigned MCSectionData::getOrdinal() const { return Section->getOrdinal(); } +void MCSectionData::setOrdinal(unsigned Value) { Section->setOrdinal(Value); } + MCSectionData::iterator MCSectionData::getSubsectionInsertionPoint(unsigned Subsection) { if (Subsection == 0 && SubsectionFragmentMap.empty())