Struct cranelift_codegen::machinst::abi_impl::ABICallerImpl
source · [−]pub struct ABICallerImpl<M: ABIMachineSpec> { /* private fields */ }
Expand description
ABI object for a callsite.
Implementations
sourceimpl<M: ABIMachineSpec> ABICallerImpl<M>
impl<M: ABIMachineSpec> ABICallerImpl<M>
sourcepub fn from_func(
sig: &Signature,
extname: &ExternalName,
dist: RelocDistance,
caller_conv: CallConv
) -> CodegenResult<ABICallerImpl<M>>
pub fn from_func(
sig: &Signature,
extname: &ExternalName,
dist: RelocDistance,
caller_conv: CallConv
) -> CodegenResult<ABICallerImpl<M>>
Create a callsite ABI object for a call directly to the specified function.
sourcepub fn from_ptr(
sig: &Signature,
ptr: Reg,
opcode: Opcode,
caller_conv: CallConv
) -> CodegenResult<ABICallerImpl<M>>
pub fn from_ptr(
sig: &Signature,
ptr: Reg,
opcode: Opcode,
caller_conv: CallConv
) -> CodegenResult<ABICallerImpl<M>>
Create a callsite ABI object for a call to a function pointer with the given signature.
Trait Implementations
sourceimpl<M: ABIMachineSpec> ABICaller for ABICallerImpl<M>
impl<M: ABIMachineSpec> ABICaller for ABICallerImpl<M>
sourcefn accumulate_outgoing_args_size<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
fn accumulate_outgoing_args_size<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
Accumulate outgoing arguments. This ensures that the caller (as identified via the CTX argument) allocates enough space in the prologue to hold all arguments and return values for this call. There is no code emitted at the call site, everything is done in the caller’s function prologue. Read more
sourcefn emit_stack_pre_adjust<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
fn emit_stack_pre_adjust<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
Emit code to pre-adjust the stack, prior to argument copies and call.
sourcefn emit_stack_post_adjust<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
fn emit_stack_post_adjust<C: LowerCtx<I = Self::I>>(&self, ctx: &mut C)
Emit code to post-adjust the satck, after call return and return-value copies.
sourcefn emit_copy_regs_to_arg<C: LowerCtx<I = Self::I>>(
&self,
ctx: &mut C,
idx: usize,
from_regs: ValueRegs<Reg>
)
fn emit_copy_regs_to_arg<C: LowerCtx<I = Self::I>>(
&self,
ctx: &mut C,
idx: usize,
from_regs: ValueRegs<Reg>
)
Emit a copy of an argument value from a source register, prior to the call.
Auto Trait Implementations
impl<M> RefUnwindSafe for ABICallerImpl<M> where
M: RefUnwindSafe,
impl<M> Send for ABICallerImpl<M> where
M: Send,
impl<M> Sync for ABICallerImpl<M> where
M: Sync,
impl<M> Unpin for ABICallerImpl<M> where
M: Unpin,
impl<M> UnwindSafe for ABICallerImpl<M> where
M: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more