ab_riscv_primitives/instructions/rv64/zk/
zkn.rs1pub mod zknd;
4pub mod zkne;
5pub mod zknh;
6
7use crate::instructions::Instruction;
8use crate::instructions::rv64::b::zbb::Rv64ZbbInstruction;
9use crate::instructions::rv64::b::zbc::Rv64ZbcInstruction;
10use crate::instructions::rv64::zk::zbkb::Rv64ZbkbInstruction;
11use crate::instructions::rv64::zk::zbkc::Rv64ZbkcInstruction;
12use crate::instructions::rv64::zk::zbkx::Rv64ZbkxInstruction;
13use crate::instructions::rv64::zk::zkn::zknd::{Rv64ZkndInstruction, Rv64ZkndKsRnum};
14use crate::instructions::rv64::zk::zkn::zkne::Rv64ZkneInstruction;
15use crate::instructions::rv64::zk::zkn::zknh::Rv64ZknhInstruction;
16use crate::registers::general_purpose::Register;
17use ab_riscv_macros::instruction;
18use core::fmt;
19
20#[instruction(
22 inherit = [
23 Rv64ZbkbInstruction,
24 Rv64ZbkcInstruction,
25 Rv64ZbkxInstruction,
26 Rv64ZkndInstruction,
27 Rv64ZkneInstruction,
28 Rv64ZknhInstruction,
29 ]
30)]
31#[derive(Debug, Clone, Copy)]
32#[derive_const(PartialEq, Eq)]
33pub enum Rv64ZknInstruction<Reg> {}
34
35#[instruction]
36const impl<Reg> Instruction for Rv64ZknInstruction<Reg>
37where
38 Reg: [const] Register<Type = u64>,
39{
40 type Reg = Reg;
41
42 #[inline(always)]
43 #[cfg_attr(feature = "no-panic", no_panic_const::no_panic(const))]
44 fn try_decode(instruction: u32) -> Option<Self> {
45 None
46 }
47
48 #[inline(always)]
49 fn alignment() -> u8 {
50 align_of::<u32>() as u8
51 }
52
53 #[inline(always)]
54 fn size(&self) -> u8 {
55 size_of::<u32>() as u8
56 }
57}
58
59#[instruction]
60impl<Reg> fmt::Display for Rv64ZknInstruction<Reg>
61where
62 Reg: fmt::Display + Copy,
63{
64 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
65 match self {}
66 }
67}