Skip to content

Commit a55ae5b

Browse files
committed
fix memcpy_loop opcode in memcpy.s
1 parent f029a9d commit a55ae5b

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

crates/toolchain/openvm/src/memcpy.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208

209209
# Define memcpy_loop macro for custom instruction (U-type)
210210
.macro memcpy_loop shift
211-
.word 0x72000000 | (\shift << 12) # opcode 0x72 + shift in immediate field (bits 12-31)
211+
.word 0x00000072 | (\shift << 12) # opcode 0x72 + shift in immediate field (bits 12-31)
212212
.endm
213213
.globl memcpy
214214
.p2align 2

extensions/memcpy/circuit/src/core.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use openvm_stark_backend::{
3939

4040
use crate::{bus::MemcpyBus, MemcpyIterChip};
4141
use openvm_circuit::arch::{
42-
execution_mode::{E1ExecutionCtx, E2ExecutionCtx},
42+
execution_mode::{ExecutionCtxTrait, MeteredExecutionCtxTrait},
4343
get_record_from_slice, ExecuteFunc, ExecutionError, Executor,
4444
MeteredExecutor, RecordArena, StaticProgramError, TraceFiller, VmExecState,
4545
};
@@ -324,7 +324,7 @@ where
324324
}
325325

326326
fn execute(
327-
&mut self,
327+
&self,
328328
state: VmStateMut<F, TracingMemory, RA>,
329329
instruction: &Instruction<F>,
330330
) -> Result<(), ExecutionError> {
@@ -565,7 +565,7 @@ impl<F: PrimeField32> Executor<F> for MemcpyLoopExecutor {
565565
data: &mut [u8],
566566
) -> Result<ExecuteFunc<F, Ctx>, StaticProgramError>
567567
where
568-
Ctx: E1ExecutionCtx,
568+
Ctx: ExecutionCtxTrait,
569569
{
570570
let data: &mut MemcpyLoopPreCompute = data.borrow_mut();
571571
self.pre_compute_impl(pc, inst, data)?;
@@ -586,7 +586,7 @@ impl<F: PrimeField32> MeteredExecutor<F> for MemcpyLoopExecutor {
586586
data: &mut [u8],
587587
) -> Result<ExecuteFunc<F, Ctx>, StaticProgramError>
588588
where
589-
Ctx: E2ExecutionCtx,
589+
Ctx: MeteredExecutionCtxTrait,
590590
{
591591
let data: &mut E2PreCompute<MemcpyLoopPreCompute> = data.borrow_mut();
592592
data.chip_idx = chip_idx as u32;
@@ -596,7 +596,7 @@ impl<F: PrimeField32> MeteredExecutor<F> for MemcpyLoopExecutor {
596596
}
597597

598598
#[inline(always)]
599-
unsafe fn execute_e12_impl<F: PrimeField32, CTX: E1ExecutionCtx>(
599+
unsafe fn execute_e12_impl<F: PrimeField32, CTX: ExecutionCtxTrait>(
600600
pre_compute: &MemcpyLoopPreCompute,
601601
vm_state: &mut VmExecState<F, GuestMemory, CTX>,
602602
) {
@@ -674,15 +674,15 @@ unsafe fn execute_e12_impl<F: PrimeField32, CTX: E1ExecutionCtx>(
674674
vm_state.instret += 1;
675675
}
676676

677-
unsafe fn execute_e1_impl<F: PrimeField32, CTX: E1ExecutionCtx>(
677+
unsafe fn execute_e1_impl<F: PrimeField32, CTX: ExecutionCtxTrait>(
678678
pre_compute: &[u8],
679679
vm_state: &mut VmExecState<F, GuestMemory, CTX>,
680680
) {
681681
let pre_compute: &MemcpyLoopPreCompute = pre_compute.borrow();
682682
execute_e12_impl::<F, CTX>(pre_compute, vm_state);
683683
}
684684

685-
unsafe fn execute_e2_impl<F: PrimeField32, CTX: E2ExecutionCtx>(
685+
unsafe fn execute_e2_impl<F: PrimeField32, CTX: MeteredExecutionCtxTrait>(
686686
pre_compute: &[u8],
687687
vm_state: &mut VmExecState<F, GuestMemory, CTX>,
688688
) {

0 commit comments

Comments
 (0)