From b3eb86c875d42b47a9c741c4a74f623556959f9d Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 25 May 2015 14:25:28 +0000 Subject: [PATCH] Move LayoutOrder to MCSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238141 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCAssembler.h | 6 ------ include/llvm/MC/MCSection.h | 5 +++++ lib/MC/MCAssembler.cpp | 2 +- lib/MC/MachObjectWriter.cpp | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/include/llvm/MC/MCAssembler.h b/include/llvm/MC/MCAssembler.h index c060c246975..ac6864a9e58 100644 --- a/include/llvm/MC/MCAssembler.h +++ b/include/llvm/MC/MCAssembler.h @@ -559,9 +559,6 @@ private: FragmentListType Fragments; MCSection *Section; - /// LayoutOrder - The index of this section in the layout order. - unsigned LayoutOrder; - /// \brief Keeping track of bundle-locked state. BundleLockStateType BundleLockState; @@ -597,9 +594,6 @@ public: bool hasInstructions() const { return HasInstructions; } void setHasInstructions(bool Value) { HasInstructions = Value; } - unsigned getLayoutOrder() const { return LayoutOrder; } - void setLayoutOrder(unsigned Value) { LayoutOrder = Value; } - /// \name Fragment Access /// @{ diff --git a/include/llvm/MC/MCSection.h b/include/llvm/MC/MCSection.h index dfe3dc90923..5a60a872429 100644 --- a/include/llvm/MC/MCSection.h +++ b/include/llvm/MC/MCSection.h @@ -41,6 +41,8 @@ private: unsigned Alignment = 1; /// The section index in the assemblers section list. unsigned Ordinal = 0; + /// The index of this section in the layout order. + unsigned LayoutOrder; protected: MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin) @@ -72,6 +74,9 @@ public: unsigned getOrdinal() const { return Ordinal; } void setOrdinal(unsigned Value) { Ordinal = Value; } + unsigned getLayoutOrder() const { return LayoutOrder; } + void setLayoutOrder(unsigned Value) { LayoutOrder = 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 2e15af69f4c..cb11555ab51 100644 --- a/lib/MC/MCAssembler.cpp +++ b/lib/MC/MCAssembler.cpp @@ -895,7 +895,7 @@ void MCAssembler::Finish() { // Assign layout order indices to sections and fragments. for (unsigned i = 0, e = Layout.getSectionOrder().size(); i != e; ++i) { MCSectionData *SD = Layout.getSectionOrder()[i]; - SD->setLayoutOrder(i); + SD->getSection().setLayoutOrder(i); unsigned FragmentIndex = 0; for (MCSectionData::iterator iFrag = SD->begin(), iFragEnd = SD->end(); diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 1eaf2a951cf..45096d428b7 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -108,7 +108,7 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S, uint64_t MachObjectWriter::getPaddingSize(const MCSectionData *SD, const MCAsmLayout &Layout) const { uint64_t EndAddr = getSectionAddress(SD) + Layout.getSectionAddressSize(SD); - unsigned Next = SD->getLayoutOrder() + 1; + unsigned Next = SD->getSection().getLayoutOrder() + 1; if (Next >= Layout.getSectionOrder().size()) return 0;