Skip to main content

ab_riscv_interpreter/rv32/zk/
zbkc.rs

1//! RV32 Zbkc extension (subset of Zbc extension)
2
3use crate::rv32::b::zbc::zbc_helpers;
4use crate::{ExecutableInstruction, ExecutionError, InterpreterState};
5use ab_riscv_macros::instruction_execution;
6use ab_riscv_primitives::instructions::rv32::zk::zbkc::Rv32ZbkcInstruction;
7use ab_riscv_primitives::registers::general_purpose::Register;
8use core::ops::ControlFlow;
9
10#[instruction_execution]
11impl<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>
12    ExecutableInstruction<
13        InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
14        CustomError,
15    > for Rv32ZbkcInstruction<Reg>
16where
17    Reg: Register<Type = u32>,
18    [(); Reg::N]:,
19{
20    #[inline(always)]
21    fn execute(
22        self,
23        state: &mut InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
24    ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, CustomError>> {
25        Ok(ControlFlow::Continue(()))
26    }
27}