pub fn call_direct_self(
        &mut self,
        defined_index: u32,
        arg_types: impl IntoIterator<Item = SignlessType>,
        return_types: impl IntoIterator<Item = SignlessType>,
    ) {
        let locs = arg_locs(arg_types);

        self.save_volatile(..locs.len());

        let (_, label) = self.func_starts[defined_index as usize];

        self.pass_outgoing_args(&locs);
        dynasm!(self.asm
            ; call =>label
        );

        for i in locs {
            self.free_value(i.into());
        }

        self.push_function_returns(return_types);
    }
/// Call a function with the given index
Call a function with the given index
Call a function with the given index
pub fn call_direct_self(
        &mut self,
        defined_index: u32,
        arg_types: impl IntoIterator<Item = SignlessType>,
        return_types: impl IntoIterator<Item = SignlessType>,
    ) {
        let locs = arg_locs(arg_types);
        self.save_volatile(..locs.len());
        let (_, label) = self.func_starts[defined_index as usize];
        self.pass_outgoing_args(&locs);
        dynasm!(self.asm
            ; call =>label
        );
        for i in locs {
            self.free_value(i.into());
        }
        self.push_function_returns(return_types);
    }
pub fn call_direct_self ( & mut self , defined_index : u32 , arg_types : impl IntoIterator < Item = SignlessType > , return_types : impl IntoIterator < Item = SignlessType > , ) { let locs = arg_locs ( arg_types ) ; self . save_volatile ( .. locs . len ( ) ) ; let ( _ , label ) = self . func_starts [ defined_index as usize ] ; self . pass_outgoing_args ( & locs ) ; dynasm ! ( self asm call label ) ; for i in locs { self . free_value ( i . into ( ) ) ; } self . push_function_returns ( return_types ) ; }
Call a function with the given index
Call a function with the given index
&mut self
defined_index
u32
arg_types
impl IntoIterator<Item = SignlessType>
return_types
impl IntoIterator<Item = SignlessType>