27 ~BPFAsmBackend()
override =
default;
32 std::unique_ptr<MCObjectTargetWriter>
45 {
"FK_BPF_PCRel_4", 0, 32, 0},
61 for (
uint64_t i = 0; i < Count; i += 8)
62 support::endian::write<uint64_t>(
OS, 0x15000000, Endian);
75 support::endian::write<uint32_t>(Data + 4,
static_cast<uint32_t>(
Value),
78 support::endian::write<uint32_t>(Data,
Value, Endian);
80 support::endian::write<uint64_t>(Data,
Value, Endian);
93 support::endian::write<uint32_t>(Data + 4,
Value, Endian);
97 int64_t ByteOff = (int64_t)
Value - 8;
98 if (ByteOff > INT16_MAX * 8 || ByteOff < INT16_MIN * 8)
102 support::endian::write<uint16_t>(Data + 2,
Value, Endian);
106std::unique_ptr<MCObjectTargetWriter>
107BPFAsmBackend::createObjectTargetWriter()
const {
unsigned const MachineRegisterInfo * MRI
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
PowerPC TLS Dynamic Call Fixup
Generic interface to target specific assembler backends.
virtual bool writeNopData(raw_ostream &OS, uint64_t Count, const MCSubtargetInfo *STI) const =0
Write an (optimal) nop sequence of Count bytes to the given output.
virtual MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const
Get information on a fixup kind.
virtual std::unique_ptr< MCObjectTargetWriter > createObjectTargetWriter() const =0
virtual void applyFixup(const MCFragment &, const MCFixup &, const MCValue &Target, uint8_t *Data, uint64_t Value, bool IsResolved)=0
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Generic base class for all target subtargets.
Target - Wrapper for Target specific information.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
void write32le(void *P, uint32_t V)
void write32be(void *P, uint32_t V)
This is an optimization pass for GlobalISel generic memory operations.
@ FK_Data_8
A eight-byte fixup.
@ FK_Data_4
A four-byte fixup.
@ FK_SecRel_8
A eight-byte section relative fixup.
@ FK_Data_2
A two-byte fixup.
MCAsmBackend * createBPFAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
MCAsmBackend * createBPFbeAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
LLVM_ABI void report_fatal_error(Error Err, bool gen_crash_diag=true)
std::unique_ptr< MCObjectTargetWriter > createBPFELFObjectWriter(uint8_t OSABI)
Target independent information on a fixup kind.