LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::AArch64AuthMCExpr Class Referencefinal

#include "Target/AArch64/MCTargetDesc/AArch64MCExpr.h"

Inheritance diagram for llvm::AArch64AuthMCExpr:
Inheritance graph
[legend]

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
 
MCFragmentfindAssociatedFragment () 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
 
MCFragmentfindAssociatedFragment () 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 MCExprgetSubExpr () 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 MCFragmentfindAssociatedFragment () const =0
 
virtual void fixELFSymbolsInTLSFixups (MCAssembler &) const =0
 
- Public Member Functions inherited from llvm::MCExpr
 MCExpr (const MCExpr &)=delete
 
MCExproperator= (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.
 
MCFragmentfindAssociatedFragment () 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 AArch64AuthMCExprcreate (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 AArch64MCExprcreate (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
 

Detailed Description

Definition at line 180 of file AArch64MCExpr.h.

Member Function Documentation

◆ classof() [1/2]

static bool llvm::AArch64AuthMCExpr::classof ( const AArch64MCExpr E)
inlinestatic

◆ classof() [2/2]

static bool llvm::AArch64AuthMCExpr::classof ( const MCExpr E)
inlinestatic

Definition at line 207 of file AArch64MCExpr.h.

References classof(), and E.

Referenced by classof().

◆ create()

const AArch64AuthMCExpr * AArch64AuthMCExpr::create ( const MCExpr Expr,
uint16_t  Discriminator,
AArch64PACKey::ID  Key,
bool  HasAddressDiversity,
MCContext Ctx 
)
static

Definition at line 158 of file AArch64MCExpr.cpp.

Referenced by getAuthPtrSlotSymbolHelper().

◆ evaluateAsRelocatableImpl()

bool AArch64AuthMCExpr::evaluateAsRelocatableImpl ( MCValue Res,
const MCAssembler Asm,
const MCFixup Fixup 
) const
overridevirtual

◆ findAssociatedFragment()

MCFragment * AArch64AuthMCExpr::findAssociatedFragment ( ) const
overridevirtual

Reimplemented from llvm::AArch64MCExpr.

Definition at line 185 of file AArch64MCExpr.cpp.

References llvm_unreachable.

◆ getDiscriminator()

uint16_t llvm::AArch64AuthMCExpr::getDiscriminator ( ) const
inline

Definition at line 195 of file AArch64MCExpr.h.

◆ getKey()

AArch64PACKey::ID llvm::AArch64AuthMCExpr::getKey ( ) const
inline

Definition at line 194 of file AArch64MCExpr.h.

◆ hasAddressDiversity()

bool llvm::AArch64AuthMCExpr::hasAddressDiversity ( ) const
inline

Definition at line 196 of file AArch64MCExpr.h.

References llvm::AArch64MCExpr::getKind(), and llvm::AArch64MCExpr::VK_AUTHADDR.

Referenced by printImpl().

◆ printImpl()

void AArch64AuthMCExpr::printImpl ( raw_ostream OS,
const MCAsmInfo MAI 
) const
overridevirtual

◆ visitUsedExpr()

void AArch64AuthMCExpr::visitUsedExpr ( MCStreamer Streamer) const
overridevirtual

Reimplemented from llvm::AArch64MCExpr.

Definition at line 181 of file AArch64MCExpr.cpp.

References llvm::AArch64MCExpr::getSubExpr(), and llvm::MCStreamer::visitUsedExpr().


The documentation for this class was generated from the following files: