@@ -57,39 +57,6 @@ pub(crate) fn generate_bootstrap_kernel<F: Field>(state: &mut GenerationState<F>
57
57
58
58
check_image_id ( state, kernel) ;
59
59
60
- let mut final_cpu_row = CpuColumnsView :: default ( ) ;
61
- final_cpu_row. clock = F :: from_canonical_usize ( state. traces . clock ( ) ) ;
62
- final_cpu_row. is_bootstrap_kernel = F :: ONE ;
63
- final_cpu_row. is_keccak_sponge = F :: ONE ;
64
-
65
- let mut image_addr_value_byte_be = vec ! [ 0u8 ; image_addr_value. len( ) * 4 ] ;
66
- for ( i, v) in image_addr_value. iter ( ) . enumerate ( ) {
67
- image_addr_value_byte_be[ i * 4 ..( i * 4 + 4 ) ] . copy_from_slice ( & v. to_be_bytes ( ) ) ;
68
- }
69
-
70
- // The Keccak sponge CTL uses memory value columns for its inputs and outputs.
71
- final_cpu_row. mem_channels [ 0 ] . value [ 0 ] = F :: ZERO ; // context
72
- final_cpu_row. mem_channels [ 1 ] . value [ 0 ] = F :: from_canonical_usize ( Segment :: Code as usize ) ;
73
- // align with the `already_absorbed_bytes/4` to avoid that the padding block bytes are not present in
74
- // memory
75
- let final_idx = image_addr_value_byte_be. len ( ) / KECCAK_RATE_BYTES * KECCAK_RATE_U32S ;
76
- final_cpu_row. mem_channels [ 2 ] . value [ 0 ] = F :: from_canonical_usize ( image_addr[ final_idx] . virt ) ;
77
- final_cpu_row. mem_channels [ 3 ] . value [ 0 ] =
78
- F :: from_canonical_usize ( image_addr_value_byte_be. len ( ) ) ; // len
79
-
80
- let code_hash_bytes = keccak ( & image_addr_value_byte_be) . 0 ;
81
- let code_hash_be = core:: array:: from_fn ( |i| {
82
- u32:: from_le_bytes ( core:: array:: from_fn ( |j| code_hash_bytes[ i * 4 + j] ) )
83
- } ) ;
84
- let code_hash = code_hash_be. map ( u32:: from_be) ;
85
- log:: info!( "code_hash: {:?}" , code_hash) ;
86
-
87
- final_cpu_row. mem_channels [ 4 ] . value = code_hash. map ( F :: from_canonical_u32) ;
88
- final_cpu_row. mem_channels [ 4 ] . value . reverse ( ) ;
89
-
90
- keccak_sponge_log ( state, image_addr, image_addr_value_byte_be) ;
91
- state. traces . push_cpu ( final_cpu_row) ;
92
-
93
60
state. memory . apply_ops ( & state. traces . memory_ops ) ;
94
61
log:: info!( "Bootstrapping took {} cycles" , state. traces. clock( ) ) ;
95
62
}
0 commit comments