sp1_core_machine/control_flow/jal/
columns.rs1use crate::{
2 adapter::{register::j_type::JTypeReader, state::CPUState},
3 operations::AddOperation,
4 SupervisorMode, TrustMode, UserMode,
5};
6use sp1_derive::AlignedBorrow;
7use std::mem::size_of;
8use struct_reflection::{StructReflection, StructReflectionHelper};
9
10pub const NUM_JAL_COLS_SUPERVISOR: usize = size_of::<JalColumns<u8, SupervisorMode>>();
12pub const NUM_JAL_COLS_USER: usize = size_of::<JalColumns<u8, UserMode>>();
14
15#[derive(AlignedBorrow, Default, Debug, Clone, Copy, StructReflection)]
16#[repr(C)]
17pub struct JalColumns<T, M: TrustMode> {
18 pub state: CPUState<T>,
20
21 pub adapter: JTypeReader<T>,
23
24 pub add_operation: AddOperation<T>,
26
27 pub op_a_operation: AddOperation<T>,
29
30 pub is_real: T,
32
33 pub adapter_cols: M::AdapterCols<T>,
35}