ab_riscv_interpreter/
b_64_ext.rs1pub mod zba_64_ext;
4pub mod zbb_64_ext;
5pub mod zbc_64_ext;
6pub mod zbs_64_ext;
7
8use crate::b_64_ext::zba_64_ext::execute_zba_64_ext;
9use crate::b_64_ext::zbb_64_ext::execute_zbb_64_ext;
10use crate::b_64_ext::zbc_64_ext::execute_zbc_64_ext;
11use crate::b_64_ext::zbs_64_ext::execute_zbs_64_ext;
12use ab_riscv_primitives::instruction::b_64_ext::BZbc64ExtInstruction;
13use ab_riscv_primitives::registers::{Register, Registers};
14
15#[inline(always)]
17pub fn execute_b_zbc_64_ext<Reg>(regs: &mut Registers<Reg>, instruction: BZbc64ExtInstruction<Reg>)
18where
19 Reg: Register<Type = u64>,
20 [(); Reg::N]:,
21{
22 match instruction {
23 BZbc64ExtInstruction::Zba(instruction) => execute_zba_64_ext(regs, instruction),
24 BZbc64ExtInstruction::Zbb(instruction) => execute_zbb_64_ext(regs, instruction),
25 BZbc64ExtInstruction::Zbc(instruction) => execute_zbc_64_ext(regs, instruction),
26 BZbc64ExtInstruction::Zbs(instruction) => execute_zbs_64_ext(regs, instruction),
27 }
28}