pub enum PopularInstruction<Reg> {
Show 20 variants
Ld {
rd: Reg,
rs1: Reg,
imm: i16,
},
Sd {
rs2: Reg,
rs1: Reg,
imm: i16,
},
Add {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Addi {
rd: Reg,
rs1: Reg,
imm: i16,
},
Xor {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Rori {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Srli {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Or {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
And {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Slli {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Lbu {
rd: Reg,
rs1: Reg,
imm: i16,
},
Auipc {
rd: Reg,
imm: i32,
},
Jalr {
rd: Reg,
rs1: Reg,
imm: i16,
},
Sb {
rs2: Reg,
rs1: Reg,
imm: i16,
},
Roriw {
rd: Reg,
rs1: Reg,
shamt: u8,
},
Sub {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sltu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Mulhu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Mul {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sh1add {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
}Variants§
Trait Implementations§
Source§impl<Reg: Clone> Clone for PopularInstruction<Reg>
impl<Reg: Clone> Clone for PopularInstruction<Reg>
Source§fn clone(&self) -> PopularInstruction<Reg>
fn clone(&self) -> PopularInstruction<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 PopularInstruction<Reg>
impl<Reg: Debug> Debug for PopularInstruction<Reg>
§impl<Reg> Display for PopularInstruction<Reg>
impl<Reg> Display for PopularInstruction<Reg>
§impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for PopularInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for PopularInstruction<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 PopularInstruction<Reg>where
Reg: Register<Type = u64>,
impl<Reg> Instruction for PopularInstruction<Reg>where
Reg: Register<Type = u64>,
Source§impl<Reg: PartialEq> PartialEq for PopularInstruction<Reg>
impl<Reg: PartialEq> PartialEq for PopularInstruction<Reg>
impl<Reg: Copy> Copy for PopularInstruction<Reg>
impl<Reg: Eq> Eq for PopularInstruction<Reg>
impl<Reg> StructuralPartialEq for PopularInstruction<Reg>
Auto Trait Implementations§
impl<Reg> Freeze for PopularInstruction<Reg>where
Reg: Freeze,
impl<Reg> RefUnwindSafe for PopularInstruction<Reg>where
Reg: RefUnwindSafe,
impl<Reg> Send for PopularInstruction<Reg>where
Reg: Send,
impl<Reg> Sync for PopularInstruction<Reg>where
Reg: Sync,
impl<Reg> Unpin for PopularInstruction<Reg>where
Reg: Unpin,
impl<Reg> UnwindSafe for PopularInstruction<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