#[repr(u16, align(4))]pub enum Rv64ZabhaInstruction<Reg> {
Show 38 variants
Amoswap {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amoadd {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amoxor {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amoand {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amoor {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amomin {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amomax {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amominu {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
Amomaxu {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoswapD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoaddD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoxorD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoandD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoorD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominuD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxuD {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoswapB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoswapH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoaddB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoaddH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoxorB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoxorH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoandB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoandH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoorB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmoorH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominuB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmominuH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxuB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmomaxuH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmocasB {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
AmocasH {
rs1: Reg,
rs2: Reg,
rd: Reg,
aq: bool,
rl: bool,
},
}Expand description
RISC-V RV64 Zabha instruction (Byte and Halfword Atomic Memory Operations)
Variants§
Amoswap
Amoadd
Amoxor
Amoand
Amoor
Amomin
Amomax
Amominu
Amomaxu
AmoswapD
AmoaddD
AmoxorD
AmoandD
AmoorD
AmominD
AmomaxD
AmominuD
AmomaxuD
AmoswapB
AmoswapH
AmoaddB
AmoaddH
AmoxorB
AmoxorH
AmoandB
AmoandH
AmoorB
AmoorH
AmominB
AmominH
AmomaxB
AmomaxH
AmominuB
AmominuH
AmomaxuB
AmomaxuH
AmocasB
Compare-and-swap byte. Only present when Zacas is also implemented.
AmocasH
Compare-and-swap halfword. Only present when Zacas is also implemented.
Trait Implementations§
Source§impl<Reg: Clone> Clone for Rv64ZabhaInstruction<Reg>
impl<Reg: Clone> Clone for Rv64ZabhaInstruction<Reg>
Source§fn clone(&self) -> Rv64ZabhaInstruction<Reg>
fn clone(&self) -> Rv64ZabhaInstruction<Reg>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<Reg: Copy> Copy for Rv64ZabhaInstruction<Reg>
Source§impl<Reg: Debug> Debug for Rv64ZabhaInstruction<Reg>
impl<Reg: Debug> Debug for Rv64ZabhaInstruction<Reg>
§impl<Reg> Display for Rv64ZabhaInstruction<Reg>
impl<Reg> Display for Rv64ZabhaInstruction<Reg>
impl<Reg: Eq> Eq for Rv64ZabhaInstruction<Reg>
§impl<Reg> Instruction for Rv64ZabhaInstruction<Reg>
impl<Reg> Instruction for Rv64ZabhaInstruction<Reg>
§const IMPLEMENTED_EXTENSIONS: &'static [TypeId]
const IMPLEMENTED_EXTENSIONS: &'static [TypeId]
Types of all fully implemented extensions. Read more
§fn try_decode(instruction: u32) -> Option<Self>
fn try_decode(instruction: u32) -> Option<Self>
Try to decode a single valid instruction
Source§fn implements_extension<E>() -> boolwhere
E: Instruction<Reg = Self::Reg>,
fn implements_extension<E>() -> boolwhere
E: Instruction<Reg = Self::Reg>,
Checks whether this instruction implements the given extension
Source§impl<Reg: PartialEq> PartialEq for Rv64ZabhaInstruction<Reg>
impl<Reg: PartialEq> PartialEq for Rv64ZabhaInstruction<Reg>
impl<Reg: PartialEq> StructuralPartialEq for Rv64ZabhaInstruction<Reg>
Auto Trait Implementations§
impl<Reg> Freeze for Rv64ZabhaInstruction<Reg>where
Reg: Freeze,
impl<Reg> RefUnwindSafe for Rv64ZabhaInstruction<Reg>where
Reg: RefUnwindSafe,
impl<Reg> Send for Rv64ZabhaInstruction<Reg>where
Reg: Send,
impl<Reg> Sync for Rv64ZabhaInstruction<Reg>where
Reg: Sync,
impl<Reg> Unpin for Rv64ZabhaInstruction<Reg>where
Reg: Unpin,
impl<Reg> UnsafeUnpin for Rv64ZabhaInstruction<Reg>where
Reg: UnsafeUnpin,
impl<Reg> UnwindSafe for Rv64ZabhaInstruction<Reg>where
Reg: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more