Skip to main content

Imm

Struct Imm 

Source
pub struct Imm(/* private fields */);
Expand description

An immediate in an instruction. This represents the real value that will be put in the register, so sign extension has been performed if necessary, and for instructions like lui the value will have been shifted.

This type is XLEN-agnostic, use the XLEN-specific accessors to get the correct value.

Implementations§

Source§

impl Imm

Source

pub const ZERO: Self

The immediate 0. Useful as a shortcut for Imm::new_u32(0) and for patterns.

Source

pub const fn new_i32(value: i32) -> Self

Create a new immediate from the (if necessary) sign-extended value.

Source

pub const fn new_u32(value: u32) -> Self

Create a new immediate from the (if necessary) zero-extended value.

Source

pub const fn as_u32(self) -> u32

Get the u32 (RV32) value of the immediate.

Source

pub const fn as_i32(self) -> i32

Get the i32 (RV32) value of the immediate.

Source

pub const fn as_u64(self) -> u64

Get the u64 (RV64) value of the immediate.

Source

pub const fn as_i64(self) -> i64

Get the i64 (RV64) value of the immediate.

Trait Implementations§

Source§

impl Clone for Imm

Source§

fn clone(&self) -> Imm

Returns a duplicate 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 From<Imm> for i32

Source§

fn from(value: Imm) -> Self

Converts to this type from the input type.
Source§

impl From<Imm> for u32

Source§

fn from(value: Imm) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for Imm

Source§

fn from(value: i32) -> Self

Converts to this type from the input type.
Source§

impl From<u32> for Imm

Source§

fn from(value: u32) -> Self

Converts to this type from the input type.
Source§

impl Hash for Imm

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 Imm

Source§

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

Source§

impl Eq for Imm

Source§

impl StructuralPartialEq for Imm

Auto Trait Implementations§

§

impl Freeze for Imm

§

impl RefUnwindSafe for Imm

§

impl Send for Imm

§

impl Sync for Imm

§

impl Unpin for Imm

§

impl UnsafeUnpin for Imm

§

impl UnwindSafe for Imm

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, 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.