Struct cranelift_codegen::machinst::abi_impl::ABICalleeImpl [−][src]
ABI object for a function body.
Implementations
impl<M: ABIMachineSpec> ABICalleeImpl<M>
[src]
pub fn new(f: &Function, flags: Flags) -> CodegenResult<Self>
[src]
Create a new body ABI instance.
Trait Implementations
impl<M: ABIMachineSpec> ABICallee for ABICalleeImpl<M>
[src]
type I = M::I
The instruction type for the ISA associated with this ABI.
fn temp_needed(&self) -> Option<Type>
[src]
fn init(&mut self, maybe_tmp: Option<Writable<Reg>>)
[src]
fn accumulate_outgoing_args_size(&mut self, size: u32)
[src]
fn flags(&self) -> &Flags
[src]
fn call_conv(&self) -> CallConv
[src]
fn liveins(&self) -> Set<RealReg>
[src]
fn liveouts(&self) -> Set<RealReg>
[src]
fn num_args(&self) -> usize
[src]
fn num_retvals(&self) -> usize
[src]
fn num_stackslots(&self) -> usize
[src]
fn gen_copy_arg_to_regs(
&self,
idx: usize,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
[src]
&self,
idx: usize,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
fn arg_is_needed_in_body(&self, idx: usize) -> bool
[src]
fn gen_copy_regs_to_retval(
&self,
idx: usize,
from_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
[src]
&self,
idx: usize,
from_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
fn gen_retval_area_setup(&self) -> Option<Self::I>
[src]
fn gen_ret(&self) -> Self::I
[src]
fn gen_epilogue_placeholder(&self) -> Self::I
[src]
fn set_num_spillslots(&mut self, slots: usize)
[src]
fn set_clobbered(&mut self, clobbered: Set<Writable<RealReg>>)
[src]
fn load_stackslot(
&self,
slot: StackSlot,
offset: u32,
ty: Type,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
[src]
&self,
slot: StackSlot,
offset: u32,
ty: Type,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
Load from a stackslot.
fn store_stackslot(
&self,
slot: StackSlot,
offset: u32,
ty: Type,
from_regs: ValueRegs<Reg>
) -> SmallInstVec<Self::I>
[src]
&self,
slot: StackSlot,
offset: u32,
ty: Type,
from_regs: ValueRegs<Reg>
) -> SmallInstVec<Self::I>
Store to a stackslot.
fn stackslot_addr(
&self,
slot: StackSlot,
offset: u32,
into_reg: Writable<Reg>
) -> Self::I
[src]
&self,
slot: StackSlot,
offset: u32,
into_reg: Writable<Reg>
) -> Self::I
Produce an instruction that computes a stackslot address.
fn load_spillslot(
&self,
slot: SpillSlot,
ty: Type,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
[src]
&self,
slot: SpillSlot,
ty: Type,
into_regs: ValueRegs<Writable<Reg>>
) -> SmallInstVec<Self::I>
Load from a spillslot.
fn store_spillslot(
&self,
slot: SpillSlot,
ty: Type,
from_regs: ValueRegs<Reg>
) -> SmallInstVec<Self::I>
[src]
&self,
slot: SpillSlot,
ty: Type,
from_regs: ValueRegs<Reg>
) -> SmallInstVec<Self::I>
Store to a spillslot.
fn spillslots_to_stack_map(
&self,
slots: &[SpillSlot],
state: &<Self::I as MachInstEmit>::State
) -> StackMap
[src]
&self,
slots: &[SpillSlot],
state: &<Self::I as MachInstEmit>::State
) -> StackMap
fn gen_prologue(&mut self) -> SmallInstVec<Self::I>
[src]
fn gen_epilogue(&self) -> SmallInstVec<M::I>
[src]
fn frame_size(&self) -> u32
[src]
fn stack_args_size(&self) -> u32
[src]
fn get_spillslot_size(&self, rc: RegClass, ty: Type) -> u32
[src]
fn gen_spill(
&self,
to_slot: SpillSlot,
from_reg: RealReg,
ty: Option<Type>
) -> Self::I
[src]
&self,
to_slot: SpillSlot,
from_reg: RealReg,
ty: Option<Type>
) -> Self::I
fn gen_reload(
&self,
to_reg: Writable<RealReg>,
from_slot: SpillSlot,
ty: Option<Type>
) -> Self::I
[src]
&self,
to_reg: Writable<RealReg>,
from_slot: SpillSlot,
ty: Option<Type>
) -> Self::I
fn unwind_info_kind(&self) -> UnwindInfoKind
[src]
Auto Trait Implementations
impl<M> RefUnwindSafe for ABICalleeImpl<M> where
M: RefUnwindSafe,
<M as ABIMachineSpec>::I: RefUnwindSafe,
M: RefUnwindSafe,
<M as ABIMachineSpec>::I: RefUnwindSafe,
impl<M> Send for ABICalleeImpl<M> where
M: Send,
<M as ABIMachineSpec>::I: Send,
M: Send,
<M as ABIMachineSpec>::I: Send,
impl<M> Sync for ABICalleeImpl<M> where
M: Sync,
<M as ABIMachineSpec>::I: Sync,
M: Sync,
<M as ABIMachineSpec>::I: Sync,
impl<M> Unpin for ABICalleeImpl<M> where
M: Unpin,
<M as ABIMachineSpec>::I: Unpin,
M: Unpin,
<M as ABIMachineSpec>::I: Unpin,
impl<M> UnwindSafe for ABICalleeImpl<M> where
M: UnwindSafe,
<M as ABIMachineSpec>::I: RefUnwindSafe + UnwindSafe,
M: UnwindSafe,
<M as ABIMachineSpec>::I: RefUnwindSafe + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,