Struct dynasmrt::components::LitPool

source ·
pub struct LitPool { /* private fields */ }
Expand description

Literal pool implementation. One can programmatically push items in this literal pool and retrieve offsets to them in the pool. Then later, the pool will be encoded into the instruction stream and items can be retrieved using the address of the literal pool. and the previously emitted offsets. Values are always at least aligned to their size.

Implementations§

source§

impl LitPool

source

pub fn new() -> Self

Create a new, empty literal pool

source

pub fn align(&mut self, size: usize, with: u8)

Add extra alignment for the next value in the literal pool

source

pub fn push_u8(&mut self, value: u8) -> isize

Encode value into the literal pool.

source

pub fn push_u16(&mut self, value: u16) -> isize

Encode value into the literal pool.

source

pub fn push_u32(&mut self, value: u32) -> isize

Encode value into the literal pool.

source

pub fn push_u64(&mut self, value: u64) -> isize

Encode value into the literal pool.

source

pub fn push_dynamic(&mut self, id: DynamicLabel, size: RelocationSize) -> isize

Encode the relative address of a label into the literal pool (relative to the location in the pool)

source

pub fn push_global(&mut self, name: &'static str, size: RelocationSize) -> isize

Encode the relative address of a label into the literal pool (relative to the location in the pool)

source

pub fn push_forward( &mut self, name: &'static str, size: RelocationSize, ) -> isize

Encode the relative address of a label into the literal pool (relative to the location in the pool)

source

pub fn push_backward( &mut self, name: &'static str, size: RelocationSize, ) -> isize

Encode the relative address of a label into the literal pool (relative to the location in the pool)

source

pub fn emit<D: DynasmLabelApi>(self, assembler: &mut D)

Emit this literal pool into the specified assembler

Trait Implementations§

source§

impl Clone for LitPool

source§

fn clone(&self) -> LitPool

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LitPool

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LitPool

source§

fn default() -> LitPool

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.