From 9f5e5654523bbe84d4e89d59757f0bbe5c64046d Mon Sep 17 00:00:00 2001 From: Dmitry Vagner Date: Mon, 26 Sep 2022 10:32:54 -0700 Subject: [PATCH] fix update2 --- evm/src/cpu/kernel/asm/ripemd/update.asm | 52 ++++++++++++------------ evm/src/cpu/kernel/tests/ripemd.rs | 4 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/evm/src/cpu/kernel/asm/ripemd/update.asm b/evm/src/cpu/kernel/asm/ripemd/update.asm index 03d1c5c5..8620b7aa 100644 --- a/evm/src/cpu/kernel/asm/ripemd/update.asm +++ b/evm/src/cpu/kernel/asm/ripemd/update.asm @@ -29,42 +29,42 @@ global ripemd_update: SUB PUSH 0 // stack: shift, need, have, STATE, count, length, virt, retdest - %stack (shift, need, have, STATE: 5, count, length) -> (length, need, STATE, 0, shift, need, have, count, length) - // stack: length, need, STATE, 0, shift, need, have, count, length, virt, retdest + %stack (shift, need, have, STATE: 5, count, length) -> (length, need, STATE, shift, need, have, count, length) + // stack: length, need, STATE, shift, need, have, count, length, virt, retdest LT ISZERO - // stack: Q, STATE, 0, shift, need, have, count, length, virt, retdest - %stack (Q, STATE: 5, i, shift, need, have) -> (have, Q, Q, STATE, i, shift, need, have) + // stack: Q, STATE, shift, need, have, count, length, virt, retdest + %stack (Q, STATE: 5, shift, need, have) -> (have, Q, Q, STATE, shift, need, have) %gt_const(0) AND - // stack: P, Q, STATE, 0, shift, need, have, count, length, virt, retdest + // stack: P, Q, STATE, shift, need, have, count, length, virt, retdest %jumpi(update_1) - // stack: Q, STATE, 0, shift, need, have, count, length, virt, retdest + // stack: Q, STATE, shift, need, have, count, length, virt, retdest %jumpi(update_2) final_update: - // stack: STATE, 0, shift, need, have, count, length, virt, retdest - %stack (STATE: 5, i, shift, need, have, count, length) -> (length, shift, return_step, STATE, 0, shift, need, have, count, length) + // stack: STATE, shift, need, have, count, length, virt, retdest + %stack (STATE: 5, shift, need, have, count, length) -> (length, shift, return_step, STATE, shift, need, have, count, length) SUB - // stack: ARGS: 2, STATE, 0, shift, need, have, count, length, virt, retdest - %stack (ARGS: 2, STATE: 5, i, shift, need, have, count, length, virt) -> (shift, virt, have, ARGS, STATE, 0, shift, need, have, count, length, virt) + // stack: ARGS: 2, STATE, shift, need, have, count, length, virt, retdest + %stack (ARGS: 2, STATE: 5, shift, need, have, count, length, virt) -> (shift, virt, have, ARGS, STATE, shift, need, have, count, length, virt) ADD - // stack: ARGS: 4, STATE, 0, shift, need, have, count, length, virt, retdest - %stack (ARGS: 4, STATE: 5, i, shift, need, have, count, length) -> (length, shift, ARGS, STATE, 0, shift, need, have, count, length) + // stack: ARGS: 4, STATE, shift, need, have, count, length, virt, retdest + %stack (ARGS: 4, STATE: 5, shift, need, have, count, length) -> (length, shift, ARGS, STATE, shift, need, have, count, length) GT - // stack: R, ARGS: 4, STATE, 0, shift, need, have, count, length, virt, retdest + // stack: R, ARGS: 4, STATE, shift, need, have, count, length, virt, retdest %jumpi(buffer_update) - // stack: ARGS: 4, STATE, 0, shift, need, have, count, length, virt, retdest + // stack: ARGS: 4, STATE, shift, need, have, count, length, virt, retdest %pop3 JUMP return_step: - // stack: STATE, 0, shift, need, have, count, length, virt, retdest - SWAP9 - DUP11 + // stack: STATE, shift, need, have, count, length, virt, retdest + SWAP8 + DUP10 %mul_const(8) ADD - SWAP9 - // stack: STATE, 0, shift, need, have, count, length, virt, retdest - %stack (STATE: 5, i, shift, need, have, count, length, virt, retdest) -> (retdest, STATE, count, length, virt) + SWAP8 + // stack: STATE, shift, need, have, count, length, virt, retdest + %stack (STATE: 5, shift, need, have, count, length, virt, retdest) -> (retdest, STATE, count, length, virt) JUMP @@ -75,13 +75,13 @@ return_step: /// state = compress(state, buffer) update_1: - // stack: Q, STATE, 0, shift, need, have, count, length, virt, retdest - %stack (Q, STATE: 5, i, shift, need, have, count, length, virt) -> (virt, have, need, update_1a, STATE, i, shift, need, have, count, length, virt) + // stack: Q, STATE, shift, need, have, count, length, virt, retdest + %stack (Q, STATE: 5, shift, need, have, count, length, virt) -> (virt, have, need, update_1a, STATE, shift, need, have, count, length, virt) %jump(buffer_update) update_1a: - // stack: STATE, 0, shift, need, have, count, length, virt, retdest - %stack (STATE: 5, i, shift, need, have) -> (STATE, i, update_2, need, need, 0) - // stack: STATE, 0, update_2, shift = need, need, have = 0, count, length, virt, retdest + // stack: STATE, shift, need, have, count, length, virt, retdest + %stack (STATE: 5, shift, need, have) -> (STATE, 0, update_2, need, need, 0) + // stack: STATE, 0, update_2, shift = need, need, have = 0, count, length, virt, retdest %jump(compress) /// def update_2(): @@ -103,7 +103,7 @@ update_2: %stack (offset, cond, STATE: 5) -> (cond, STATE, offset, compression_loop) // stack: cond, STATE, offset, compression_loop, shift, need, have, count, length, virt, retdest %jumpi(compress) - %stack (STATE: 5, offset, compression_loop) -> (STATE, offset) + %stack (STATE: 5, offset, compression_loop) -> (STATE) %jump(final_update) compression_loop: // stack: STATE, offset , cond , shift, need, have, count, length, virt, retdest diff --git a/evm/src/cpu/kernel/tests/ripemd.rs b/evm/src/cpu/kernel/tests/ripemd.rs index 5a70b8ba..66842e5f 100644 --- a/evm/src/cpu/kernel/tests/ripemd.rs +++ b/evm/src/cpu/kernel/tests/ripemd.rs @@ -16,8 +16,8 @@ fn test_ripemd() -> Result<()> { // let input: Vec = make_input("12345678901234567890123456789012345678901234567890123456789012345678901234567890"); // let expected = U256::from("0x9b752e45573d4b39f4dbd3323cab82bf63326bfb"); - let input: Vec = make_input("abcdefghijklmnopqrstuvwxyz"); - let expected = U256::from("0xf71c27109c692c1b56bbdceb5b9d2865b3708dbc"); + let input: Vec = make_input("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); + let expected = U256::from("0xb0e20b6e3116640286ed3a87a5713079b21f5189"); let kernel = combined_kernel();