15 #ifndef LLVM_AVR_ASM_BACKEND_H
16 #define LLVM_AVR_ASM_BACKEND_H
29 struct MCFixupKindInfo;
44 uint64_t
Value,
bool IsPCRel)
const override;
62 MCInst &Res)
const override {}
69 bool &IsResolved)
override;
77 #endif // LLVM_AVR_ASM_BACKEND_H
AVRAsmBackend(Triple::OSType OSType)
const MCFixupKindInfo & getFixupKindInfo(MCFixupKind Kind) const override
Get information on a fixup kind.
unsigned getNumFixupKinds() const override
Get the number of target specific fixup kinds.
This represents an "assembler immediate".
MCObjectWriter * createObjectWriter(raw_pwrite_stream &OS) const override
Create a new MCObjectWriter instance for use by the assembler backend to emit the final object file...
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const override
Simple predicate for targets where !Resolved implies requiring relaxation.
void processFixupValue(const MCAssembler &Asm, const MCAsmLayout &Layout, const MCFixup &Fixup, const MCFragment *DF, const MCValue &Target, uint64_t &Value, bool &IsResolved) override
Target hook to adjust the literal value of a fixup if necessary.
Defines the object file and target independent interfaces used by the assembler backend to write nati...
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Encapsulates the layout of an assembly file at a particular point in time.
void relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI, MCInst &Res) const override
Relax the instruction in the given fragment to the next wider instruction.
Context object for machine code objects.
Utilities for manipulating generated AVR machine code.
bool mayNeedRelaxation(const MCInst &Inst) const override
Check whether the given instruction may need relaxation.
Instances of this class represent a single low-level machine instruction.
A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler lay...
void applyFixup(const MCFixup &Fixup, char *Data, unsigned DataSize, uint64_t Value, bool IsPCRel) const override
Apply the Value for given Fixup into the provided data fragment, at the offset specified by the fixup...
MCFixupKind
Extensible enumeration to represent the type of a fixup.
void adjustFixupValue(const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx=nullptr) const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static const char * Target
bool writeNopData(uint64_t Count, MCObjectWriter *OW) const override
Write an (optimal) nop sequence of Count bytes to the given output.
Target - Wrapper for Target specific information.
MCSubtargetInfo - Generic base class for all target subtargets.
Target independent information on a fixup kind.
An abstract base class for streams implementations that also support a pwrite operation.
LLVM Value Representation.
Generic interface to target specific assembler backends.