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