Skip to main content

Register

Trait Register 

Source
pub unsafe trait Register:
    Display
    + Debug
    + Eq
    + Copy
    + Sized {
    type Type: Default + From<u8> + Into<u64> + Eq + Add + AddAssign + Sub + SubAssign + Display + Debug + Copy + Sized;

    const N: usize;

    // Required methods
    fn is_zero(&self) -> bool;
    fn from_bits(bits: u8) -> Option<Self>;
    fn offset(self) -> usize;
}
Expand description

General purpose register

§Safety

Self::offset() must return values in 0..Self::N range.

Required Associated Constants§

Source

const N: usize

The number of general purpose registers.

Canonically 32 unless E extension is used, in which case 16.

Required Associated Types§

Source

type Type: Default + From<u8> + Into<u64> + Eq + Add + AddAssign + Sub + SubAssign + Display + Debug + Copy + Sized

Register type.

u32 for RV32 and u64 for RV64.

Required Methods§

Source

fn is_zero(&self) -> bool

Whether the register is a zero register

Source

fn from_bits(bits: u8) -> Option<Self>

Create a register from its bit representation

Source

fn offset(self) -> usize

Offset in a set of registers

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§