Skip to main content

ab_riscv_interpreter/rv64/m/
zmmul.rs

1//! RV64 Zmmul extension (multiplication subset of M extension)
2
3use crate::{ExecutableInstruction, ExecutionError, InterpreterState};
4use ab_riscv_macros::instruction_execution;
5use ab_riscv_primitives::instructions::rv64::m::zmmul::Rv64ZmmulInstruction;
6use ab_riscv_primitives::registers::general_purpose::Register;
7use core::ops::ControlFlow;
8
9#[instruction_execution]
10impl<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>
11    ExecutableInstruction<
12        InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
13        CustomError,
14    > for Rv64ZmmulInstruction<Reg>
15where
16    Reg: Register<Type = u64>,
17    [(); Reg::N]:,
18{
19    #[inline(always)]
20    fn execute(
21        self,
22        state: &mut InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
23    ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, CustomError>> {
24        Ok(ControlFlow::Continue(()))
25    }
26}