cranelift_codegen

Struct PatchRegion

source
pub struct PatchRegion { /* private fields */ }
Expand description

A region in the MachBuffer code buffer that can be edited prior to finalization. An example of where you might want to use this is for patching instructions that mention constants that won’t be known until later: MachBuffer::start_patchable can be used to begin the patchable region, instructions can be emitted with placeholder constants, and the PatchRegion token can be produced by MachBuffer::end_patchable. Once the values of those constants are known, the PatchRegion::patch function can be used to get a mutable buffer to the instruction bytes, and the constants uses can be updated directly.

Implementations§

source§

impl PatchRegion

source

pub fn patch<I: VCodeInst>(self, buffer: &mut MachBuffer<I>) -> &mut [u8]

Consume the patch region to yield a mutable slice of the MachBuffer data buffer.

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> 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, U> TryFrom<U> for T
where U: Into<T>,

source§

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>,

source§

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.