Skip to main content

ab_riscv_interpreter/rv64/m/
zmmul.rs

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