pub struct Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>{
pub regs: Registers<Reg>,
pub memory: Memory,
pub instruction_fetcher: IF,
pub system_instruction_handler: InstructionHandler,
/* private fields */
}Expand description
RV64 interpreter state
Fields§
§regs: Registers<Reg>Registers
memory: MemoryMemory
instruction_fetcher: IFInstruction fetcher
system_instruction_handler: InstructionHandlerSystem instruction handler
Implementations§
Source§impl<Reg, Memory, IF, InstructionHandler, CustomError> Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory, IF, InstructionHandler, CustomError> Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
Sourcepub fn set_pc(
&mut self,
pc: Reg::Type,
) -> Result<ControlFlow<()>, ProgramCounterError<Reg::Type, CustomError>>
pub fn set_pc( &mut self, pc: Reg::Type, ) -> Result<ControlFlow<()>, ProgramCounterError<Reg::Type, CustomError>>
Set program counter
Trait Implementations§
Source§impl<Reg, Memory: Debug, IF: Debug, InstructionHandler: Debug, CustomError: Debug> Debug for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory: Debug, IF: Debug, InstructionHandler: Debug, CustomError: Debug> Debug for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
§impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64BInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64BInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64Instruction<Reg>where
Reg: Register<Type = u64>,
[(); Reg::N]:,
Memory: VirtualMemory,
PC: ProgramCounter<Reg::Type, Memory, CustomError>,
InstructionHandler: Rv64SystemInstructionHandler<Reg, Memory, PC, CustomError>,
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64Instruction<Reg>where
Reg: Register<Type = u64>,
[(); Reg::N]:,
Memory: VirtualMemory,
PC: ProgramCounter<Reg::Type, Memory, CustomError>,
InstructionHandler: Rv64SystemInstructionHandler<Reg, Memory, PC, CustomError>,
§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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64MInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64MInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbaInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbaInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbbInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbbInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbcInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbcInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbkcInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbkcInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbsInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbsInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZknhInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZknhInstruction<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, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZmmulInstruction<Reg>
impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZmmulInstruction<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
Auto Trait Implementations§
impl<Reg, Memory, IF, InstructionHandler, CustomError> Freeze for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory, IF, InstructionHandler, CustomError> RefUnwindSafe for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>where
Memory: RefUnwindSafe,
IF: RefUnwindSafe,
InstructionHandler: RefUnwindSafe,
CustomError: RefUnwindSafe,
impl<Reg, Memory, IF, InstructionHandler, CustomError> Send for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory, IF, InstructionHandler, CustomError> Sync for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory, IF, InstructionHandler, CustomError> Unpin for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
impl<Reg, Memory, IF, InstructionHandler, CustomError> UnwindSafe for Rv64InterpreterState<Reg, Memory, IF, InstructionHandler, CustomError>
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