24 BPFELFObjectWriter(uint8_t OSABI);
25 ~BPFELFObjectWriter()
override =
default;
28 unsigned getRelocType(
const MCFixup &,
const MCValue &,
29 bool IsPCRel)
const override;
34BPFELFObjectWriter::BPFELFObjectWriter(
uint8_t OSABI)
38unsigned BPFELFObjectWriter::getRelocType(
const MCFixup &
Fixup,
42 switch (
Fixup.getKind()) {
47 return ELF::R_BPF_64_64;
49 return ELF::R_BPF_64_ABS64;
52 return ELF::R_BPF_64_32;
53 if (
const auto *
A =
Target.getAddSym()) {
68 return ELF::R_BPF_64_NODYLD32;
74 return ELF::R_BPF_64_NODYLD32;
78 return ELF::R_BPF_64_ABS32;
82std::unique_ptr<MCObjectTargetWriter>
84 return std::make_unique<BPFELFObjectWriter>(OSABI);
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
PowerPC TLS Dynamic Call Fixup
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
bool isDefined() const
isDefined - Check if this symbol is defined (i.e., it has an address).
MCSection & getSection() const
Get the section associated with a defined, non-absolute symbol.
bool isTemporary() const
isTemporary - Check if this is an assembler temporary symbol.
Target - Wrapper for Target specific information.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
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.
std::unique_ptr< MCObjectTargetWriter > createBPFELFObjectWriter(uint8_t OSABI)