LLVM 20.0.0git
|
#include "Target/AArch64/MCTargetDesc/AArch64MCExpr.h"
Public Member Functions | |
AArch64PACKey::ID | getKey () const |
uint16_t | getDiscriminator () const |
bool | hasAddressDiversity () const |
void | printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const override |
void | visitUsedExpr (MCStreamer &Streamer) const override |
MCFragment * | findAssociatedFragment () const override |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const override |
Public Member Functions inherited from llvm::AArch64MCExpr | |
StringRef | getVariantKindName () const |
Convert the variant kind into an ELF-appropriate modifier (e.g. | |
void | printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const override |
void | visitUsedExpr (MCStreamer &Streamer) const override |
MCFragment * | findAssociatedFragment () const override |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const override |
void | fixELFSymbolsInTLSFixups (MCAssembler &Asm) const override |
VariantKind | getKind () const |
Get the kind of this expression. | |
const MCExpr * | getSubExpr () const |
Get the expression this modifier applies to. | |
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 | 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 | 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 const AArch64AuthMCExpr * | create (const MCExpr *Expr, uint16_t Discriminator, AArch64PACKey::ID Key, bool HasAddressDiversity, MCContext &Ctx) |
static bool | classof (const MCExpr *E) |
static bool | classof (const AArch64MCExpr *E) |
Static Public Member Functions inherited from llvm::AArch64MCExpr | |
static bool | classof (const MCExpr *E) |
static const AArch64MCExpr * | create (const MCExpr *Expr, VariantKind Kind, MCContext &Ctx) |
static VariantKind | getSymbolLoc (VariantKind Kind) |
static VariantKind | getAddressFrag (VariantKind Kind) |
static bool | isNotChecked (VariantKind Kind) |
Static Public Member Functions inherited from llvm::MCTargetExpr | |
static bool | classof (const MCExpr *E) |
Additional Inherited Members | |
Public Types inherited from llvm::AArch64MCExpr | |
enum | VariantKind { VK_ABS = 0x001 , VK_SABS = 0x002 , VK_PREL = 0x003 , VK_GOT = 0x004 , VK_DTPREL = 0x005 , VK_GOTTPREL = 0x006 , VK_TPREL = 0x007 , VK_TLSDESC = 0x008 , VK_SECREL = 0x009 , VK_AUTH = 0x00a , VK_AUTHADDR = 0x00b , VK_SymLocBits = 0x00f , VK_PAGE = 0x010 , VK_PAGEOFF = 0x020 , VK_HI12 = 0x030 , VK_G0 = 0x040 , VK_G1 = 0x050 , VK_G2 = 0x060 , VK_G3 = 0x070 , VK_LO15 = 0x080 , VK_AddressFragBits = 0x0f0 , VK_NC = 0x100 , VK_CALL = VK_ABS , VK_ABS_PAGE = VK_ABS | VK_PAGE , VK_ABS_PAGE_NC = VK_ABS | VK_PAGE | VK_NC , VK_ABS_G3 = VK_ABS | VK_G3 , VK_ABS_G2 = VK_ABS | VK_G2 , VK_ABS_G2_S = VK_SABS | VK_G2 , VK_ABS_G2_NC = VK_ABS | VK_G2 | VK_NC , VK_ABS_G1 = VK_ABS | VK_G1 , VK_ABS_G1_S = VK_SABS | VK_G1 , VK_ABS_G1_NC = VK_ABS | VK_G1 | VK_NC , VK_ABS_G0 = VK_ABS | VK_G0 , VK_ABS_G0_S = VK_SABS | VK_G0 , VK_ABS_G0_NC = VK_ABS | VK_G0 | VK_NC , VK_LO12 = VK_ABS | VK_PAGEOFF | VK_NC , VK_PREL_G3 = VK_PREL | VK_G3 , VK_PREL_G2 = VK_PREL | VK_G2 , VK_PREL_G2_NC = VK_PREL | VK_G2 | VK_NC , VK_PREL_G1 = VK_PREL | VK_G1 , VK_PREL_G1_NC = VK_PREL | VK_G1 | VK_NC , VK_PREL_G0 = VK_PREL | VK_G0 , VK_PREL_G0_NC = VK_PREL | VK_G0 | VK_NC , VK_GOT_LO12 = VK_GOT | VK_PAGEOFF | VK_NC , VK_GOT_PAGE = VK_GOT | VK_PAGE , VK_GOT_PAGE_LO15 = VK_GOT | VK_LO15 | VK_NC , VK_DTPREL_G2 = VK_DTPREL | VK_G2 , VK_DTPREL_G1 = VK_DTPREL | VK_G1 , VK_DTPREL_G1_NC = VK_DTPREL | VK_G1 | VK_NC , VK_DTPREL_G0 = VK_DTPREL | VK_G0 , VK_DTPREL_G0_NC = VK_DTPREL | VK_G0 | VK_NC , VK_DTPREL_HI12 = VK_DTPREL | VK_HI12 , VK_DTPREL_LO12 = VK_DTPREL | VK_PAGEOFF , VK_DTPREL_LO12_NC = VK_DTPREL | VK_PAGEOFF | VK_NC , VK_GOTTPREL_PAGE = VK_GOTTPREL | VK_PAGE , VK_GOTTPREL_LO12_NC = VK_GOTTPREL | VK_PAGEOFF | VK_NC , VK_GOTTPREL_G1 = VK_GOTTPREL | VK_G1 , VK_GOTTPREL_G0_NC = VK_GOTTPREL | VK_G0 | VK_NC , VK_TPREL_G2 = VK_TPREL | VK_G2 , VK_TPREL_G1 = VK_TPREL | VK_G1 , VK_TPREL_G1_NC = VK_TPREL | VK_G1 | VK_NC , VK_TPREL_G0 = VK_TPREL | VK_G0 , VK_TPREL_G0_NC = VK_TPREL | VK_G0 | VK_NC , VK_TPREL_HI12 = VK_TPREL | VK_HI12 , VK_TPREL_LO12 = VK_TPREL | VK_PAGEOFF , VK_TPREL_LO12_NC = VK_TPREL | VK_PAGEOFF | VK_NC , VK_TLSDESC_LO12 = VK_TLSDESC | VK_PAGEOFF , VK_TLSDESC_PAGE = VK_TLSDESC | VK_PAGE , VK_SECREL_LO12 = VK_SECREL | VK_PAGEOFF , VK_SECREL_HI12 = VK_SECREL | VK_HI12 , VK_INVALID = 0xfff } |
Public Types inherited from llvm::MCExpr | |
enum | ExprKind : uint8_t { Binary , Constant , SymbolRef , Unary , Target } |
Protected Member Functions inherited from llvm::AArch64MCExpr | |
AArch64MCExpr (const MCExpr *Expr, VariantKind Kind) | |
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 180 of file AArch64MCExpr.h.
|
inlinestatic |
Definition at line 211 of file AArch64MCExpr.h.
References E, llvm::AArch64MCExpr::VK_AUTH, and llvm::AArch64MCExpr::VK_AUTHADDR.
Definition at line 207 of file AArch64MCExpr.h.
Referenced by classof().
|
static |
Definition at line 158 of file AArch64MCExpr.cpp.
Referenced by getAuthPtrSlotSymbolHelper().
|
overridevirtual |
Reimplemented from llvm::AArch64MCExpr.
Definition at line 189 of file AArch64MCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), Fixup, llvm::MCValue::get(), llvm::MCValue::getConstant(), llvm::AArch64MCExpr::getKind(), llvm::AArch64MCExpr::getSubExpr(), llvm::MCValue::getSymA(), llvm::MCValue::getSymB(), and llvm::report_fatal_error().
|
overridevirtual |
Reimplemented from llvm::AArch64MCExpr.
Definition at line 185 of file AArch64MCExpr.cpp.
References llvm_unreachable.
|
inline |
Definition at line 195 of file AArch64MCExpr.h.
|
inline |
Definition at line 194 of file AArch64MCExpr.h.
|
inline |
Definition at line 196 of file AArch64MCExpr.h.
References llvm::AArch64MCExpr::getKind(), and llvm::AArch64MCExpr::VK_AUTHADDR.
Referenced by printImpl().
|
overridevirtual |
Reimplemented from llvm::AArch64MCExpr.
Definition at line 167 of file AArch64MCExpr.cpp.
References llvm::AArch64PACKeyIDToString(), llvm::AArch64MCExpr::getSubExpr(), hasAddressDiversity(), OS, and llvm::MCExpr::print().
|
overridevirtual |
Reimplemented from llvm::AArch64MCExpr.
Definition at line 181 of file AArch64MCExpr.cpp.
References llvm::AArch64MCExpr::getSubExpr(), and llvm::MCStreamer::visitUsedExpr().