#[repr(u16, align(4))]pub enum Rv32ZabhaInstruction<Reg> {
Show 29 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,
},
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 RV32 Zabha instruction (Byte and Halfword Atomic Memory Operations)
Variants§
Amoswap
Amoadd
Amoxor
Amoand
Amoor
Amomin
Amomax
Amominu
Amomaxu
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 Rv32ZabhaInstruction<Reg>
impl<Reg: Clone> Clone for Rv32ZabhaInstruction<Reg>
Source§fn clone(&self) -> Rv32ZabhaInstruction<Reg>
fn clone(&self) -> Rv32ZabhaInstruction<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 Rv32ZabhaInstruction<Reg>
Source§impl<Reg: Debug> Debug for Rv32ZabhaInstruction<Reg>
impl<Reg: Debug> Debug for Rv32ZabhaInstruction<Reg>
§impl<Reg> Display for Rv32ZabhaInstruction<Reg>
impl<Reg> Display for Rv32ZabhaInstruction<Reg>
impl<Reg: Eq> Eq for Rv32ZabhaInstruction<Reg>
§impl<Reg> Instruction for Rv32ZabhaInstruction<Reg>
impl<Reg> Instruction for Rv32ZabhaInstruction<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 Rv32ZabhaInstruction<Reg>
impl<Reg: PartialEq> PartialEq for Rv32ZabhaInstruction<Reg>
impl<Reg: PartialEq> StructuralPartialEq for Rv32ZabhaInstruction<Reg>
Auto Trait Implementations§
impl<Reg> Freeze for Rv32ZabhaInstruction<Reg>where
Reg: Freeze,
impl<Reg> RefUnwindSafe for Rv32ZabhaInstruction<Reg>where
Reg: RefUnwindSafe,
impl<Reg> Send for Rv32ZabhaInstruction<Reg>where
Reg: Send,
impl<Reg> Sync for Rv32ZabhaInstruction<Reg>where
Reg: Sync,
impl<Reg> Unpin for Rv32ZabhaInstruction<Reg>where
Reg: Unpin,
impl<Reg> UnsafeUnpin for Rv32ZabhaInstruction<Reg>where
Reg: UnsafeUnpin,
impl<Reg> UnwindSafe for Rv32ZabhaInstruction<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