14 #ifndef LLVM_MC_MCSECTIONMACHO_H
15 #define LLVM_MC_MCSECTIONMACHO_H
31 unsigned TypeAndAttributes;
46 SECTION_TYPE = 0x000000FFU,
47 SECTION_ATTRIBUTES = 0xFFFFFF00U,
111 S_ATTR_PURE_INSTRUCTIONS = 1U << 31,
114 S_ATTR_NO_TOC = 1U << 30,
117 S_ATTR_STRIP_STATIC_SYMS = 1U << 29,
119 S_ATTR_NO_DEAD_STRIP = 1U << 28,
121 S_ATTR_LIVE_SUPPORT = 1U << 27,
124 S_ATTR_SELF_MODIFYING_CODE = 1U << 26,
126 S_ATTR_DEBUG = 1U << 25,
128 S_ATTR_SOME_INSTRUCTIONS = 1U << 10,
130 S_ATTR_EXT_RELOC = 1U << 9,
132 S_ATTR_LOC_RELOC = 1U << 8
159 unsigned getType()
const {
return TypeAndAttributes & SECTION_TYPE; }
161 return (TypeAndAttributes & Value) != 0;
179 const MCExpr *Subsection)
const;
SectionVariant getVariant() const
virtual std::string getLabelEndName() const
static bool classof(const MCSection *S)
virtual bool UseCodeAlign() const
StringRef getSectionName() const
unsigned getStubSize() const
static std::string ParseSectionSpecifier(StringRef Spec, StringRef &Segment, StringRef &Section, unsigned &TAA, bool &TAAParsed, unsigned &StubSize)
bool hasAttribute(unsigned Value) const
virtual bool isVirtualSection() const
StringRef getSegmentName() const
virtual std::string getLabelBeginName() const
virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS, const MCExpr *Subsection) const
unsigned getTypeAndAttributes() const
LLVM Value Representation.
enum LLVM_ENUM_INT_TYPE(uint32_t)