binaryninja::architecture::register

Trait RegisterStack

source
pub trait RegisterStack:
    Debug
    + Sized
    + Clone
    + Copy {
    type InfoType: RegisterStackInfo<RegType = Self::RegType, RegInfoType = Self::RegInfoType, RegStackType = Self>;
    type RegType: Register<InfoType = Self::RegInfoType>;
    type RegInfoType: RegisterInfo<RegType = Self::RegType>;

    // Required methods
    fn name(&self) -> Cow<'_, str>;
    fn info(&self) -> Self::InfoType;
    fn id(&self) -> RegisterStackId;
}
Expand description

Register stacks are used in architectures where registers are accessed relative to a dynamic stack pointer rather than by fixed names.

For more information see RegisterStackInfo.

§Example

The x87 FPU on x86 uses a register stack (ST(0) through ST(7)). Pushing a value decrements the stack top pointer; popping increments it.

Required Associated Types§

source

type InfoType: RegisterStackInfo<RegType = Self::RegType, RegInfoType = Self::RegInfoType, RegStackType = Self>

source

type RegType: Register<InfoType = Self::RegInfoType>

source

type RegInfoType: RegisterInfo<RegType = Self::RegType>

Required Methods§

source

fn name(&self) -> Cow<'_, str>

source

fn info(&self) -> Self::InfoType

source

fn id(&self) -> RegisterStackId

Unique identifier for this RegisterStack.

MUST be in the range [0, 0x7fff_ffff]

Object Safety§

This trait is not object safe.

Implementors§