LLVM
8.0.1
|
#include "Target/Sparc/MCTargetDesc/SparcMCExpr.h"
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 |
Accessors | |
VariantKind | getKind () const |
getOpcode - Get the kind of this expression. More... | |
const MCExpr * | getSubExpr () const |
getSubExpr - Get the child of this expression. More... | |
Sparc::Fixups | getFixupKind () const |
getFixupKind - Get the fixup kind of this expression. More... | |
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 | |
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) |
static bool | classof (const SparcMCExpr *) |
static VariantKind | parseVariantKind (StringRef name) |
static bool | printVariantKind (raw_ostream &OS, VariantKind Kind) |
static Sparc::Fixups | getFixupKind (VariantKind Kind) |
Construction | |
static const SparcMCExpr * | create (VariantKind Kind, 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) | |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const |
Definition at line 24 of file SparcMCExpr.h.
Definition at line 26 of file SparcMCExpr.h.
Definition at line 101 of file SparcMCExpr.h.
References llvm::MCExpr::getKind(), and llvm::MCExpr::Target.
|
inlinestatic |
Definition at line 105 of file SparcMCExpr.h.
References getFixupKind(), name, parseVariantKind(), and printVariantKind().
|
static |
Definition at line 27 of file SparcMCExpr.cpp.
Referenced by createSparcMCOperand(), llvm::SparcELFMCAsmInfo::getExprForFDESymbol(), llvm::SparcELFMCAsmInfo::getExprForPersonalitySymbol(), llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), hasGOTReference(), and LowerSymbolOperand().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 163 of file SparcMCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), and getSubExpr().
Referenced by getFixupKind().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 95 of file SparcMCExpr.h.
References llvm::HexStyle::Asm, llvm::MCExpr::findAssociatedFragment(), fixELFSymbolsInTLSFixups(), and getSubExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 198 of file SparcMCExpr.cpp.
References fixELFSymbolsInTLSFixupsImpl(), llvm::MCAssembler::getContext(), getKind(), llvm::MCContext::getOrCreateSymbol(), getSubExpr(), LLVM_FALLTHROUGH, llvm::MCAssembler::registerSymbol(), llvm::ELF::STB_GLOBAL, llvm::ARMBuildAttrs::Symbol, VK_Sparc_TLS_GD_ADD, VK_Sparc_TLS_GD_CALL, VK_Sparc_TLS_GD_HI22, VK_Sparc_TLS_GD_LO10, VK_Sparc_TLS_IE_ADD, VK_Sparc_TLS_IE_HI22, VK_Sparc_TLS_IE_LD, VK_Sparc_TLS_IE_LDX, VK_Sparc_TLS_IE_LO10, VK_Sparc_TLS_LDM_ADD, VK_Sparc_TLS_LDM_CALL, VK_Sparc_TLS_LDM_HI22, VK_Sparc_TLS_LDM_LO10, VK_Sparc_TLS_LDO_ADD, VK_Sparc_TLS_LDO_HIX22, VK_Sparc_TLS_LDO_LOX10, VK_Sparc_TLS_LE_HIX22, and VK_Sparc_TLS_LE_LOX10.
Referenced by findAssociatedFragment().
|
inline |
getFixupKind - Get the fixup kind of this expression.
Definition at line 87 of file SparcMCExpr.h.
References evaluateAsRelocatableImpl(), Fixup, getFixupKind(), printImpl(), and visitUsedExpr().
Referenced by classof(), and getFixupKind().
|
static |
Definition at line 124 of file SparcMCExpr.cpp.
References llvm::Sparc::fixup_sparc_13, llvm::Sparc::fixup_sparc_got10, llvm::Sparc::fixup_sparc_got13, llvm::Sparc::fixup_sparc_got22, llvm::Sparc::fixup_sparc_h44, llvm::Sparc::fixup_sparc_hh, llvm::Sparc::fixup_sparc_hi22, llvm::Sparc::fixup_sparc_hm, llvm::Sparc::fixup_sparc_l44, llvm::Sparc::fixup_sparc_lo10, llvm::Sparc::fixup_sparc_m44, llvm::Sparc::fixup_sparc_pc10, llvm::Sparc::fixup_sparc_pc22, llvm::Sparc::fixup_sparc_tls_gd_add, llvm::Sparc::fixup_sparc_tls_gd_call, llvm::Sparc::fixup_sparc_tls_gd_hi22, llvm::Sparc::fixup_sparc_tls_gd_lo10, llvm::Sparc::fixup_sparc_tls_ie_add, llvm::Sparc::fixup_sparc_tls_ie_hi22, llvm::Sparc::fixup_sparc_tls_ie_ld, llvm::Sparc::fixup_sparc_tls_ie_ldx, llvm::Sparc::fixup_sparc_tls_ie_lo10, llvm::Sparc::fixup_sparc_tls_ldm_add, llvm::Sparc::fixup_sparc_tls_ldm_call, llvm::Sparc::fixup_sparc_tls_ldm_hi22, llvm::Sparc::fixup_sparc_tls_ldm_lo10, llvm::Sparc::fixup_sparc_tls_ldo_add, llvm::Sparc::fixup_sparc_tls_ldo_hix22, llvm::Sparc::fixup_sparc_tls_ldo_lox10, llvm::Sparc::fixup_sparc_tls_le_hix22, llvm::Sparc::fixup_sparc_tls_le_lox10, llvm::Sparc::fixup_sparc_wplt30, llvm_unreachable, VK_Sparc_13, VK_Sparc_GOT10, VK_Sparc_GOT13, VK_Sparc_GOT22, VK_Sparc_H44, VK_Sparc_HH, VK_Sparc_HI, VK_Sparc_HM, VK_Sparc_L44, VK_Sparc_LO, VK_Sparc_M44, VK_Sparc_PC10, VK_Sparc_PC22, VK_Sparc_TLS_GD_ADD, VK_Sparc_TLS_GD_CALL, VK_Sparc_TLS_GD_HI22, VK_Sparc_TLS_GD_LO10, VK_Sparc_TLS_IE_ADD, VK_Sparc_TLS_IE_HI22, VK_Sparc_TLS_IE_LD, VK_Sparc_TLS_IE_LDX, VK_Sparc_TLS_IE_LO10, VK_Sparc_TLS_LDM_ADD, VK_Sparc_TLS_LDM_CALL, VK_Sparc_TLS_LDM_HI22, VK_Sparc_TLS_LDM_LO10, VK_Sparc_TLS_LDO_ADD, VK_Sparc_TLS_LDO_HIX22, VK_Sparc_TLS_LDO_LOX10, VK_Sparc_TLS_LE_HIX22, VK_Sparc_TLS_LE_LOX10, and VK_Sparc_WPLT30.
|
inline |
getOpcode - Get the kind of this expression.
Definition at line 81 of file SparcMCExpr.h.
Referenced by fixELFSymbolsInTLSFixups().
getSubExpr - Get the child of this expression.
Definition at line 84 of file SparcMCExpr.h.
Referenced by evaluateAsRelocatableImpl(), findAssociatedFragment(), fixELFSymbolsInTLSFixups(), fixELFSymbolsInTLSFixupsImpl(), printImpl(), and visitUsedExpr().
|
static |
Definition at line 87 of file SparcMCExpr.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), name, VK_Sparc_GOT10, VK_Sparc_GOT13, VK_Sparc_GOT22, VK_Sparc_H44, VK_Sparc_HH, VK_Sparc_HI, VK_Sparc_HM, VK_Sparc_L44, VK_Sparc_LO, VK_Sparc_M44, VK_Sparc_None, VK_Sparc_PC10, VK_Sparc_PC22, VK_Sparc_R_DISP32, VK_Sparc_TLS_GD_ADD, VK_Sparc_TLS_GD_CALL, VK_Sparc_TLS_GD_HI22, VK_Sparc_TLS_GD_LO10, VK_Sparc_TLS_IE_ADD, VK_Sparc_TLS_IE_HI22, VK_Sparc_TLS_IE_LD, VK_Sparc_TLS_IE_LDX, VK_Sparc_TLS_IE_LO10, VK_Sparc_TLS_LDM_ADD, VK_Sparc_TLS_LDM_CALL, VK_Sparc_TLS_LDM_HI22, VK_Sparc_TLS_LDM_LO10, VK_Sparc_TLS_LDO_ADD, VK_Sparc_TLS_LDO_HIX22, VK_Sparc_TLS_LDO_LOX10, VK_Sparc_TLS_LE_HIX22, and VK_Sparc_TLS_LE_LOX10.
Referenced by classof(), and hasGOTReference().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 32 of file SparcMCExpr.cpp.
References getSubExpr(), llvm::MCExpr::print(), and printVariantKind().
Referenced by getFixupKind().
|
static |
Definition at line 43 of file SparcMCExpr.cpp.
References VK_Sparc_13, VK_Sparc_GOT10, VK_Sparc_GOT13, VK_Sparc_GOT22, VK_Sparc_H44, VK_Sparc_HH, VK_Sparc_HI, VK_Sparc_HM, VK_Sparc_L44, VK_Sparc_LO, VK_Sparc_M44, VK_Sparc_None, VK_Sparc_PC10, VK_Sparc_PC22, VK_Sparc_R_DISP32, VK_Sparc_TLS_GD_ADD, VK_Sparc_TLS_GD_CALL, VK_Sparc_TLS_GD_HI22, VK_Sparc_TLS_GD_LO10, VK_Sparc_TLS_IE_ADD, VK_Sparc_TLS_IE_HI22, VK_Sparc_TLS_IE_LD, VK_Sparc_TLS_IE_LDX, VK_Sparc_TLS_IE_LO10, VK_Sparc_TLS_LDM_ADD, VK_Sparc_TLS_LDM_CALL, VK_Sparc_TLS_LDM_HI22, VK_Sparc_TLS_LDM_LO10, VK_Sparc_TLS_LDO_ADD, VK_Sparc_TLS_LDO_HIX22, VK_Sparc_TLS_LDO_LOX10, VK_Sparc_TLS_LE_HIX22, VK_Sparc_TLS_LE_LOX10, and VK_Sparc_WPLT30.
Referenced by classof(), EmitHiLo(), and printImpl().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 235 of file SparcMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().
Referenced by getFixupKind().