class MCExpr
Declaration
class MCExpr { /* full declaration omitted */ };
Description
Base class for the full range of assembler expressions which are needed for parsing.
Declared at: llvm/include/llvm/MC/MCExpr.h:35
Member Variables
- private llvm::MCExpr::ExprKind Kind
- private unsigned int SubclassData
- Field reserved for use by MCExpr subclasses.
- private llvm::SMLoc Loc
- private static const unsigned int NumSubclassDataBits = 24
Method Overview
- protected MCExpr(llvm::MCExpr::ExprKind Kind, llvm::SMLoc Loc, unsigned int SubclassData = 0)
- public MCExpr(const llvm::MCExpr &)
- public void dump() const
- public bool evaluateAsAbsolute(int64_t & Res, const llvm::MCAsmLayout & Layout, const llvm::SectionAddrMap & Addrs) const
- public bool evaluateAsAbsolute(int64_t & Res, const llvm::MCAsmLayout & Layout) const
- public bool evaluateAsAbsolute(int64_t & Res, const llvm::MCAssembler * Asm) const
- public bool evaluateAsAbsolute(int64_t & Res, const llvm::MCAssembler & Asm) const
- public bool evaluateAsAbsolute(int64_t & Res) const
- private bool evaluateAsAbsolute(int64_t & Res, const llvm::MCAssembler * Asm, const llvm::MCAsmLayout * Layout, const llvm::SectionAddrMap * Addrs, bool InSet) const
- public bool evaluateAsRelocatable(llvm::MCValue & Res, const llvm::MCAsmLayout * Layout, const llvm::MCFixup * Fixup) const
- protected bool evaluateAsRelocatableImpl(llvm::MCValue & Res, const llvm::MCAssembler * Asm, const llvm::MCAsmLayout * Layout, const llvm::MCFixup * Fixup, const llvm::SectionAddrMap * Addrs, bool InSet) const
- public bool evaluateAsValue(llvm::MCValue & Res, const llvm::MCAsmLayout & Layout) const
- public bool evaluateKnownAbsolute(int64_t & Res, const llvm::MCAsmLayout & Layout) const
- public llvm::MCFragment * findAssociatedFragment() const
- public llvm::MCExpr::ExprKind getKind() const
- public llvm::SMLoc getLoc() const
- protected unsigned int getSubclassData() const
- public void print(llvm::raw_ostream & OS, const llvm::MCAsmInfo * MAI, bool InParens = false) const
Methods
¶MCExpr(llvm::MCExpr::ExprKind Kind,
llvm::SMLoc Loc,
unsigned int SubclassData = 0)
MCExpr(llvm::MCExpr::ExprKind Kind,
llvm::SMLoc Loc,
unsigned int SubclassData = 0)
Declared at: llvm/include/llvm/MC/MCExpr.h:61
Parameters
- llvm::MCExpr::ExprKind Kind
- llvm::SMLoc Loc
- unsigned int SubclassData = 0
¶MCExpr(const llvm::MCExpr&)
MCExpr(const llvm::MCExpr&)
Declared at: llvm/include/llvm/MC/MCExpr.h:75
Parameters
- const llvm::MCExpr&
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/MC/MCExpr.h:90
¶bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout,
const llvm::SectionAddrMap& Addrs) const
bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout,
const llvm::SectionAddrMap& Addrs) const
Description
Try to evaluate the expression to an absolute value.
Declared at: llvm/include/llvm/MC/MCExpr.h:103
Parameters
- int64_t& Res
- - The absolute value, if evaluation succeeds.
- const llvm::MCAsmLayout& Layout
- - The assembler layout object to use for evaluating symbol values. If not given, then only non-symbolic expressions will be evaluated.
- const llvm::SectionAddrMap& Addrs
Returns
- True on success.
¶bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout) const
bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout) const
Declared at: llvm/include/llvm/MC/MCExpr.h:108
Parameters
- int64_t& Res
- const llvm::MCAsmLayout& Layout
¶bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler* Asm) const
bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler* Asm) const
Declared at: llvm/include/llvm/MC/MCExpr.h:107
Parameters
- int64_t& Res
- const llvm::MCAssembler* Asm
¶bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler& Asm) const
bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler& Asm) const
Declared at: llvm/include/llvm/MC/MCExpr.h:106
Parameters
- int64_t& Res
- const llvm::MCAssembler& Asm
¶bool evaluateAsAbsolute(int64_t& Res) const
bool evaluateAsAbsolute(int64_t& Res) const
Declared at: llvm/include/llvm/MC/MCExpr.h:105
Parameters
- int64_t& Res
¶bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler* Asm,
const llvm::MCAsmLayout* Layout,
const llvm::SectionAddrMap* Addrs,
bool InSet) const
bool evaluateAsAbsolute(
int64_t& Res,
const llvm::MCAssembler* Asm,
const llvm::MCAsmLayout* Layout,
const llvm::SectionAddrMap* Addrs,
bool InSet) const
Declared at: llvm/include/llvm/MC/MCExpr.h:56
Parameters
- int64_t& Res
- const llvm::MCAssembler* Asm
- const llvm::MCAsmLayout* Layout
- const llvm::SectionAddrMap* Addrs
- bool InSet
¶bool evaluateAsRelocatable(
llvm::MCValue& Res,
const llvm::MCAsmLayout* Layout,
const llvm::MCFixup* Fixup) const
bool evaluateAsRelocatable(
llvm::MCValue& Res,
const llvm::MCAsmLayout* Layout,
const llvm::MCFixup* Fixup) const
Description
Try to evaluate the expression to a relocatable value, i.e. an expression of the fixed form (a - b + constant).
Declared at: llvm/include/llvm/MC/MCExpr.h:119
Parameters
- llvm::MCValue& Res
- - The relocatable value, if evaluation succeeds.
- const llvm::MCAsmLayout* Layout
- - The assembler layout object to use for evaluating values.
- const llvm::MCFixup* Fixup
- - The Fixup object if available.
Returns
- True on success.
¶bool evaluateAsRelocatableImpl(
llvm::MCValue& Res,
const llvm::MCAssembler* Asm,
const llvm::MCAsmLayout* Layout,
const llvm::MCFixup* Fixup,
const llvm::SectionAddrMap* Addrs,
bool InSet) const
bool evaluateAsRelocatableImpl(
llvm::MCValue& Res,
const llvm::MCAssembler* Asm,
const llvm::MCAsmLayout* Layout,
const llvm::MCFixup* Fixup,
const llvm::SectionAddrMap* Addrs,
bool InSet) const
Declared at: llvm/include/llvm/MC/MCExpr.h:67
Parameters
- llvm::MCValue& Res
- const llvm::MCAssembler* Asm
- const llvm::MCAsmLayout* Layout
- const llvm::MCFixup* Fixup
- const llvm::SectionAddrMap* Addrs
- bool InSet
¶bool evaluateAsValue(
llvm::MCValue& Res,
const llvm::MCAsmLayout& Layout) const
bool evaluateAsValue(
llvm::MCValue& Res,
const llvm::MCAsmLayout& Layout) const
Description
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables. This is a more aggressive variant of evaluateAsRelocatable. The intended use is for when relocations are not available, like the .size directive.
Declared at: llvm/include/llvm/MC/MCExpr.h:127
Parameters
- llvm::MCValue& Res
- const llvm::MCAsmLayout& Layout
¶bool evaluateKnownAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout) const
bool evaluateKnownAbsolute(
int64_t& Res,
const llvm::MCAsmLayout& Layout) const
Declared at: llvm/include/llvm/MC/MCExpr.h:110
Parameters
- int64_t& Res
- const llvm::MCAsmLayout& Layout
¶llvm::MCFragment* findAssociatedFragment() const
llvm::MCFragment* findAssociatedFragment() const
Description
Find the "associated section" for this expression, which is currently defined as the absolute section for constants, or otherwise the section associated with the first defined symbol in the expression.
Declared at: llvm/include/llvm/MC/MCExpr.h:133
¶llvm::MCExpr::ExprKind getKind() const
llvm::MCExpr::ExprKind getKind() const
Description
@ {
Declared at: llvm/include/llvm/MC/MCExpr.h:81
¶llvm::SMLoc getLoc() const
llvm::SMLoc getLoc() const
Declared at: llvm/include/llvm/MC/MCExpr.h:82
¶unsigned int getSubclassData() const
unsigned int getSubclassData() const
Declared at: llvm/include/llvm/MC/MCExpr.h:72
¶void print(llvm::raw_ostream& OS,
const llvm::MCAsmInfo* MAI,
bool InParens = false) const
void print(llvm::raw_ostream& OS,
const llvm::MCAsmInfo* MAI,
bool InParens = false) const
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCExpr.h:88
Parameters
- llvm::raw_ostream& OS
- const llvm::MCAsmInfo* MAI
- bool InParens = false