LLVM
17.0.0git
|
Unary assembler expressions. More...
#include "llvm/MC/MCExpr.h"
Public Types | |
enum | Opcode { LNot, Minus, Not, Plus } |
![]() | |
enum | ExprKind : uint8_t { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
Accessors | |
Opcode | getOpcode () const |
Get the kind of this unary expression. More... | |
const MCExpr * | getSubExpr () const |
Get the child of this unary expression. More... | |
![]() | |
MCExpr (const MCExpr &)=delete | |
MCExpr & | operator= (const MCExpr &)=delete |
ExprKind | getKind () const |
SMLoc | getLoc () const |
void | print (raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const |
void | dump () const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout, const SectionAddrMap &Addrs) const |
Try to evaluate the expression to an absolute value. More... | |
bool | evaluateAsAbsolute (int64_t &Res) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateKnownAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateAsRelocatable (MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const |
Try to evaluate the expression to a relocatable value, i.e. More... | |
bool | evaluateAsValue (MCValue &Res, const MCAsmLayout &Layout) const |
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables. More... | |
MCFragment * | findAssociatedFragment () const |
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. More... | |
Static Public Member Functions | |
static bool | classof (const MCExpr *E) |
Construction | |
static const MCUnaryExpr * | create (Opcode Op, const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc()) |
static const MCUnaryExpr * | createLNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc()) |
static const MCUnaryExpr * | createMinus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc()) |
static const MCUnaryExpr * | createNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc()) |
static const MCUnaryExpr * | createPlus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc()) |
Additional Inherited Members | |
![]() | |
MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0) | |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const |
unsigned | getSubclassData () const |
Definition at line 475 of file MCExpr.h.
References E, and llvm::MCExpr::Unary.
|
static |
Definition at line 189 of file MCExpr.cpp.
Referenced by createLNot(), createMinus(), createNot(), and createPlus().
|
inlinestatic |
Definition at line 451 of file MCExpr.h.
References create(), and Minus.
Referenced by addNegOperand(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().
|
inline |
Get the kind of this unary expression.
Definition at line 468 of file MCExpr.h.
References llvm::MCExpr::getSubclassData().
Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), and llvm::MCExpr::print().
Get the child of this unary expression.
Definition at line 471 of file MCExpr.h.
Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), and llvm::MCExpr::print().