Skip to main content

ab_riscv_interpreter/rv64/
b.rs

1//! RV64 B extension
2
3pub mod zba;
4pub mod zbb;
5pub mod zbc;
6pub mod zbs;
7
8use crate::rv64::Rv64InterpreterState;
9use crate::{ExecutableInstruction, ExecutionError};
10use ab_riscv_macros::instruction_execution;
11use ab_riscv_primitives::instruction::rv64::b::Rv64BInstruction;
12use ab_riscv_primitives::registers::Register;
13use core::ops::ControlFlow;
14
15#[instruction_execution]
16impl<Reg, Memory, PC, InstructionHandler, CustomError>
17    ExecutableInstruction<
18        Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>,
19        CustomError,
20    > for Rv64BInstruction<Reg>
21where
22    Reg: Register<Type = u64>,
23    [(); Reg::N]:,
24{
25    #[inline(always)]
26    fn execute(
27        self,
28        state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>,
29    ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>> {
30        Ok(ControlFlow::Continue(()))
31    }
32}