9#ifndef LLVM_AVR_MCEXPR_H
10#define LLVM_AVR_MCEXPR_H
56 void setNegated(
bool negated =
true) { Negated = negated; }
78 int64_t evaluateAsInt64(int64_t
Value)
const;
86 : Kind(Kind), SubExpr(Expr), Negated(Negated) {}
87 ~AVRMCExpr() =
default;
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
PowerPC TLS Dynamic Call Fixup
A expression in AVR machine code.
static const AVRMCExpr * create(VariantKind Kind, const MCExpr *Expr, bool isNegated, MCContext &Ctx)
Creates an AVR machine code expression.
void setNegated(bool negated=true)
MCFragment * findAssociatedFragment() const override
void visitUsedExpr(MCStreamer &streamer) const override
static VariantKind getKindByName(StringRef Name)
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.
void fixELFSymbolsInTLSFixups(MCAssembler &Asm) const override
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override
static bool classof(const MCExpr *E)
VariantKind getKind() const
Gets the type of the expression.
const MCExpr * getSubExpr() const
VariantKind
Specifies the type of an expression.
@ VK_AVR_PM_LO8
Corresponds to pm_lo8().
@ VK_AVR_LO8
Corresponds to lo8().
@ VK_AVR_PM_HI8
Corresponds to pm_hi8().
@ VK_AVR_PM
Corresponds to pm(), reference to program memory.
@ VK_AVR_HHI8
Corresponds to hhi8().
@ VK_AVR_HI8_GS
Corresponds to hi8(gs()).
@ VK_AVR_HH8
Corresponds to hlo8() and hh8().
@ VK_AVR_LO8_GS
Corresponds to lo8(gs()).
@ VK_AVR_PM_HH8
Corresponds to pm_hh8().
@ VK_AVR_GS
Corresponds to gs().
@ VK_AVR_HI8
Corresponds to hi8().
const char * getName() const
Gets the name of the expression.
bool evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const override
This class is intended to be used as a base class for asm properties and features specific to the tar...
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
@ Target
Target specific expression.
MCFragment * findAssociatedFragment() const
Find the "associated section" for this expression, which is currently defined as the absolute section...
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Streaming machine code generation interface.
This is an extension point for target-specific MCExpr subclasses to implement.
This represents an "assembler immediate".
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
Fixups
The set of supported fixups.
This is an optimization pass for GlobalISel generic memory operations.