16 #define DEBUG_TYPE "lanaimcexpr"
This represents an "assembler immediate".
bool evaluateAsRelocatableImpl(MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const override
static const LanaiMCExpr * create(VariantKind Kind, const MCExpr *Expr, MCContext &Ctx)
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Encapsulates the layout of an assembly file at a particular point in time.
Base class for the full range of assembler expressions which are needed for parsing.
Context object for machine code objects.
This class is intended to be used as a base class for asm properties and features specific to the tar...
VariantKind getKind() const
Streaming machine code generation interface.
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override
const MCSymbolRefExpr * getSymB() const
const MCExpr * getSubExpr() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
const MCSymbolRefExpr * getSymA() const
bool evaluateAsRelocatable(MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const
Try to evaluate the expression to a relocatable value, i.e.
void visitUsedExpr(const MCExpr &Expr)
static MCValue get(const MCSymbolRefExpr *SymA, const MCSymbolRefExpr *SymB=nullptr, int64_t Val=0, uint32_t RefKind=0)
void visitUsedExpr(MCStreamer &Streamer) const override
void print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const
int64_t getConstant() const
This class implements an extremely fast bulk output stream that can only output to a stream...