ab_riscv_interpreter/v/
zve64x.rs1pub mod arith;
4pub mod config;
5pub mod fixed_point;
6pub mod load;
7pub mod mask;
8pub mod muldiv;
9pub mod perm;
10pub mod reduction;
11pub mod store;
12pub mod widen_narrow;
13pub mod zve64x_helpers;
14
15use crate::v::vector_registers::VectorRegistersExt;
16use crate::v::zve64x::arith::zve64x_arith_helpers;
17use crate::v::zve64x::config::zve64x_config_helpers;
18use crate::v::zve64x::fixed_point::zve64x_fixed_point_helpers;
19use crate::v::zve64x::load::zve64x_load_helpers;
20use crate::v::zve64x::mask::zve64x_mask_helpers;
21use crate::v::zve64x::muldiv::zve64x_muldiv_helpers;
22use crate::v::zve64x::perm::zve64x_perm_helpers;
23use crate::v::zve64x::reduction::zve64x_reduction_helpers;
24use crate::v::zve64x::store::zve64x_store_helpers;
25use crate::v::zve64x::widen_narrow::zve64x_widen_narrow_helpers;
26use crate::zicsr::zicsr_helpers;
27use crate::{
28 CsrError, Csrs, ExecutableInstruction, ExecutionError, InterpreterState, ProgramCounter,
29 VirtualMemory,
30};
31use ab_riscv_macros::instruction_execution;
32use ab_riscv_primitives::instructions::v::zve64x::Zve64xInstruction;
33use ab_riscv_primitives::instructions::v::{Eew, Vsew};
34use ab_riscv_primitives::registers::general_purpose::{RegType, Register};
35use ab_riscv_primitives::registers::vector::{VCsr, VReg};
36use core::fmt;
37use core::ops::ControlFlow;
38
39#[instruction_execution]
40impl<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>
41 ExecutableInstruction<
42 InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
43 CustomError,
44 > for Zve64xInstruction<Reg>
45where
46 Reg: Register,
47 [(); Reg::N]:,
48{
49 #[inline(always)]
50 fn execute(
51 self,
52 state: &mut InterpreterState<Reg, ExtState, Memory, PC, InstructionHandler, CustomError>,
53 ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, CustomError>> {
54 Ok(ControlFlow::Continue(()))
55 }
56}