Skip to main content

BasicRegisters

Struct BasicRegisters 

Source
pub struct BasicRegisters<Reg, const ZEROSTORE: bool = false>
where Reg: BasicRegister,
{ /* private fields */ }
Expand description

A basic set of RISC-V GPRs (General Purpose Registers).

ZEROSTORE generic determines whether to zero x0 register on write instead of checking register index on read. match loop usually performs better with branching, while threaded execution benefits from zeroing.

Trait Implementations§

Source§

impl<Reg, const ZEROSTORE: bool> Clone for BasicRegisters<Reg, ZEROSTORE>
where Reg: BasicRegister + Clone, Reg::Type: Clone,

Source§

fn clone(&self) -> BasicRegisters<Reg, ZEROSTORE>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Reg, const ZEROSTORE: bool> Copy for BasicRegisters<Reg, ZEROSTORE>
where Reg: BasicRegister + Copy, Reg::Type: Copy,

Source§

impl<Reg, const ZEROSTORE: bool> Debug for BasicRegisters<Reg, ZEROSTORE>
where Reg: BasicRegister + Debug, Reg::Type: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<Reg, const ZEROSTORE: bool> Default for BasicRegisters<Reg, ZEROSTORE>
where Reg: BasicRegister,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<Reg, const ZEROSTORE: bool> RegisterFile<Reg> for BasicRegisters<Reg, ZEROSTORE>
where Reg: BasicRegister,

Source§

fn read(&self, reg: Reg) -> Reg::Type

Read register value
Source§

fn write(&mut self, reg: Reg, value: Reg::Type)

Write register value

Auto Trait Implementations§

§

impl<Reg, const ZEROSTORE: bool> Freeze for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> RefUnwindSafe for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> Send for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> Sync for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> Unpin for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> UnsafeUnpin for BasicRegisters<Reg, ZEROSTORE>

§

impl<Reg, const ZEROSTORE: bool> UnwindSafe for BasicRegisters<Reg, ZEROSTORE>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.