[][src]Trait rysk_core::register::Xlen

pub trait Xlen {
    type Signed: Integer + Multiply<Self::Signed, Self::Unsigned> + Copy;
    type Unsigned: Integer + Copy;

    const WIDTH: RegisterWidth;

    fn signed(self) -> Self::Signed;
fn unsigned(self) -> Self::Unsigned;
fn from_signed(from: Self::Signed) -> Self;
fn from_unsigned(from: Self::Unsigned) -> Self;
fn append(self, offset: usize) -> Self::Unsigned;
fn usize(self) -> usize; }

Byte order independent interpretations for a register

Associated Types

type Signed: Integer + Multiply<Self::Signed, Self::Unsigned> + Copy

The concrete signed type that the inner value represents

type Unsigned: Integer + Copy

The concrete unsigned type that the inner value represents

Loading content...

Associated Constants

const WIDTH: RegisterWidth

The width of the register. Defines the available instruction set (ie. RV32I, RV64I or RV128I)

Loading content...

Required methods

fn signed(self) -> Self::Signed

Interpret the register as a signed value

fn unsigned(self) -> Self::Unsigned

Interpret the register as an unsigned value

fn from_signed(from: Self::Signed) -> Self

Create a register from a signed value

fn from_unsigned(from: Self::Unsigned) -> Self

Create a register from an unsigned value

fn append(self, offset: usize) -> Self::Unsigned

Return the unsigned value added to an unsigned system-native value

fn usize(self) -> usize

Return the value as an unsigned system-native value

Loading content...

Implementors

impl Xlen for Register32[src]

type Signed = i32

type Unsigned = u32

impl Xlen for Register64[src]

type Signed = i64

type Unsigned = u64

impl Xlen for RegisterSize[src]

type Signed = isize

type Unsigned = usize

Loading content...