INNER CODE UNIT · Rust
advance_step
GuildOfWeavers/distaff · src/processor/decoder/mod.rs:276
fn advance_step(&mut self, is_user_op: bool) {
// increment step by 1
self.step += 1;
// make sure there is enough memory allocated for register traces
if self.step >= self.trace_length() {
let new_length = self.trace_length() * 2;
self.op_counter.resize(new_length, field::ZERO);
for register in self.sponge_trace.iter_mut() { register.resize(new_length, field::ZERO); }
for register in self.cf_op_bits.iter_mut() { register.resize(new_length, field::ZERO); }
for register in self.ld_op_bits.iter_mut() { register.resize(new_length, field::ZERO); }
for register in self.hd_op_bits.iter_mut() { register.resize(new_length, field::ZERO); }
for register in self.ctx_stack.iter_mut() { register.resize(new_length, field::ZERO); }
for register in self.loop_stack.iter_mut() { register.resize(new_length, field::ZERO); }
}
// for user ops, increment counter by 1; otherwise, copy counter from thee previous step