LLVM
8.0.1
|
#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 { Binary, Constant, SymbolRef, Unary, Target } |
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 |
bool | evaluateAsConstant (int64_t &Res) const |
Accessors | |
VariantKind | getKind () const |
getOpcode - Get the kind of this expression. More... | |
const MCExpr * | getSubExpr () const |
getSubExpr - Get the child of this expression. More... | |
bool | isDarwinSyntax () const |
isDarwinSyntax - True if expression is to be printed using Darwin syntax. 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) |
Construction | |
static const PPCMCExpr * | create (VariantKind Kind, const MCExpr *Expr, bool isDarwin, MCContext &Ctx) |
static const PPCMCExpr * | createLo (const MCExpr *Expr, bool isDarwin, MCContext &Ctx) |
static const PPCMCExpr * | createHi (const MCExpr *Expr, bool isDarwin, MCContext &Ctx) |
static const PPCMCExpr * | createHa (const MCExpr *Expr, bool isDarwin, 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 19 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 21 of file PPCMCExpr.h.
Definition at line 96 of file PPCMCExpr.h.
References llvm::MCExpr::getKind(), and llvm::MCExpr::Target.
|
static |
Definition at line 22 of file PPCMCExpr.cpp.
Referenced by addNegOperand(), createHa(), createHi(), and createLo().
|
inlinestatic |
Definition at line 61 of file PPCMCExpr.h.
References create(), and VK_PPC_HA.
Referenced by GetSymbolRef().
|
inlinestatic |
Definition at line 56 of file PPCMCExpr.h.
|
inlinestatic |
Definition at line 51 of file PPCMCExpr.h.
References create(), and VK_PPC_LO.
Referenced by GetSymbolRef().
bool PPCMCExpr::evaluateAsConstant | ( | int64_t & | Res | ) | const |
Definition at line 58 of file PPCMCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), llvm::MCValue::getConstant(), getSubExpr(), llvm::MCValue::isAbsolute(), llvm_unreachable, VK_PPC_HA, VK_PPC_HI, VK_PPC_HIGH, VK_PPC_HIGHA, VK_PPC_HIGHER, VK_PPC_HIGHERA, VK_PPC_HIGHEST, VK_PPC_HIGHESTA, VK_PPC_LO, and VK_PPC_None.
Referenced by fixELFSymbolsInTLSFixups().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 99 of file PPCMCExpr.cpp.
References Context, llvm::MCSymbolRefExpr::create(), llvm::MCExpr::evaluateAsRelocatable(), llvm::PPC::fixup_ppc_half16, llvm::MCValue::get(), llvm::MCAsmLayout::getAssembler(), llvm::MCValue::getConstant(), llvm::MCAssembler::getContext(), llvm::MCFixup::getKind(), llvm::MCSymbolRefExpr::getKind(), getSubExpr(), llvm::MCValue::getSymA(), llvm::MCValue::getSymB(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCValue::isAbsolute(), llvm_unreachable, llvm::MCSymbolRefExpr::VK_None, VK_PPC_HA, llvm::MCSymbolRefExpr::VK_PPC_HA, VK_PPC_HI, llvm::MCSymbolRefExpr::VK_PPC_HI, VK_PPC_HIGH, llvm::MCSymbolRefExpr::VK_PPC_HIGH, VK_PPC_HIGHA, llvm::MCSymbolRefExpr::VK_PPC_HIGHA, VK_PPC_HIGHER, llvm::MCSymbolRefExpr::VK_PPC_HIGHER, VK_PPC_HIGHERA, llvm::MCSymbolRefExpr::VK_PPC_HIGHERA, VK_PPC_HIGHEST, llvm::MCSymbolRefExpr::VK_PPC_HIGHEST, VK_PPC_HIGHESTA, llvm::MCSymbolRefExpr::VK_PPC_HIGHESTA, VK_PPC_LO, and llvm::MCSymbolRefExpr::VK_PPC_LO.
Referenced by isDarwinSyntax().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 87 of file PPCMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 92 of file PPCMCExpr.h.
References evaluateAsConstant().
|
inline |
getOpcode - Get the kind of this expression.
Definition at line 71 of file PPCMCExpr.h.
getSubExpr - Get the child of this expression.
Definition at line 74 of file PPCMCExpr.h.
Referenced by evaluateAsConstant(), evaluateAsRelocatableImpl(), findAssociatedFragment(), printImpl(), and visitUsedExpr().
|
inline |
isDarwinSyntax - True if expression is to be printed using Darwin syntax.
Definition at line 77 of file PPCMCExpr.h.
References evaluateAsRelocatableImpl(), Fixup, printImpl(), and visitUsedExpr().
Referenced by printImpl().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 27 of file PPCMCExpr.cpp.
References getSubExpr(), isDarwinSyntax(), llvm_unreachable, 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.
Referenced by isDarwinSyntax().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 160 of file PPCMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().
Referenced by isDarwinSyntax().