10 #ifndef LLVM_LIB_TARGET_ARM_ARMASMBACKEND_H 11 #define LLVM_LIB_TARGET_ARM_ARMASMBACKEND_H 31 isThumbMode(STI.getTargetTriple().
isThumb()) {}
53 uint64_t Value,
bool IsResolved,
62 uint64_t Value)
const;
69 MCInst &Res)
const override;
76 bool isThumb()
const {
return isThumbMode; }
unsigned getNumFixupKinds() const override
Get the number of target specific fixup kinds.
unsigned getRelaxedOpcode(unsigned Op, const MCSubtargetInfo &STI) const
unsigned getPointerSize() const
This class represents lattice values for constants.
This represents an "assembler immediate".
const char * reasonForFixupRelaxation(const MCFixup &Fixup, uint64_t Value) const
const support::endianness Endian
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
const FeatureBitset & getFeatureBits() const
Encapsulates the layout of an assembly file at a particular point in time.
Context object for machine code objects.
ARMAsmBackend(const Target &T, const MCSubtargetInfo &STI, support::endianness Endian)
Instances of this class represent a single low-level machine instruction.
Flag
These should be considered private to the implementation of the MCInstrDesc class.
A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler lay...
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
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.
MCFixupKind
Extensible enumeration to represent the type of a fixup.
const MCFixupKindInfo & getFixupKindInfo(MCFixupKind Kind) const override
Get information on a fixup kind.
unsigned adjustFixupValue(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, uint64_t Value, bool IsResolved, MCContext &Ctx, const MCSubtargetInfo *STI) const
bool writeNopData(raw_ostream &OS, uint64_t Count) const override
Write an (optimal) nop sequence of Count bytes to the given output.
PowerPC TLS Dynamic Call Fixup
void relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI, MCInst &Res) const override
Relax the instruction in the given fragment to the next wider instruction.
Target - Wrapper for Target specific information.
void handleAssemblerFlag(MCAssemblerFlag Flag) override
Handle any target-specific assembler flags. By default, do nothing.
Generic base class for all target subtargets.
Target independent information on a fixup kind.
bool mayNeedRelaxation(const MCInst &Inst, const MCSubtargetInfo &STI) const override
Check whether the given instruction may need relaxation.
void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef< char > Data, uint64_t Value, bool IsResolved, const MCSubtargetInfo *STI) const override
Apply the Value for given Fixup into the provided data fragment, at the offset specified by the fixup...
LLVM Value Representation.
Generic interface to target specific assembler backends.
This class implements an extremely fast bulk output stream that can only output to a stream...
bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target) override
Hook to check if a relocation is needed for some target specific reason.