Struct vtil_parser::RoutineConvention[][src]

pub struct RoutineConvention {
    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,
}

Routine calling convention information and associated metadata

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

Trait Implementations

impl Debug for RoutineConvention[src]

impl<'a> TryFromCtx<'a, Endian, [u8]> for RoutineConvention[src]

type Error = Error

impl TryIntoCtx<Endian, [u8]> for RoutineConvention[src]

type Error = Error

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.