LLVM
15.0.0git
|
#include "Target/Lanai/MCTargetDesc/LanaiMCExpr.h"
Public Types | |
enum | VariantKind { VK_Lanai_None, VK_Lanai_ABS_HI, VK_Lanai_ABS_LO } |
![]() | |
enum | ExprKind : uint8_t { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
VariantKind | getKind () const |
const MCExpr * | getSubExpr () const |
void | printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const override |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const override |
void | visitUsedExpr (MCStreamer &Streamer) const override |
MCFragment * | findAssociatedFragment () const override |
void | fixELFSymbolsInTLSFixups (MCAssembler &) const override |
![]() | |
virtual bool | isEqualTo (const MCExpr *x) const |
virtual bool | inlineAssignedExpr () const |
![]() | |
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 const LanaiMCExpr * | create (VariantKind Kind, const MCExpr *Expr, MCContext &Ctx) |
static bool | classof (const MCExpr *E) |
![]() | |
static bool | classof (const MCExpr *E) |
Additional Inherited Members | |
![]() | |
MCTargetExpr () | |
virtual | ~MCTargetExpr ()=default |
![]() | |
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 17 of file LanaiMCExpr.h.
Enumerator | |
---|---|
VK_Lanai_None | |
VK_Lanai_ABS_HI | |
VK_Lanai_ABS_LO |
Definition at line 19 of file LanaiMCExpr.h.
Definition at line 49 of file LanaiMCExpr.h.
References E, and llvm::MCExpr::Target.
|
static |
Definition at line 17 of file LanaiMCExpr.cpp.
Referenced by llvm::LanaiMCInstLower::LowerSymbolOperand().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 49 of file LanaiMCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), Fixup, llvm::MCValue::get(), llvm::MCValue::getConstant(), getKind(), getSubExpr(), llvm::MCValue::getSymA(), and llvm::MCValue::getSymB().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 42 of file LanaiMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 47 of file LanaiMCExpr.h.
|
inline |
Definition at line 33 of file LanaiMCExpr.h.
Referenced by evaluateAsRelocatableImpl(), and shouldBeSls().
Definition at line 36 of file LanaiMCExpr.h.
Referenced by evaluateAsRelocatableImpl(), findAssociatedFragment(), printImpl(), and visitUsedExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 22 of file LanaiMCExpr.cpp.
References getSubExpr(), llvm_unreachable, llvm::MCExpr::print(), VK_Lanai_ABS_HI, VK_Lanai_ABS_LO, and VK_Lanai_None.
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 45 of file LanaiMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().