Skip to main content

ExecutableInstruction

Trait ExecutableInstruction 

Source
pub trait ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError = CustomErrorPlaceholder>
where Self: ExecutableInstructionOperands + ExecutableInstructionCsr<ExtState, CustomError>,
{ // Required method fn execute( self, rs1rs2_values: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<<<Self as Instruction>::Reg as Register>::Type, CustomError>>; }
Expand description

Trait for executable instructions

Required Methods§

Source

fn execute( self, rs1rs2_values: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<<<Self as Instruction>::Reg as Register>::Type, CustomError>>

Execute instruction.

Instructions might place additional constraints on ExtState to require additional registers or other resources. If no such constraint is used, () can be used as a placeholder.

On success Ok(ControlFlow::Continue((rd, rd_value))) is returned, which will be written into the register file. In most cases this is the only register that needs to be written. If no value needs to be written, Ok(ControlFlow::Continue(Default::default())) should be returned, which corresponds to Ok(ControlFlow::Continue(Reg::ZERO, 0)) and is no-op.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32BInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32Instruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32MInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbaInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbbInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbcInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbkbInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbkcInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbkxInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZbsInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZcaInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZcbInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZcmpInstruction<Reg>
where Reg: ZcmpRegister<Type = u32>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZknInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZkndInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZkneInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZknhInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv32ZmmulInstruction<Reg>
where Reg: Register<Type = u32>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64BInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64Instruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64MInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbaInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbbInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbcInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbkbInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbkcInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbkxInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZbsInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZcaInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZcbInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZcmpInstruction<Reg>
where Reg: ZcmpRegister<Type = u64>, Regs: RegisterFile<Reg>, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: SystemInstructionHandler<Reg, Regs, Memory, PC, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, _ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZknInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZkndInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZkneInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZknhInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Rv64ZmmulInstruction<Reg>
where Reg: Register<Type = u64>, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for ZicondInstruction<Reg>
where Reg: Register, Regs: RegisterFile<Reg>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, _regs: &mut Regs, _ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for ZicsrInstruction<Reg>
where Reg: Register, Regs: RegisterFile<Reg>, ExtState: Csrs<Reg, CustomError>,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, ext_state: &mut ExtState, _memory: &mut Memory, _program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

§

impl<Reg, Regs, ExtState, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Regs, ExtState, Memory, PC, InstructionHandler, CustomError> for Zve64xInstruction<Reg>
where Reg: Register, Regs: RegisterFile<Reg>, ExtState: VectorRegistersExt<Reg, CustomError> + Csrs<Reg, CustomError>, [(); { _ }]:, PC: ProgramCounter<Reg::Type, Memory, CustomError>, CustomError: Debug, Memory: VirtualMemory,

§

fn execute( self, _: Rs1Rs2OperandValues<<Self::Reg as Register>::Type>, regs: &mut Regs, ext_state: &mut ExtState, memory: &mut Memory, program_counter: &mut PC, _system_instruction_handler: &mut InstructionHandler, ) -> Result<ControlFlow<(), (Self::Reg, <Self::Reg as Register>::Type)>, ExecutionError<Reg::Type, CustomError>>

Implementors§