Enum object::RelocationEncoding
source · #[non_exhaustive]pub enum RelocationEncoding {
Show 13 variants
Unknown,
Generic,
X86Signed,
X86RipRelative,
X86RipRelativeMovq,
X86Branch,
S390xDbl,
AArch64Call,
LoongArchBranch,
SharcTypeA,
SharcTypeB,
E2KLit,
E2KDisp,
}
Expand description
Information about how the result of the relocation operation is encoded in the place.
This is usually architecture specific, such as specifying an addressing mode or a specific instruction.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unknown
The relocation encoding is unknown.
Generic
Generic encoding.
X86Signed
x86 sign extension at runtime.
Used with RelocationKind::Absolute
.
X86RipRelative
x86 rip-relative addressing.
The RelocationKind
must be PC relative.
X86RipRelativeMovq
x86 rip-relative addressing in movq instruction.
The RelocationKind
must be PC relative.
X86Branch
x86 branch instruction.
The RelocationKind
must be PC relative.
S390xDbl
s390x PC-relative offset shifted right by one bit.
The RelocationKind
must be PC relative.
AArch64Call
AArch64 call target.
The RelocationKind
must be PC relative.
LoongArchBranch
LoongArch branch offset with two trailing zeros.
The RelocationKind
must be PC relative.
SharcTypeA
SHARC+ 48-bit Type A instruction
Represents these possible variants, each with a corresponding
R_SHARC_*
constant:
- 24-bit absolute address
- 32-bit absolute address
- 6-bit relative address
- 24-bit relative address
- 6-bit absolute address in the immediate value field
- 16-bit absolute address in the immediate value field
SharcTypeB
SHARC+ 32-bit Type B instruction
Represents these possible variants, each with a corresponding
R_SHARC_*
constant:
- 6-bit absolute address in the immediate value field
- 7-bit absolute address in the immediate value field
- 16-bit absolute address
- 6-bit relative address
E2KLit
E2K 64-bit value stored in two LTS
Memory representation:
0: LTS1 = value[63:32]
4: LTS0 = value[31:0]
E2KDisp
E2K 28-bit value stored in CS0
Trait Implementations§
source§impl Clone for RelocationEncoding
impl Clone for RelocationEncoding
source§fn clone(&self) -> RelocationEncoding
fn clone(&self) -> RelocationEncoding
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RelocationEncoding
impl Debug for RelocationEncoding
source§impl Hash for RelocationEncoding
impl Hash for RelocationEncoding
source§impl PartialEq for RelocationEncoding
impl PartialEq for RelocationEncoding
impl Copy for RelocationEncoding
impl Eq for RelocationEncoding
impl StructuralPartialEq for RelocationEncoding
Auto Trait Implementations§
impl Freeze for RelocationEncoding
impl RefUnwindSafe for RelocationEncoding
impl Send for RelocationEncoding
impl Sync for RelocationEncoding
impl Unpin for RelocationEncoding
impl UnwindSafe for RelocationEncoding
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.