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;
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; }
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;
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;
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())