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

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…