diff --git a/processor/src/chiplets/aux_trace/bus/memory.rs b/processor/src/chiplets/aux_trace/bus/memory.rs index 9c0b7759a..b95ebb166 100644 --- a/processor/src/chiplets/aux_trace/bus/memory.rs +++ b/processor/src/chiplets/aux_trace/bus/memory.rs @@ -197,52 +197,38 @@ pub(super) fn build_pipe_request>( combined_value } -/// Builds `RCOMBBASE` requests made to the memory chiplet. -pub(super) fn build_rcomb_base_request>( +/// Builds `HORNERBASE` or `HORNEREXT` requests made to the memory chiplet. +pub(super) fn build_horner_eval_request>( main_trace: &MainTrace, alphas: &[E], row: RowIndex, _debugger: &mut BusDebugger, ) -> E { - let tz0 = main_trace.helper_register(0, row); - let tz1 = main_trace.helper_register(1, row); - let tzg0 = main_trace.helper_register(2, row); - let tzg1 = main_trace.helper_register(3, row); - let a0 = main_trace.helper_register(4, row); - let a1 = main_trace.helper_register(5, row); - let z_ptr = main_trace.stack_element(13, row); - let a_ptr = main_trace.stack_element(14, row); + let eval_point_0 = main_trace.helper_register(0, row); + let eval_point_1 = main_trace.helper_register(1, row); + let eval_point_ptr = main_trace.stack_element(13, row); let op_label = Felt::from(MEMORY_READ_WORD_LABEL); let ctx = main_trace.ctx(row); let clk = main_trace.clk(row); - let mem_req_1 = MemoryWordMessage { - op_label, - ctx, - addr: z_ptr, - clk, - word: [tz0, tz1, tzg0, tzg1], - source: "rcombbase req 1", - }; - let mem_req_2 = MemoryWordMessage { + let mem_req = MemoryWordMessage { op_label, ctx, - addr: a_ptr, + addr: eval_point_ptr, clk, - word: [a0, a1, ZERO, ZERO], - source: "rcombbase req 2", + word: [eval_point_0, eval_point_1, ZERO, ZERO], + source: "horner_eval_* req", }; - let combined_value = mem_req_1.value(alphas) * mem_req_2.value(alphas); + let value = mem_req.value(alphas); #[cfg(any(test, feature = "bus-debugger"))] { - _debugger.add_request(Box::new(mem_req_1), alphas); - _debugger.add_request(Box::new(mem_req_2), alphas); + _debugger.add_request(alloc::boxed::Box::new(mem_req), alphas); } - combined_value + value } // RESPONSES diff --git a/processor/src/chiplets/aux_trace/bus/mod.rs b/processor/src/chiplets/aux_trace/bus/mod.rs index 708af306b..68940bd29 100644 --- a/processor/src/chiplets/aux_trace/bus/mod.rs +++ b/processor/src/chiplets/aux_trace/bus/mod.rs @@ -6,9 +6,8 @@ use hasher::{ }; use kernel::{build_kernel_chiplet_responses, KernelRomMessage}; use memory::{ - build_mem_mload_mstore_request, build_mem_mloadw_mstorew_request, - build_memory_chiplet_responses, build_mstream_request, build_pipe_request, - build_rcomb_base_request, MemoryWordMessage, + build_horner_eval_request, build_mem_mload_mstore_request, build_mem_mloadw_mstorew_request, + build_memory_chiplet_responses, build_mstream_request, build_pipe_request, MemoryWordMessage, }; use miden_air::{ trace::{ @@ -24,10 +23,10 @@ use miden_air::{ RowIndex, }; use vm_core::{ - ONE, OPCODE_CALL, OPCODE_DYN, OPCODE_DYNCALL, OPCODE_END, OPCODE_HPERM, OPCODE_JOIN, - OPCODE_LOOP, OPCODE_MLOAD, OPCODE_MLOADW, OPCODE_MPVERIFY, OPCODE_MRUPDATE, OPCODE_MSTORE, - OPCODE_MSTOREW, OPCODE_MSTREAM, OPCODE_PIPE, OPCODE_RCOMBBASE, OPCODE_RESPAN, OPCODE_SPAN, - OPCODE_SPLIT, OPCODE_SYSCALL, OPCODE_U32AND, OPCODE_U32XOR, ZERO, + ONE, OPCODE_CALL, OPCODE_DYN, OPCODE_DYNCALL, OPCODE_END, OPCODE_HORNERBASE, OPCODE_HORNEREXT, + OPCODE_HPERM, OPCODE_JOIN, OPCODE_LOOP, OPCODE_MLOAD, OPCODE_MLOADW, OPCODE_MPVERIFY, + OPCODE_MRUPDATE, OPCODE_MSTORE, OPCODE_MSTOREW, OPCODE_MSTREAM, OPCODE_PIPE, OPCODE_RESPAN, + OPCODE_SPAN, OPCODE_SPLIT, OPCODE_SYSCALL, OPCODE_U32AND, OPCODE_U32XOR, ZERO, }; use super::{Felt, FieldElement}; @@ -111,8 +110,9 @@ impl> AuxColumnBuilder for BusColumnBuilder row, debugger, ), + OPCODE_HORNERBASE => build_horner_eval_request(main_trace, alphas, row, debugger), + OPCODE_HORNEREXT => build_horner_eval_request(main_trace, alphas, row, debugger), OPCODE_MSTREAM => build_mstream_request(main_trace, alphas, row, debugger), - OPCODE_RCOMBBASE => build_rcomb_base_request(main_trace, alphas, row, debugger), OPCODE_HPERM => build_hperm_request(main_trace, alphas, row, debugger), OPCODE_MPVERIFY => build_mpverify_request(main_trace, alphas, row, debugger), OPCODE_MRUPDATE => build_mrupdate_request(main_trace, alphas, row, debugger),