diff --git a/evm/src/cpu/kernel/asm/ripemd/ripemd.asm b/evm/src/cpu/kernel/asm/ripemd/ripemd.asm index 25422a26..cdf8d12c 100644 --- a/evm/src/cpu/kernel/asm/ripemd/ripemd.asm +++ b/evm/src/cpu/kernel/asm/ripemd/ripemd.asm @@ -17,6 +17,7 @@ global ripemd_alt: %stack (length) -> (64, length, 0x80, 63, length, length) // stack: 64, length, 0x80, 63, length, length, INPUT + %jump(0xdeadbeef) %jump(ripemd_storage) // stores the following into memory // init _buffer at virt 0 [consumes 64] // store _size at virt 64 [consumes length] diff --git a/evm/src/cpu/kernel/asm/ripemd/update.asm b/evm/src/cpu/kernel/asm/ripemd/update.asm index 82d078c8..edfb64b3 100644 --- a/evm/src/cpu/kernel/asm/ripemd/update.asm +++ b/evm/src/cpu/kernel/asm/ripemd/update.asm @@ -45,7 +45,7 @@ final_update: %stack (shift, need, have, STATE: 5, count, length) -> (length, shift, return_step, shift, need, have, STATE, count, length) SUB // stack: ARGS, shift, need, have, STATE, count, length, virt, retdest - %stack (ARGS: 2, shift, need, have, STATE: 5, count, length, virt) -> (shift, virt, have, ARGS: 2, shift, need, have, STATE, count, length, virt) + %stack (ARGS: 2, shift, need, have, STATE: 5, count, length, virt) -> (shift, virt, have, ARGS, shift, need, have, STATE, count, length, virt) ADD // stack: ARGS: 4, shift, need, have, STATE, count, length, virt, retdest PUSH 0 diff --git a/evm/src/cpu/kernel/tests/ripemd.rs b/evm/src/cpu/kernel/tests/ripemd.rs index d62f3105..ed75cc9e 100644 --- a/evm/src/cpu/kernel/tests/ripemd.rs +++ b/evm/src/cpu/kernel/tests/ripemd.rs @@ -24,17 +24,15 @@ fn test_ripemd() -> Result<()> { 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, ]; - - // let input: Vec = vec![0xabcd, 0x1234, 0x6789]; let stack_init = input.iter().map(|&x| U256::from(x as u32)).collect(); - let ripemd = kernel.global_labels["F0"]; - let hashed = run( + let stack_result = run( &kernel.code, - ripemd, + kernel.global_labels["ripemd_alt"], stack_init, - &kernel.prover_inputs)?; - let result = hashed.stack(); + &kernel.prover_inputs + )?; + let result = stack_result.stack(); for term in input { println!("{:X}", term);