LLVM 22.0.0git
llvm::AVRMCExpr Class Reference

A expression in AVR machine code. More...

#include "Target/AVR/MCTargetDesc/AVRMCExpr.h"

Inheritance diagram for llvm::AVRMCExpr:
[legend]

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 chargetName () 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 MCExprgetSubExpr () const
Public Member Functions inherited from llvm::MCExpr
 MCExpr (const MCExpr &)=delete
MCExproperator= (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 MCFragmentfindAssociatedFragment () 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 AVRMCExprcreate (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 MCSpecifierExprcreate (const MCExpr *Expr, Spec S, MCContext &Ctx, SMLoc Loc=SMLoc())
static const MCSpecifierExprcreate (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 MCExprExpr

Detailed Description

A expression in AVR machine code.

Definition at line 19 of file AVRMCExpr.h.

Member Typedef Documentation

◆ Specifier

Definition at line 22 of file AVRMCExpr.h.

Member Function Documentation

◆ create()

const AVRMCExpr * llvm::AVRMCExpr::create ( Specifier S,
const MCExpr * Expr,
bool isNegated,
MCContext & Ctx )
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().

◆ evaluateAsConstant()

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().

◆ getFixupKind()

◆ getName()

const char * AVRMCExpr::getName ( ) const

Gets the name of the expression.

Definition at line 61 of file AVRMCAsmInfo.cpp.

References llvm::find_if(), llvm::MCSpecifierExpr::getSpecifier(), and llvm::Mod.

◆ isNegated()

bool llvm::AVRMCExpr::isNegated ( ) const
inline

Definition at line 37 of file AVRMCExpr.h.

Referenced by getFixupKind().

◆ parseSpecifier()

AVRMCExpr::Specifier AVRMCExpr::parseSpecifier ( StringRef Name)
static

Definition at line 49 of file AVRMCAsmInfo.cpp.

References llvm::find_if(), llvm::Mod, and llvm::AVR::S_AVR_NONE.

◆ setNegated()

void llvm::AVRMCExpr::setNegated ( bool negated = true)
inline

Definition at line 38 of file AVRMCExpr.h.

◆ AVRMCAsmInfo

friend class AVRMCAsmInfo
friend

Definition at line 21 of file AVRMCExpr.h.

References AVRMCAsmInfo.

Referenced by AVRMCAsmInfo.


The documentation for this class was generated from the following files: