LLVM
17.0.0git
|
#include "Target/PowerPC/MCTargetDesc/PPCMCExpr.h"
Public Types | |
enum | VariantKind { VK_PPC_None, VK_PPC_LO, VK_PPC_HI, VK_PPC_HA, VK_PPC_HIGH, VK_PPC_HIGHA, VK_PPC_HIGHER, VK_PPC_HIGHERA, VK_PPC_HIGHEST, VK_PPC_HIGHESTA } |
![]() | |
enum | ExprKind : uint8_t { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
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 &Asm) const override |
bool | evaluateAsConstant (int64_t &Res) const |
Accessors | |
VariantKind | getKind () const |
getOpcode - Get the kind of this expression. More... | |
const MCExpr * | getSubExpr () const |
getSubExpr - Get the child of this expression. More... | |
![]() | |
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 bool | classof (const MCExpr *E) |
Construction | |
static const PPCMCExpr * | create (VariantKind Kind, const MCExpr *Expr, MCContext &Ctx) |
static const PPCMCExpr * | createLo (const MCExpr *Expr, MCContext &Ctx) |
static const PPCMCExpr * | createHi (const MCExpr *Expr, MCContext &Ctx) |
static const PPCMCExpr * | createHa (const MCExpr *Expr, MCContext &Ctx) |
![]() | |
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 18 of file PPCMCExpr.h.
Enumerator | |
---|---|
VK_PPC_None | |
VK_PPC_LO | |
VK_PPC_HI | |
VK_PPC_HA | |
VK_PPC_HIGH | |
VK_PPC_HIGHA | |
VK_PPC_HIGHER | |
VK_PPC_HIGHERA | |
VK_PPC_HIGHEST | |
VK_PPC_HIGHESTA |
Definition at line 20 of file PPCMCExpr.h.
Definition at line 87 of file PPCMCExpr.h.
References E, and llvm::MCExpr::Target.
|
static |
Definition at line 20 of file PPCMCExpr.cpp.
Referenced by createHa(), createHi(), and createLo().
|
inlinestatic |
Definition at line 57 of file PPCMCExpr.h.
References create(), and VK_PPC_HA.
Referenced by GetSymbolRef().
|
inlinestatic |
Definition at line 53 of file PPCMCExpr.h.
|
inlinestatic |
Definition at line 49 of file PPCMCExpr.h.
References create(), and VK_PPC_LO.
Referenced by GetSymbolRef().
bool PPCMCExpr::evaluateAsConstant | ( | int64_t & | Res | ) | const |
Definition at line 62 of file PPCMCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), and getSubExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 103 of file PPCMCExpr.cpp.
References Context, llvm::MCSymbolRefExpr::create(), llvm::MCExpr::evaluateAsRelocatable(), Fixup, llvm::PPC::fixup_ppc_half16, llvm::PPC::fixup_ppc_half16dq, llvm::PPC::fixup_ppc_half16ds, llvm::MCValue::get(), llvm::MCAsmLayout::getAssembler(), llvm::MCAssembler::getContext(), llvm::MCSymbolRefExpr::getKind(), getSubExpr(), llvm::MCSymbolRefExpr::getSymbol(), llvm_unreachable, llvm::MCSymbolRefExpr::VK_None, VK_PPC_HA, llvm::MCSymbolRefExpr::VK_PPC_HA, VK_PPC_HI, llvm::MCSymbolRefExpr::VK_PPC_HI, VK_PPC_HIGH, llvm::MCSymbolRefExpr::VK_PPC_HIGH, VK_PPC_HIGHA, llvm::MCSymbolRefExpr::VK_PPC_HIGHA, VK_PPC_HIGHER, llvm::MCSymbolRefExpr::VK_PPC_HIGHER, VK_PPC_HIGHERA, llvm::MCSymbolRefExpr::VK_PPC_HIGHERA, VK_PPC_HIGHEST, llvm::MCSymbolRefExpr::VK_PPC_HIGHEST, VK_PPC_HIGHESTA, llvm::MCSymbolRefExpr::VK_PPC_HIGHESTA, VK_PPC_LO, llvm::MCSymbolRefExpr::VK_PPC_LO, and x3.
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 78 of file PPCMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 83 of file PPCMCExpr.h.
|
inline |
getOpcode - Get the kind of this expression.
Definition at line 66 of file PPCMCExpr.h.
getSubExpr - Get the child of this expression.
Definition at line 69 of file PPCMCExpr.h.
Referenced by evaluateAsConstant(), evaluateAsRelocatableImpl(), findAssociatedFragment(), printImpl(), and visitUsedExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 25 of file PPCMCExpr.cpp.
References getSubExpr(), llvm_unreachable, llvm::MCExpr::print(), VK_PPC_HA, VK_PPC_HI, VK_PPC_HIGH, VK_PPC_HIGHA, VK_PPC_HIGHER, VK_PPC_HIGHERA, VK_PPC_HIGHEST, VK_PPC_HIGHESTA, and VK_PPC_LO.
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 173 of file PPCMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().