sp1_core_machine/control_flow/jalr/
columns.rs1use crate::adapter::{register::i_type::ITypeReader, state::CPUState};
2use crate::{SupervisorMode, TrustMode, UserMode};
3use sp1_derive::AlignedBorrow;
4use std::mem::size_of;
5use struct_reflection::{StructReflection, StructReflectionHelper};
6
7use crate::operations::AddOperation;
8
9pub const NUM_JALR_COLS_SUPERVISOR: usize = size_of::<JalrColumns<u8, SupervisorMode>>();
11pub const NUM_JALR_COLS_USER: usize = size_of::<JalrColumns<u8, UserMode>>();
13
14#[derive(AlignedBorrow, Default, Debug, Clone, Copy, StructReflection)]
15#[repr(C)]
16pub struct JalrColumns<T, M: TrustMode> {
17 pub state: CPUState<T>,
19
20 pub adapter: ITypeReader<T>,
22
23 pub is_real: T,
25
26 pub add_operation: AddOperation<T>,
28
29 pub op_a_operation: AddOperation<T>,
31
32 pub lsb: T,
34
35 pub adapter_cols: M::AdapterCols<T>,
37}