LLVM 22.0.0git
llvm::HexagonMCExpr Class Reference

#include "Target/Hexagon/MCTargetDesc/HexagonMCExpr.h"

Inheritance diagram for llvm::HexagonMCExpr:
[legend]

Public Types

enum  VariantKind : uint8_t {
  VK_None , VK_DTPREL = MCSymbolRefExpr::FirstTargetSpecifier , VK_GD_GOT , VK_GD_PLT ,
  VK_GOT , VK_GOTREL , VK_IE , VK_IE_GOT ,
  VK_LD_GOT , VK_LD_PLT , VK_PCREL , VK_PLT ,
  VK_TPREL , VK_LO16 , VK_HI16 , VK_GPREL
}
Public Types inherited from llvm::MCExpr
enum  ExprKind : uint8_t {
  Binary , Constant , SymbolRef , Unary ,
  Specifier , Target
}

Public Member Functions

void printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const override
bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm) const override
void visitUsedExpr (MCStreamer &Streamer) const override
MCFragmentfindAssociatedFragment () const override
MCExpr constgetExpr () const
void setMustExtend (bool Val=true)
bool mustExtend () const
void setMustNotExtend (bool Val=true)
bool mustNotExtend () const
void setS27_2_reloc (bool Val=true)
bool s27_2_reloc () const
void setSignMismatch (bool Val=true)
bool signMismatch () const
Public Member Functions inherited from llvm::MCTargetExpr
virtual bool isEqualTo (const MCExpr *x) const
virtual bool inlineAssignedExpr () const
Public Member Functions inherited from llvm::MCExpr
 MCExpr (const MCExpr &)=delete
MCExproperator= (const MCExpr &)=delete
ExprKind getKind () const
SMLoc getLoc () const
LLVM_ABI void dump () const
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res) const
 Try to evaluate the expression to an absolute value.
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const
LLVM_ABI bool evaluateKnownAbsolute (int64_t &Res, const MCAssembler &Asm) const
 Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g.
LLVM_ABI bool evaluateAsRelocatable (MCValue &Res, const MCAssembler *Asm) const
 Try to evaluate the expression to a relocatable value, i.e.
LLVM_ABI 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.
LLVM_ABI 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 HexagonMCExprcreate (MCExpr const *Expr, MCContext &Ctx)
Static Public Member Functions inherited from llvm::MCTargetExpr
static bool classof (const MCExpr *E)
Static Public Member Functions inherited from llvm::MCExpr
static LLVM_ABI bool evaluateSymbolicAdd (const MCAssembler *, bool, const MCValue &, const MCValue &, MCValue &)

Additional Inherited Members

Protected Types inherited from llvm::MCExpr
using Spec = uint16_t
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)
LLVM_ABI bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, bool InSet) const
unsigned getSubclassData () const

Detailed Description

Definition at line 15 of file HexagonMCExpr.h.

Member Enumeration Documentation

◆ VariantKind

Enumerator
VK_None 
VK_DTPREL 
VK_GD_GOT 
VK_GD_PLT 
VK_GOT 
VK_GOTREL 
VK_IE 
VK_IE_GOT 
VK_LD_GOT 
VK_LD_PLT 
VK_PCREL 
VK_PLT 
VK_TPREL 
VK_LO16 
VK_HI16 
VK_GPREL 

Definition at line 17 of file HexagonMCExpr.h.

Member Function Documentation

◆ create()

◆ evaluateAsRelocatableImpl()

bool HexagonMCExpr::evaluateAsRelocatableImpl ( MCValue & Res,
const MCAssembler * Asm ) const
overridevirtual

Implements llvm::MCTargetExpr.

Definition at line 25 of file HexagonMCExpr.cpp.

◆ findAssociatedFragment()

MCFragment * llvm::HexagonMCExpr::findAssociatedFragment ( ) const
overridevirtual

Implements llvm::MCTargetExpr.

Definition at line 34 of file HexagonMCExpr.cpp.

◆ getExpr()

MCExpr const * HexagonMCExpr::getExpr ( ) const

Definition at line 38 of file HexagonMCExpr.cpp.

◆ mustExtend()

bool HexagonMCExpr::mustExtend ( ) const

Definition at line 45 of file HexagonMCExpr.cpp.

Referenced by llvm::HexagonMCInstrInfo::mustExtend().

◆ mustNotExtend()

bool HexagonMCExpr::mustNotExtend ( ) const

Definition at line 50 of file HexagonMCExpr.cpp.

Referenced by llvm::HexagonMCInstrInfo::mustNotExtend().

◆ printImpl()

void HexagonMCExpr::printImpl ( raw_ostream & OS,
const MCAsmInfo * MAI ) const
overridevirtual

Implements llvm::MCTargetExpr.

Definition at line 61 of file HexagonMCExpr.cpp.

References llvm::MCAsmInfo::printExpr().

◆ s27_2_reloc()

bool HexagonMCExpr::s27_2_reloc ( ) const

Definition at line 52 of file HexagonMCExpr.cpp.

Referenced by llvm::HexagonMCInstrInfo::s27_2_reloc().

◆ setMustExtend()

void HexagonMCExpr::setMustExtend ( bool Val = true)

Definition at line 40 of file HexagonMCExpr.cpp.

References assert().

Referenced by llvm::HexagonMCInstrInfo::setMustExtend().

◆ setMustNotExtend()

void HexagonMCExpr::setMustNotExtend ( bool Val = true)

Definition at line 46 of file HexagonMCExpr.cpp.

References assert().

Referenced by llvm::HexagonMCInstrInfo::setMustNotExtend().

◆ setS27_2_reloc()

void HexagonMCExpr::setS27_2_reloc ( bool Val = true)

Definition at line 53 of file HexagonMCExpr.cpp.

Referenced by llvm::HexagonMCInstrInfo::setS27_2_reloc().

◆ setSignMismatch()

void HexagonMCExpr::setSignMismatch ( bool Val = true)

Definition at line 65 of file HexagonMCExpr.cpp.

◆ signMismatch()

bool HexagonMCExpr::signMismatch ( ) const

Definition at line 69 of file HexagonMCExpr.cpp.

◆ visitUsedExpr()

void HexagonMCExpr::visitUsedExpr ( MCStreamer & Streamer) const
overridevirtual

Implements llvm::MCTargetExpr.

Definition at line 30 of file HexagonMCExpr.cpp.

References llvm::MCStreamer::visitUsedExpr().


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