LLVM 20.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 } |
Public Types inherited from llvm::MCExpr | |
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 MCAssembler *Asm, 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. | |
const MCExpr * | getSubExpr () const |
getSubExpr - Get the child of this expression. | |
Public Member Functions inherited from llvm::MCTargetExpr | |
virtual void | printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const =0 |
virtual bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const =0 |
virtual bool | isEqualTo (const MCExpr *x) const |
virtual bool | isSymbolUsedInExpression (const MCSymbol *Sym) const |
virtual bool | inlineAssignedExpr () const |
virtual void | visitUsedExpr (MCStreamer &Streamer) const =0 |
virtual MCFragment * | findAssociatedFragment () const =0 |
virtual void | fixELFSymbolsInTLSFixups (MCAssembler &) const =0 |
Public Member Functions inherited from llvm::MCExpr | |
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 | isSymbolUsedInExpression (const MCSymbol *Sym) const |
Returns whether the given symbol is used anywhere in the expression or subexpressions. | |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm, const SectionAddrMap &Addrs) const |
Try to evaluate the expression to an absolute value. | |
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 | evaluateKnownAbsolute (int64_t &Res, const MCAssembler &Asm) const |
Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g. | |
bool | evaluateAsRelocatable (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const |
Try to evaluate the expression to a relocatable value, i.e. | |
bool | evaluateAsValue (MCValue &Res, const MCAssembler &Asm) const |
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables. | |
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. | |
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 Public Member Functions inherited from llvm::MCTargetExpr | |
static bool | classof (const MCExpr *E) |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCTargetExpr | |
MCTargetExpr () | |
virtual | ~MCTargetExpr ()=default |
Protected Member Functions inherited from llvm::MCExpr | |
MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0) | |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const |
unsigned | getSubclassData () const |
Definition at line 17 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 19 of file PPCMCExpr.h.
Definition at line 85 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 56 of file PPCMCExpr.h.
References create(), and VK_PPC_HA.
Referenced by GetSymbolRef().
|
inlinestatic |
Definition at line 52 of file PPCMCExpr.h.
|
inlinestatic |
Definition at line 48 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 102 of file PPCMCExpr.cpp.
References 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(), getSubExpr(), llvm_unreachable, Sym, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_PPC_HA, VK_PPC_HA, llvm::MCSymbolRefExpr::VK_PPC_HI, VK_PPC_HI, llvm::MCSymbolRefExpr::VK_PPC_HIGH, VK_PPC_HIGH, llvm::MCSymbolRefExpr::VK_PPC_HIGHA, VK_PPC_HIGHA, llvm::MCSymbolRefExpr::VK_PPC_HIGHER, VK_PPC_HIGHER, llvm::MCSymbolRefExpr::VK_PPC_HIGHERA, VK_PPC_HIGHERA, llvm::MCSymbolRefExpr::VK_PPC_HIGHEST, VK_PPC_HIGHEST, llvm::MCSymbolRefExpr::VK_PPC_HIGHESTA, VK_PPC_HIGHESTA, llvm::MCSymbolRefExpr::VK_PPC_LO, and VK_PPC_LO.
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 76 of file PPCMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 81 of file PPCMCExpr.h.
|
inline |
getOpcode - Get the kind of this expression.
Definition at line 65 of file PPCMCExpr.h.
getSubExpr - Get the child of this expression.
Definition at line 68 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, OS, 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 171 of file PPCMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().