LLVM
8.0.1
|
A expression in AVR machine code. More...
#include "Target/AVR/MCTargetDesc/AVRMCExpr.h"
Public Types | |
enum | VariantKind { VK_AVR_None, VK_AVR_HI8, VK_AVR_LO8, VK_AVR_HH8, VK_AVR_HHI8, VK_AVR_PM_LO8, VK_AVR_PM_HI8, VK_AVR_PM_HH8, VK_AVR_LO8_GS, VK_AVR_HI8_GS, VK_AVR_GS } |
Specifies the type of an expression. More... | |
Public Types inherited from llvm::MCExpr | |
enum | ExprKind { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
VariantKind | getKind () const |
Gets the type of the expression. More... | |
const char * | getName () const |
Gets the name of the expression. More... | |
const MCExpr * | getSubExpr () const |
AVR::Fixups | getFixupKind () const |
Gets the fixup which corresponds to the expression. More... | |
bool | evaluateAsConstant (int64_t &Result) const |
Evaluates the fixup as a constant value. More... | |
bool | isNegated () const |
void | setNegated (bool negated=true) |
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 |
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 const AVRMCExpr * | create (VariantKind Kind, const MCExpr *Expr, bool isNegated, MCContext &Ctx) |
Creates an AVR machine code expression. More... | |
static bool | classof (const MCExpr *E) |
static VariantKind | getKindByName (StringRef Name) |
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 |
A expression in AVR machine code.
Definition at line 20 of file AVRMCExpr.h.
Specifies the type of an expression.
Enumerator | |
---|---|
VK_AVR_None | |
VK_AVR_HI8 | Corresponds to |
VK_AVR_LO8 | Corresponds to |
VK_AVR_HH8 | Corresponds to |
VK_AVR_HHI8 | Corresponds to |
VK_AVR_PM_LO8 | Corresponds to |
VK_AVR_PM_HI8 | Corresponds to |
VK_AVR_PM_HH8 | Corresponds to |
VK_AVR_LO8_GS | Corresponds to |
VK_AVR_HI8_GS | Corresponds to |
VK_AVR_GS | Corresponds to |
Definition at line 23 of file AVRMCExpr.h.
Definition at line 70 of file AVRMCExpr.h.
References llvm::MCExpr::getKind(), getKindByName(), Name, and llvm::MCExpr::Target.
|
static |
Creates an AVR machine code expression.
Definition at line 39 of file AVRMCExpr.cpp.
Referenced by llvm::AVRMCInstLower::lowerSymbolOperand().
bool llvm::AVRMCExpr::evaluateAsConstant | ( | int64_t & | Result | ) | const |
Evaluates the fixup as a constant value.
Definition at line 55 of file AVRMCExpr.cpp.
References llvm::MCValue::getConstant(), and llvm::MCValue::isAbsolute().
Referenced by getSubExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 72 of file AVRMCExpr.cpp.
References Context, llvm::MCSymbolRefExpr::create(), llvm::MCValue::get(), llvm::MCAsmLayout::getAssembler(), llvm::MCValue::getConstant(), llvm::MCAssembler::getContext(), llvm::MCSymbolRefExpr::getKind(), llvm::MCValue::getSymA(), llvm::MCValue::getSymB(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCValue::isAbsolute(), Kind, llvm_unreachable, VK_AVR_GS, VK_AVR_HH8, VK_AVR_HHI8, VK_AVR_HI8, VK_AVR_HI8_GS, VK_AVR_LO8, VK_AVR_LO8_GS, VK_AVR_None, VK_AVR_PM_HH8, VK_AVR_PM_HI8, VK_AVR_PM_LO8, and llvm::MCSymbolRefExpr::VK_None.
Referenced by setNegated().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 64 of file AVRMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 68 of file AVRMCExpr.h.
AVR::Fixups llvm::AVRMCExpr::getFixupKind | ( | ) | const |
Gets the fixup which corresponds to the expression.
Definition at line 145 of file AVRMCExpr.cpp.
References llvm::AVR::fixup_16_pm, llvm::AVR::fixup_hh8_ldi, llvm::AVR::fixup_hh8_ldi_neg, llvm::AVR::fixup_hh8_ldi_pm, llvm::AVR::fixup_hh8_ldi_pm_neg, llvm::AVR::fixup_hi8_ldi, llvm::AVR::fixup_hi8_ldi_gs, llvm::AVR::fixup_hi8_ldi_neg, llvm::AVR::fixup_hi8_ldi_pm, llvm::AVR::fixup_hi8_ldi_pm_neg, llvm::AVR::fixup_lo8_ldi, llvm::AVR::fixup_lo8_ldi_gs, llvm::AVR::fixup_lo8_ldi_neg, llvm::AVR::fixup_lo8_ldi_pm, llvm::AVR::fixup_lo8_ldi_pm_neg, llvm::AVR::fixup_ms8_ldi, llvm::AVR::fixup_ms8_ldi_neg, Kind, llvm::AArch64::LastTargetFixupKind, and llvm_unreachable.
Referenced by getSubExpr().
|
inline |
|
static |
Definition at line 203 of file AVRMCExpr.cpp.
References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::find_if(), llvm::Mod, and Name.
Referenced by classof().
Gets the name of the expression.
Definition at line 192 of file AVRMCExpr.cpp.
References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::find_if(), Kind, and llvm::Mod.
Referenced by getKind().
Definition at line 49 of file AVRMCExpr.h.
References evaluateAsConstant(), and getFixupKind().
Referenced by findAssociatedFragment().
|
inline |
Definition at line 55 of file AVRMCExpr.h.
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 44 of file AVRMCExpr.cpp.
References assert(), getName(), and Kind.
Referenced by setNegated().
Definition at line 56 of file AVRMCExpr.h.
References evaluateAsRelocatableImpl(), Fixup, printImpl(), and visitUsedExpr().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 188 of file AVRMCExpr.cpp.
References llvm::MCStreamer::visitUsedExpr().
Referenced by setNegated().