LLVM 22.0.0git
|
A expression in AVR machine code. More...
#include "Target/AVR/MCTargetDesc/AVRMCExpr.h"
Public Types | |
using | Specifier = Spec |
Public Types inherited from llvm::MCExpr | |
enum | ExprKind : uint8_t { Binary , Constant , SymbolRef , Unary , Specifier , Target } |
Public Member Functions | |
const char * | getName () const |
Gets the name of the expression. | |
AVR::Fixups | getFixupKind () const |
Gets the fixup which corresponds to the expression. | |
bool | evaluateAsConstant (int64_t &Result) const |
Evaluates the fixup as a constant value. | |
bool | isNegated () const |
void | setNegated (bool negated=true) |
Public Member Functions inherited from llvm::MCSpecifierExpr | |
Spec | getSpecifier () const |
const MCExpr * | getSubExpr () const |
Public Member Functions inherited from llvm::MCExpr | |
MCExpr (const MCExpr &)=delete | |
MCExpr & | operator= (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 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. |
Static Public Member Functions | |
static const AVRMCExpr * | create (Specifier S, const MCExpr *Expr, bool isNegated, MCContext &Ctx) |
Specifies the type of an expression. | |
static Specifier | parseSpecifier (StringRef Name) |
Static Public Member Functions inherited from llvm::MCSpecifierExpr | |
static const MCSpecifierExpr * | create (const MCExpr *Expr, Spec S, MCContext &Ctx, SMLoc Loc=SMLoc()) |
static const MCSpecifierExpr * | create (const MCSymbol *Sym, Spec S, MCContext &Ctx, SMLoc Loc=SMLoc()) |
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 &) |
Friends | |
class | AVRMCAsmInfo |
Additional Inherited Members | |
Protected Types inherited from llvm::MCExpr | |
using | Spec = uint16_t |
Protected Member Functions inherited from llvm::MCSpecifierExpr | |
MCSpecifierExpr (const MCExpr *Expr, Spec S, SMLoc Loc=SMLoc()) | |
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 |
Protected Attributes inherited from llvm::MCSpecifierExpr | |
const MCExpr * | Expr |
A expression in AVR machine code.
Definition at line 19 of file AVRMCExpr.h.
using llvm::AVRMCExpr::Specifier = Spec |
Definition at line 22 of file AVRMCExpr.h.
|
static |
Specifies the type of an expression.
Creates an AVR machine code expression.
Definition at line 17 of file AVRMCExpr.cpp.
References llvm::MCSpecifierExpr::Expr.
Referenced by llvm::AVRMCInstLower::lowerSymbolOperand().
bool AVRMCExpr::evaluateAsConstant | ( | int64_t & | Result | ) | const |
Evaluates the fixup as a constant value.
Definition at line 210 of file AVRMCAsmInfo.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), and llvm::MCSpecifierExpr::getSubExpr().
AVR::Fixups AVRMCExpr::getFixupKind | ( | ) | const |
Gets the fixup which corresponds to the expression.
Definition at line 73 of file AVRMCAsmInfo.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, llvm::MCSpecifierExpr::getSpecifier(), isNegated(), llvm::AVR::LastTargetFixupKind, llvm_unreachable, llvm::AVR::S_GS, llvm::AVR::S_HH8, llvm::AVR::S_HHI8, llvm::AVR::S_HI8, llvm::AVR::S_HI8_GS, llvm::AVR::S_LO8, llvm::AVR::S_LO8_GS, llvm::AVR::S_PM, llvm::AVR::S_PM_HH8, llvm::AVR::S_PM_HI8, and llvm::AVR::S_PM_LO8.
Gets the name of the expression.
Definition at line 61 of file AVRMCAsmInfo.cpp.
References llvm::find_if(), llvm::MCSpecifierExpr::getSpecifier(), and llvm::Mod.
|
inline |
Definition at line 37 of file AVRMCExpr.h.
Referenced by getFixupKind().
|
static |
Definition at line 49 of file AVRMCAsmInfo.cpp.
References llvm::find_if(), llvm::Mod, and llvm::AVR::S_AVR_NONE.
|
inline |
Definition at line 38 of file AVRMCExpr.h.
|
friend |