pub struct EmitState { /* private fields */ }
Expand description
State carried between emissions of a sequence of instructions.
Trait Implementations§
source§impl MachInstEmitState<MInst> for EmitState
impl MachInstEmitState<MInst> for EmitState
source§fn new(abi: &Callee<X64ABIMachineSpec>, ctrl_plane: ControlPlane) -> Self
fn new(abi: &Callee<X64ABIMachineSpec>, ctrl_plane: ControlPlane) -> Self
Create a new emission state given the ABI object.
source§fn pre_safepoint(
&mut self,
stack_map: Option<StackMap>,
user_stack_map: Option<UserStackMap>,
)
fn pre_safepoint( &mut self, stack_map: Option<StackMap>, user_stack_map: Option<UserStackMap>, )
Update the emission state before emitting an instruction that is a
safepoint.
source§fn ctrl_plane_mut(&mut self) -> &mut ControlPlane
fn ctrl_plane_mut(&mut self) -> &mut ControlPlane
The emission state holds ownership of a control plane, so it doesn’t
have to be passed around explicitly too much.
ctrl_plane_mut
may
be used if temporary access to the control plane is needed by some
other function that doesn’t have access to the emission state.source§fn take_ctrl_plane(self) -> ControlPlane
fn take_ctrl_plane(self) -> ControlPlane
Used to continue using a control plane after the emission state is
not needed anymore.
source§fn frame_layout(&self) -> &FrameLayout
fn frame_layout(&self) -> &FrameLayout
The [
FrameLayout
] for the function currently being compiled.source§fn on_new_block(&mut self)
fn on_new_block(&mut self)
A hook that triggers when first emitting a new block.
It is guaranteed to be called before any instructions are emitted.
Auto Trait Implementations§
impl Freeze for EmitState
impl RefUnwindSafe for EmitState
impl Send for EmitState
impl Sync for EmitState
impl Unpin for EmitState
impl UnwindSafe for EmitState
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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)