SubroutineConvention

Type Alias SubroutineConvention 

Source
pub type SubroutineConvention = RoutineConvention;
Expand description

Alias for RoutineConvention for consistent naming

Aliased Type§

pub struct SubroutineConvention {
    pub volatile_registers: Vec<RegisterDesc>,
    pub param_registers: Vec<RegisterDesc>,
    pub retval_registers: Vec<RegisterDesc>,
    pub frame_register: RegisterDesc,
    pub shadow_space: u64,
    pub purge_stack: bool,
}

Fields§

§volatile_registers: Vec<RegisterDesc>

List of registers that may change as a result of the routine execution but will be considered trashed

§param_registers: Vec<RegisterDesc>

List of regsiters that this routine wlil read from as a way of taking arguments

  • Additional arguments will be passed at [$sp + shadow_space + n * 8]
§retval_registers: Vec<RegisterDesc>

List of registers that are used to store the return value of the routine and thus will change during routine execution but must be considered “used” by return

§frame_register: RegisterDesc

Register that is generally used to store the stack frame if relevant

§shadow_space: u64

Size of the shadow space

§purge_stack: bool

Purges any writes to stack that will be end up below the final stack pointer