mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-06 07:43:10 +00:00
fix update2
This commit is contained in:
parent
4850c338b4
commit
9f5e565452
@ -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
|
||||
|
||||
@ -16,8 +16,8 @@ fn test_ripemd() -> Result<()> {
|
||||
// let input: Vec<u8> = make_input("12345678901234567890123456789012345678901234567890123456789012345678901234567890");
|
||||
// let expected = U256::from("0x9b752e45573d4b39f4dbd3323cab82bf63326bfb");
|
||||
|
||||
let input: Vec<u8> = make_input("abcdefghijklmnopqrstuvwxyz");
|
||||
let expected = U256::from("0xf71c27109c692c1b56bbdceb5b9d2865b3708dbc");
|
||||
let input: Vec<u8> = make_input("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
|
||||
let expected = U256::from("0xb0e20b6e3116640286ed3a87a5713079b21f5189");
|
||||
|
||||
|
||||
let kernel = combined_kernel();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user