From 78b775a9751c02a73b34c641ebb36663f4f6fa2f Mon Sep 17 00:00:00 2001 From: Angell Li Date: Sun, 25 Aug 2024 23:33:16 +0800 Subject: [PATCH] fix constraints for maddu --- prover/src/cpu/misc.rs | 4 ++-- prover/src/witness/operation.rs | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/prover/src/cpu/misc.rs b/prover/src/cpu/misc.rs index c33c823f..7ac4fd68 100644 --- a/prover/src/cpu/misc.rs +++ b/prover/src/cpu/misc.rs @@ -671,7 +671,7 @@ pub fn eval_packed_maddu( let lo = lv.mem_channels[3].value; let hi_result: P = lv.mem_channels[4].value; let lo_result = lv.mem_channels[5].value; - let carry = lv.mem_channels[6].value; + let carry = lv.general.misc().auxm; let scale = P::Scalar::from_canonical_usize(1 << 32); let result = hi_result * scale + lo_result; let mul = rs * rt; @@ -744,7 +744,7 @@ pub fn eval_ext_circuit_maddu, const D: usize>( let lo = lv.mem_channels[3].value; let hi_result = lv.mem_channels[4].value; let lo_result = lv.mem_channels[5].value; - let carry = lv.mem_channels[6].value; + let carry = lv.general.misc().auxm; let scale = builder.constant_extension(F::Extension::from_canonical_usize(1 << 32)); let result = builder.mul_extension(hi_result, scale); let result = builder.add_extension(result, lo_result); diff --git a/prover/src/witness/operation.rs b/prover/src/witness/operation.rs index 7edb59df..37047aa0 100644 --- a/prover/src/witness/operation.rs +++ b/prover/src/witness/operation.rs @@ -1453,15 +1453,13 @@ pub(crate) fn generate_maddu( let (result, overflow) = (mul as u64).overflowing_add(addend as u64); let log_out0 = reg_write_with_log(33, 4, (result >> 32) as usize, state, &mut row)?; let log_out1 = reg_write_with_log(32, 5, (result as u32) as usize, state, &mut row)?; - let log_out2 = reg_write_with_log(0, 6, ((overflow as u64) << 32) as usize, state, &mut row)?; - + row.general.misc_mut().auxm = F::from_canonical_usize((overflow as usize) << 32); state.traces.push_memory(log_in0); state.traces.push_memory(log_in1); state.traces.push_memory(log_in2); state.traces.push_memory(log_in3); state.traces.push_memory(log_out0); state.traces.push_memory(log_out1); - state.traces.push_memory(log_out2); state.traces.push_cpu(row); Ok(()) }