[][src]Struct falcon::analysis::calling_convention::CallingConvention

pub struct CallingConvention { /* fields omitted */ }

Represents the calling convention of a particular platform.

Methods

impl CallingConvention[src]

pub fn new(typ: CallingConventionType) -> CallingConvention[src]

Create a new CallingConvention based on the given CallingConventionType.

pub fn argument_registers(&self) -> &[Scalar][src]

Get the registers the first n arguments are passed in.

pub fn preserved_registers(&self) -> &HashSet<Scalar>[src]

Get the registers preserved across function calls.

pub fn trashed_registers(&self) -> &HashSet<Scalar>[src]

Get the registers trashed across function calls.

pub fn stack_argument_length(&self) -> usize[src]

Get the length of an argument on the stack in bytes, not bits.

We would expect this to be natural register-width of the architecture.

pub fn stack_argument_offset(&self) -> usize[src]

Get the stack offset to the first argument passed on the stack in bytes, not bits.

We would expect this to be immediately above the return address, if the return address is stored on the stack.

pub fn return_address_type(&self) -> &ReturnAddressType[src]

How the return address is specified for function calls.

pub fn return_register(&self) -> &Scalar[src]

The register returned values is given in.

pub fn argument_type(&self, argument_number: usize) -> ArgumentType[src]

Get the type for the given argument, starting with 0 index.

pub fn is_preserved(&self, scalar: &Scalar) -> Option<bool>[src]

Is the given register preserved.

pub fn is_trashed(&self, scalar: &Scalar) -> Option<bool>[src]

Is the given register trashed.

Trait Implementations

impl Clone for CallingConvention[src]

impl Debug for CallingConvention[src]

impl Eq for CallingConvention[src]

impl PartialEq<CallingConvention> for CallingConvention[src]

impl StructuralEq for CallingConvention[src]

impl StructuralPartialEq for CallingConvention[src]

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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.