diff --git a/evm/src/cpu/kernel/asm/sha2.asm b/evm/src/cpu/kernel/asm/sha2.asm index c5cdb212..f9d83873 100644 --- a/evm/src/cpu/kernel/asm/sha2.asm +++ b/evm/src/cpu/kernel/asm/sha2.asm @@ -15,6 +15,7 @@ sha2_store_loop: JUMPDEST // stack: addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest dup1 + STOP // stack: addr, addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest swap3 // stack: x[num_bytes-counter], addr, counter, addr, ... , x[num_bytes-1], retdest diff --git a/evm/src/cpu/kernel/tests/sha2.rs b/evm/src/cpu/kernel/tests/sha2.rs index b90ba52c..fde9c99e 100644 --- a/evm/src/cpu/kernel/tests/sha2.rs +++ b/evm/src/cpu/kernel/tests/sha2.rs @@ -29,6 +29,7 @@ fn test_sha2_store() -> Result<()> { let mut initial_stack = vec![U256::from(num_bytes)]; initial_stack.extend(bytes); initial_stack.push(U256::from_str("0xdeadbeef").unwrap()); + initial_stack.reverse(); dbg!(initial_stack.clone()); let stack_with_kernel = run(&kernel.code, sha2_store, initial_stack)?.stack; dbg!(stack_with_kernel);