pub enum NotPopularInstruction<Reg> {
Show 95 variants
Sll {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Slt {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Srl {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sra {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Addw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Subw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sllw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Srlw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sraw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Slti {
rd: Reg,
rs1: Reg,
imm: i16,
},
Sltiu {
rd: Reg,
rs1: Reg,
imm: i16,
},
Xori {
rd: Reg,
rs1: Reg,
imm: i16,
},
Ori {
rd: Reg,
rs1: Reg,
imm: i16,
},
Andi {
rd: Reg,
rs1: Reg,
imm: i16,
},
Srai {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Addiw {
rd: Reg,
rs1: Reg,
imm: i16,
},
Slliw {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Srliw {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Sraiw {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Lb {
rd: Reg,
rs1: Reg,
imm: i16,
},
Lh {
rd: Reg,
rs1: Reg,
imm: i16,
},
Lw {
rd: Reg,
rs1: Reg,
imm: i16,
},
Lhu {
rd: Reg,
rs1: Reg,
imm: i16,
},
Lwu {
rd: Reg,
rs1: Reg,
imm: i16,
},
Sh {
rs2: Reg,
rs1: Reg,
imm: i16,
},
Sw {
rs2: Reg,
rs1: Reg,
imm: i16,
},
Beq {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Bne {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Blt {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Bge {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Bltu {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Bgeu {
rs1: Reg,
rs2: Reg,
imm: i32,
},
Lui {
rd: Reg,
imm: i32,
},
Jal {
rd: Reg,
imm: i32,
},
Ebreak,
Unimp,
Mulh {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Mulhsu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Div {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Divu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Rem {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Remu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Mulw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Divw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Divuw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Remw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Remuw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
AddUw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh1addUw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh2add {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh2addUw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh3add {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh3addUw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
SlliUw {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Andn {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Orn {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Xnor {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Clz {
rd: Reg,
rs1: Reg,
},
Clzw {
rd: Reg,
rs1: Reg,
},
Ctz {
rd: Reg,
rs1: Reg,
},
Ctzw {
rd: Reg,
rs1: Reg,
},
Cpop {
rd: Reg,
rs1: Reg,
},
Cpopw {
rd: Reg,
rs1: Reg,
},
Max {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Maxu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Min {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Minu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sextb {
rd: Reg,
rs1: Reg,
},
Sexth {
rd: Reg,
rs1: Reg,
},
Zexth {
rd: Reg,
rs1: Reg,
},
Rol {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Rolw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Ror {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Rorw {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Orcb {
rd: Reg,
rs1: Reg,
},
Rev8 {
rd: Reg,
rs1: Reg,
},
Bset {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Bseti {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Bclr {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Bclri {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Binv {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Binvi {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Bext {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Bexti {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Clmul {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Clmulh {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Clmulr {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sha256Sig0 {
rd: Reg,
rs1: Reg,
},
Sha256Sig1 {
rd: Reg,
rs1: Reg,
},
Sha256Sum0 {
rd: Reg,
rs1: Reg,
},
Sha256Sum1 {
rd: Reg,
rs1: Reg,
},
Sha512Sig0 {
rd: Reg,
rs1: Reg,
},
Sha512Sig1 {
rd: Reg,
rs1: Reg,
},
Sha512Sum0 {
rd: Reg,
rs1: Reg,
},
Sha512Sum1 {
rd: Reg,
rs1: Reg,
},
}Variants§
Sll
Slt
Srl
Sra
Addw
Subw
Sllw
Srlw
Sraw
Slti
Sltiu
Xori
Ori
Andi
Srai
Addiw
Slliw
Srliw
Sraiw
Lb
Lh
Lw
Lhu
Lwu
Sh
Sw
Beq
Bne
Blt
Bge
Bltu
Bgeu
Lui
Jal
Ebreak
Unimp
Mulh
Mulhsu
Div
Divu
Rem
Remu
Mulw
Divw
Divuw
Remw
Remuw
AddUw
Sh1addUw
Sh2add
Sh2addUw
Sh3add
Sh3addUw
SlliUw
Andn
Orn
Xnor
Clz
Clzw
Ctz
Ctzw
Cpop
Cpopw
Max
Maxu
Min
Minu
Sextb
Sexth
Zexth
Rol
Rolw
Ror
Rorw
Orcb
Rev8
Bset
Bseti
Bclr
Bclri
Binv
Binvi
Bext
Bexti
Clmul
Clmulh
Clmulr
Sha256Sig0
Sha256Sig1
Sha256Sum0
Sha256Sum1
Sha512Sig0
Sha512Sig1
Sha512Sum0
Sha512Sum1
Trait Implementations§
Source§impl<Reg: Clone> Clone for NotPopularInstruction<Reg>
impl<Reg: Clone> Clone for NotPopularInstruction<Reg>
Source§fn clone(&self) -> NotPopularInstruction<Reg>
fn clone(&self) -> NotPopularInstruction<Reg>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<Reg: Debug> Debug for NotPopularInstruction<Reg>
impl<Reg: Debug> Debug for NotPopularInstruction<Reg>
§impl<Reg> Display for NotPopularInstruction<Reg>
impl<Reg> Display for NotPopularInstruction<Reg>
§impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for NotPopularInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for NotPopularInstruction<Reg>
§fn execute(
self,
state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>,
) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>
fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>
Execute instruction
§impl<Reg> Instruction for NotPopularInstruction<Reg>where
Reg: Register<Type = u64>,
impl<Reg> Instruction for NotPopularInstruction<Reg>where
Reg: Register<Type = u64>,
Source§impl<Reg: PartialEq> PartialEq for NotPopularInstruction<Reg>
impl<Reg: PartialEq> PartialEq for NotPopularInstruction<Reg>
impl<Reg: Copy> Copy for NotPopularInstruction<Reg>
impl<Reg: Eq> Eq for NotPopularInstruction<Reg>
impl<Reg> StructuralPartialEq for NotPopularInstruction<Reg>
Auto Trait Implementations§
impl<Reg> Freeze for NotPopularInstruction<Reg>where
Reg: Freeze,
impl<Reg> RefUnwindSafe for NotPopularInstruction<Reg>where
Reg: RefUnwindSafe,
impl<Reg> Send for NotPopularInstruction<Reg>where
Reg: Send,
impl<Reg> Sync for NotPopularInstruction<Reg>where
Reg: Sync,
impl<Reg> Unpin for NotPopularInstruction<Reg>where
Reg: Unpin,
impl<Reg> UnwindSafe for NotPopularInstruction<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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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