aarch64emu

Trait AccessCpuState

Source
pub trait AccessCpuState {
Show 22 methods // Required methods fn commit(&mut self); fn x(&mut self, index: u8) -> u64; fn update_x(&mut self, index: u8, data: u64); fn q(&self, index: u8) -> u128; fn update_q(&mut self, index: u8, data: u128); fn d(&self, index: u8) -> u64; fn update_d(&mut self, index: u8, data: u64); fn h(&self, index: u8) -> u32; fn update_h(&mut self, index: u8, data: u32); fn s(&self, index: u8) -> u16; fn update_s(&mut self, index: u8, data: u16); fn b(&self, index: u8) -> u8; fn update_b(&mut self, index: u8, data: u8); fn sp(&mut self) -> u64; fn update_sp(&mut self, data: u64); fn fp(&mut self) -> u64; fn update_fp(&mut self, data: u64); fn lr(&mut self) -> u64; fn update_lr(&mut self, data: u64); fn pc(&mut self) -> u64; fn update_pc(&mut self, data: u64); fn cpsr(&mut self) -> Cpsr64;
}

Required Methods§

Source

fn commit(&mut self)

Commit any outstanding register updates to the CPU.

Source

fn x(&mut self, index: u8) -> u64

Access general purpose x register and index (e.g. X0).

Source

fn update_x(&mut self, index: u8, data: u64)

Update general purpose x register at index with value (e.g. X0 = 1).

Source

fn q(&self, index: u8) -> u128

Access floating point 128-bit register at index (e.g. Q0).

Source

fn update_q(&mut self, index: u8, data: u128)

Update floating point 128-bit register at index (e.g. Q0 = 1.0).

Source

fn d(&self, index: u8) -> u64

Access floating point 64-bit register at index (e.g. D0).

Source

fn update_d(&mut self, index: u8, data: u64)

Update floating point 64-bit register at index (e.g. D0 = 1.0).

Source

fn h(&self, index: u8) -> u32

Access floating point 32-bit register at index (e.g. H0).

Source

fn update_h(&mut self, index: u8, data: u32)

Update floating point 32-bit register at index (e.g. H0 = 1.0).

Source

fn s(&self, index: u8) -> u16

Access floating point 16-bit register at index (e.g. S0).

Source

fn update_s(&mut self, index: u8, data: u16)

Update floating point 16-bit register at index (e.g. S0 = 1.0).

Source

fn b(&self, index: u8) -> u8

Access floating point 16-bit register at index (e.g. B0).

Source

fn update_b(&mut self, index: u8, data: u8)

Update floating point 8-bit register at index (e.g. B0 = 1.0).

Source

fn sp(&mut self) -> u64

Access stack pointer register.

Source

fn update_sp(&mut self, data: u64)

Update stack pointer register.

Source

fn fp(&mut self) -> u64

Access frame pointer register (alias for X29).

Source

fn update_fp(&mut self, data: u64)

Update frame pointer register (alias for X29).

Source

fn lr(&mut self) -> u64

Access link register / return address (alias for X30).

Source

fn update_lr(&mut self, data: u64)

Update link register / return address (alias for X30).

Source

fn pc(&mut self) -> u64

Access program counter register / instruction pointer.

Source

fn update_pc(&mut self, data: u64)

Update program counter register / instruction pointer.

Source

fn cpsr(&mut self) -> Cpsr64

Access the CSPR register

Implementations on Foreign Types§

Source§

impl<T: AccessCpuState + ?Sized> AccessCpuState for &mut T

Source§

fn commit(&mut self)

Source§

fn x(&mut self, index: u8) -> u64

Source§

fn update_x(&mut self, index: u8, data: u64)

Source§

fn q(&self, index: u8) -> u128

Source§

fn update_q(&mut self, index: u8, data: u128)

Source§

fn d(&self, index: u8) -> u64

Source§

fn update_d(&mut self, index: u8, data: u64)

Source§

fn h(&self, index: u8) -> u32

Source§

fn update_h(&mut self, index: u8, data: u32)

Source§

fn s(&self, index: u8) -> u16

Source§

fn update_s(&mut self, index: u8, data: u16)

Source§

fn b(&self, index: u8) -> u8

Source§

fn update_b(&mut self, index: u8, data: u8)

Source§

fn sp(&mut self) -> u64

Source§

fn update_sp(&mut self, data: u64)

Source§

fn fp(&mut self) -> u64

Source§

fn update_fp(&mut self, data: u64)

Source§

fn lr(&mut self) -> u64

Source§

fn update_lr(&mut self, data: u64)

Source§

fn pc(&mut self) -> u64

Source§

fn update_pc(&mut self, data: u64)

Source§

fn cpsr(&mut self) -> Cpsr64

Implementors§