Skip to main content

Fence

Struct Fence 

Source
pub struct Fence {
    pub fm: u8,
    pub pred: FenceSet,
    pub succ: FenceSet,
    pub dest: Reg,
    pub src: Reg,
}
Expand description

The details of a RISC-V fence instruction.

Fields§

§fm: u8

The fm field of the instruction.

  • 0b0000 is a normal fence
  • 0b1000 with rw,rw implies a fence.tso
§pred: FenceSet

The predecessor set.

§succ: FenceSet

The sucessor set.

§dest: Reg

The rd field of the instruction. Currently always zero.

§src: Reg

The rs1 field of the instruction. Currently always zero.

Implementations§

Source§

impl Fence

Source

pub fn is_tso(&self) -> bool

Whether this is a fence.tso. fm=0b1000 and RW,RW

Source

pub fn is_pause(&self) -> bool

Whether this fence indicates a pause assembler pseudoinstruction.

Trait Implementations§

Source§

impl Clone for Fence

Source§

fn clone(&self) -> Fence

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 Hash for Fence

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 Fence

Source§

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

Source§

impl Eq for Fence

Source§

impl StructuralPartialEq for Fence

Auto Trait Implementations§

§

impl Freeze for Fence

§

impl RefUnwindSafe for Fence

§

impl Send for Fence

§

impl Sync for Fence

§

impl Unpin for Fence

§

impl UnsafeUnpin for Fence

§

impl UnwindSafe for Fence

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.