kecc::asm

Enum RType

Source
pub enum RType {
Show 23 variants Add(DataSize), Sub(DataSize), Sll(DataSize), Srl(DataSize), Sra(DataSize), Mul(DataSize), Div { data_size: DataSize, is_signed: bool, }, Rem { data_size: DataSize, is_signed: bool, }, Slt { is_signed: bool, }, Xor, Or, And, Fadd(DataSize), Fsub(DataSize), Fmul(DataSize), Fdiv(DataSize), Feq(DataSize), Flt(DataSize), FmvIntToFloat { float_data_size: DataSize, }, FmvFloatToInt { float_data_size: DataSize, }, FcvtIntToFloat { int_data_size: DataSize, float_data_size: DataSize, is_signed: bool, }, FcvtFloatToInt { float_data_size: DataSize, int_data_size: DataSize, is_signed: bool, }, FcvtFloatToFloat { from: DataSize, to: DataSize, },
}
Expand description

If the enum variant contains is_signed : bool, it corresponds to different instructions depending on whether the operand is signed or not.

Variants§

§

Add(DataSize)

§

Sub(DataSize)

§

Sll(DataSize)

§

Srl(DataSize)

§

Sra(DataSize)

§

Mul(DataSize)

§

Div

Fields

§data_size: DataSize
§is_signed: bool
§

Rem

Fields

§data_size: DataSize
§is_signed: bool
§

Slt

Fields

§is_signed: bool
§

Xor

§

Or

§

And

§

Fadd(DataSize)

§

Fsub(DataSize)

§

Fmul(DataSize)

§

Fdiv(DataSize)

§

Feq(DataSize)

§

Flt(DataSize)

§

FmvIntToFloat

fmv.w.x or fmv.d.x

Fields

§float_data_size: DataSize
§

FmvFloatToInt

fmv.x.w or fmv.x.w

Fields

§float_data_size: DataSize
§

FcvtIntToFloat

fcvt.s.l(u) or fcvt.d.l(u) fcvt.s.w(u) or fcvt.d.w(u)

Fields

§int_data_size: DataSize
§float_data_size: DataSize
§is_signed: bool
§

FcvtFloatToInt

fcvt.l(u).s or fcvt.l(u).d fcvt.w(u).s or fcvt.w(u).d

Fields

§float_data_size: DataSize
§int_data_size: DataSize
§is_signed: bool
§

FcvtFloatToFloat

fcvt.s.d or fcvt.d.s

Fields

Implementations§

Source§

impl RType

Source

pub fn add(dtype: Dtype) -> Self

Source

pub fn sub(dtype: Dtype) -> Self

Source

pub fn sll(dtype: Dtype) -> Self

Source

pub fn srl(dtype: Dtype) -> Self

Source

pub fn sra(dtype: Dtype) -> Self

Source

pub fn mul(dtype: Dtype) -> Self

Source

pub fn div(dtype: Dtype, is_signed: bool) -> Self

Source

pub fn rem(dtype: Dtype, is_signed: bool) -> Self

Source

pub fn fadd(dtype: Dtype) -> Self

Source

pub fn fsub(dtype: Dtype) -> Self

Source

pub fn fmul(dtype: Dtype) -> Self

Source

pub fn fdiv(dtype: Dtype) -> Self

Source

pub fn feq(dtype: Dtype) -> Self

Source

pub fn flt(dtype: Dtype) -> Self

Source

pub fn fmv_int_to_float(dtype: Dtype) -> Self

Source

pub fn fmv_float_to_int(dtype: Dtype) -> Self

Source

pub fn fcvt_int_to_float(from: Dtype, to: Dtype) -> Self

Source

pub fn fcvt_float_to_int(from: Dtype, to: Dtype) -> Self

Trait Implementations§

Source§

impl Clone for RType

Source§

fn clone(&self) -> RType

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 RType

Source§

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

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

impl Display for RType

Source§

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

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

impl PartialEq for RType

Source§

fn eq(&self, other: &RType) -> 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 RType

Source§

impl Eq for RType

Source§

impl StructuralPartialEq for RType

Auto Trait Implementations§

§

impl Freeze for RType

§

impl RefUnwindSafe for RType

§

impl Send for RType

§

impl Sync for RType

§

impl Unpin for RType

§

impl UnwindSafe for RType

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