Enum cranelift_codegen::binemit::Reloc
source · [−]pub enum Reloc {
Show 13 variants
Abs4,
Abs8,
X86PCRel4,
X86CallPCRel4,
X86CallPLTRel4,
X86GOTPCRel4,
Arm32Call,
Arm64Call,
S390xPCRel32Dbl,
ElfX86_64TlsGd,
MachOX86_64Tlv,
Aarch64TlsGdAdrPage21,
Aarch64TlsGdAddLo12Nc,
}
Expand description
Relocation kinds for every ISA
Variants
Abs4
absolute 4-byte
Abs8
absolute 8-byte
X86PCRel4
x86 PC-relative 4-byte
X86CallPCRel4
x86 call to PC-relative 4-byte
X86CallPLTRel4
x86 call to PLT-relative 4-byte
X86GOTPCRel4
x86 GOT PC-relative 4-byte
Arm32Call
Arm32 call target
Arm64Call
Arm64 call target. Encoded as bottom 26 bits of instruction. This value is sign-extended, multiplied by 4, and added to the PC of the call instruction to form the destination address.
S390xPCRel32Dbl
s390x PC-relative 4-byte offset
ElfX86_64TlsGd
Elf x86_64 32 bit signed PC relative offset to two GOT entries for GD symbol.
MachOX86_64Tlv
Mach-O x86_64 32 bit signed PC relative offset to a __thread_vars
entry.
Aarch64TlsGdAdrPage21
AArch64 TLS GD
Set an ADRP immediate field to the top 21 bits of the final address. Checks for overflow.
This is equivalent to R_AARCH64_TLSGD_ADR_PAGE21
in the aaelf64
Aarch64TlsGdAddLo12Nc
AArch64 TLS GD
Set the add immediate field to the low 12 bits of the final address. Does not check for overflow.
This is equivalent to R_AARCH64_TLSGD_ADD_LO12_NC
in the aaelf64
Trait Implementations
impl Copy for Reloc
impl Eq for Reloc
impl StructuralEq for Reloc
impl StructuralPartialEq for Reloc
Auto Trait Implementations
impl RefUnwindSafe for Reloc
impl Send for Reloc
impl Sync for Reloc
impl Unpin for Reloc
impl UnwindSafe for Reloc
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.