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§
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
sourcefn id(&self) -> RegisterStackId
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.