|
LLVM
4.0.0
|
A expression in AVR machine code. More...
#include <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 } |
| 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::MCExpr | |
| ExprKind | getKind () 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 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 () |
Protected Member Functions inherited from llvm::MCExpr | |
| MCExpr (ExprKind Kind) | |
| 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 |
Definition at line 23 of file AVRMCExpr.h.
Definition at line 66 of file AVRMCExpr.h.
References llvm::MCExpr::getKind(), and llvm::MCExpr::Target.
|
static |
Creates an AVR machine code expression.
Definition at line 36 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 52 of file AVRMCExpr.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), llvm::MCValue::getConstant(), getSubExpr(), and llvm::MCValue::isAbsolute().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 69 of file AVRMCExpr.cpp.
References Context, llvm::MCSymbolRefExpr::create(), llvm::MCExpr::evaluateAsRelocatable(), 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(), and llvm::MCSymbolRefExpr::VK_None.
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 60 of file AVRMCExpr.h.
References llvm::MCExpr::findAssociatedFragment(), and getSubExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 64 of file AVRMCExpr.h.
| AVR::Fixups llvm::AVRMCExpr::getFixupKind | ( | ) | const |
Gets the fixup which corresponds to the expression.
Definition at line 128 of file AVRMCExpr.cpp.
References 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_neg, llvm::AVR::fixup_hi8_ldi_pm, llvm::AVR::fixup_hi8_ldi_pm_neg, llvm::AVR::fixup_lo8_ldi, 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, getKind(), isNegated(), llvm::AArch64::LastTargetFixupKind, llvm_unreachable, VK_AVR_HH8, VK_AVR_HHI8, VK_AVR_HI8, VK_AVR_LO8, VK_AVR_None, VK_AVR_PM_HH8, VK_AVR_PM_HI8, and VK_AVR_PM_LO8.
|
inline |
Gets the type of the expression.
Definition at line 42 of file AVRMCExpr.h.
Referenced by getFixupKind().
|
static |
Definition at line 177 of file AVRMCExpr.cpp.
References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::find_if(), and VK_AVR_None.
| const char * llvm::AVRMCExpr::getName | ( | ) | const |
Gets the name of the expression.
Definition at line 166 of file AVRMCExpr.cpp.
References llvm::sys::path::begin(), llvm::sys::path::end(), and llvm::find_if().
Referenced by printImpl().
Definition at line 45 of file AVRMCExpr.h.
Referenced by evaluateAsConstant(), findAssociatedFragment(), printImpl(), and visitUsedExpr().
|
inline |
Definition at line 51 of file AVRMCExpr.h.
Referenced by getFixupKind(), and printImpl().
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 41 of file AVRMCExpr.cpp.
References assert(), getName(), getSubExpr(), isNegated(), llvm::MCExpr::print(), and VK_AVR_None.
Definition at line 52 of file AVRMCExpr.h.
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 162 of file AVRMCExpr.cpp.
References getSubExpr(), and llvm::MCStreamer::visitUsedExpr().
1.8.6