kecc::asm

Enum Register

Source
pub enum Register {
    Zero,
    Ra,
    Sp,
    Gp,
    Tp,
    Temp(RegisterType, usize),
    Saved(RegisterType, usize),
    Arg(RegisterType, usize),
}
Expand description

ABI name for RISC-V integer and floating-point register.

For more details: https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf (109p)

Variants§

§

Zero

§

Ra

§

Sp

§

Gp

§

Tp

§

Temp(RegisterType, usize)

E.g., t0

§

Saved(RegisterType, usize)

E.g., s0

§

Arg(RegisterType, usize)

E.g., a0

Implementations§

Source§

impl Register

Source

pub const T0: Self

Source

pub const T1: Self

Source

pub const T2: Self

Source

pub const T3: Self

Source

pub const T4: Self

Source

pub const T5: Self

Source

pub const T6: Self

Source

pub const S0: Self

Source

pub const S1: Self

Source

pub const S2: Self

Source

pub const S3: Self

Source

pub const S4: Self

Source

pub const S5: Self

Source

pub const S6: Self

Source

pub const S7: Self

Source

pub const S8: Self

Source

pub const S9: Self

Source

pub const S10: Self

Source

pub const S11: Self

Source

pub const A0: Self

Source

pub const A1: Self

Source

pub const A2: Self

Source

pub const A3: Self

Source

pub const A4: Self

Source

pub const A5: Self

Source

pub const A6: Self

Source

pub const A7: Self

Source

pub const FT0: Self

Source

pub const FT1: Self

Source

pub const FT2: Self

Source

pub const FT3: Self

Source

pub const FT4: Self

Source

pub const FT5: Self

Source

pub const FT6: Self

Source

pub const FT7: Self

Source

pub const FT8: Self

Source

pub const FT9: Self

Source

pub const FT10: Self

Source

pub const FT11: Self

Source

pub const FS0: Self

Source

pub const FS1: Self

Source

pub const FS2: Self

Source

pub const FS3: Self

Source

pub const FS4: Self

Source

pub const FS5: Self

Source

pub const FS6: Self

Source

pub const FS7: Self

Source

pub const FS8: Self

Source

pub const FS9: Self

Source

pub const FS10: Self

Source

pub const FS11: Self

Source

pub const FA0: Self

Source

pub const FA1: Self

Source

pub const FA2: Self

Source

pub const FA3: Self

Source

pub const FA4: Self

Source

pub const FA5: Self

Source

pub const FA6: Self

Source

pub const FA7: Self

Source

pub fn temp(register_type: RegisterType, id: usize) -> Self

Source

pub fn saved(register_type: RegisterType, id: usize) -> Self

Source

pub fn arg(register_type: RegisterType, id: usize) -> Self

Trait Implementations§

Source§

impl Clone for Register

Source§

fn clone(&self) -> Register

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Register

Source§

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

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

impl Display for Register

Source§

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

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

impl Hash for Register

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Register

Source§

fn eq(&self, other: &Register) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Register

Source§

impl Eq for Register

Source§

impl StructuralPartialEq for Register

Auto Trait Implementations§

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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = Infallible

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V