mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-07 16:23:12 +00:00
optimize hash generation further further
This commit is contained in:
parent
c37d1e25fc
commit
9d8d81b4b0
@ -30,62 +30,25 @@ blake2b_generate_new_hash_value:
|
|||||||
|
|
||||||
global blake2b_generate_all_hash_values:
|
global blake2b_generate_all_hash_values:
|
||||||
// stack: retdest
|
// stack: retdest
|
||||||
PUSH blake2b_generate_hash_return_7
|
PUSH 8
|
||||||
// stack: blake2b_generate_hash_return_7, retdest
|
// stack: i=8, retdest
|
||||||
PUSH 7
|
blake2b_generate_hash_loop:
|
||||||
// stack: 7, blake2b_generate_hash_return_7, retdest
|
// stack: i, h_i', ..., h_7', retdest
|
||||||
|
%decrement
|
||||||
|
// stack: i-1, h_i', ..., h_7', retdest
|
||||||
|
PUSH blake2b_generate_hash_return
|
||||||
|
// stack: blake2b_generate_hash_return, i-1, h_i', ..., h_7', retdest
|
||||||
|
DUP2
|
||||||
|
// stack: i-1, blake2b_generate_hash_return, i-1, h_i', ..., h_7', retdest
|
||||||
%jump(blake2b_generate_new_hash_value)
|
%jump(blake2b_generate_new_hash_value)
|
||||||
blake2b_generate_hash_return_7:
|
blake2b_generate_hash_return:
|
||||||
// stack: h_7', retdest
|
// stack: h_(i-1)', i-1, h_i', ..., h_7', retdest
|
||||||
PUSH blake2b_generate_hash_return_6
|
SWAP1
|
||||||
// stack: blake2b_generate_hash_return_6, h_7', retdest
|
// stack: i-1, h_(i-1)', h_i', ..., h_7', retdest
|
||||||
PUSH 6
|
DUP1
|
||||||
// stack: 6, blake2b_generate_hash_return_6, h_7', retdest
|
// stack: i-1, i-1, h_(i-1)', ..., h_7', retdest
|
||||||
%jump(blake2b_generate_new_hash_value)
|
%jumpi(blake2b_generate_hash_loop)
|
||||||
blake2b_generate_hash_return_6:
|
// stack: i-1=0, h_0', ..., h_7', retdest
|
||||||
// stack: h_6', h_7', retdest
|
%stack (i, h: 8, ret) -> (ret, h)
|
||||||
PUSH blake2b_generate_hash_return_5
|
// stack: retdest, h_0'...h_7'
|
||||||
// stack: blake2b_generate_hash_return_5, h_6', h_7', retdest
|
|
||||||
PUSH 5
|
|
||||||
// stack: 5, blake2b_generate_hash_return_5, h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_5:
|
|
||||||
// stack: h_5', h_6', h_7', retdest
|
|
||||||
PUSH blake2b_generate_hash_return_4
|
|
||||||
// stack: blake2b_generate_hash_return_4, h_5', h_6', h_7', retdest
|
|
||||||
PUSH 4
|
|
||||||
// stack: 4, blake2b_generate_hash_return_4, h_5', h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_4:
|
|
||||||
// stack: h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH blake2b_generate_hash_return_3
|
|
||||||
// stack: blake2b_generate_hash_return_3, h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH 3
|
|
||||||
// stack: 3, blake2b_generate_hash_return_3, h_4', h_5', h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_3:
|
|
||||||
// stack: h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH blake2b_generate_hash_return_2
|
|
||||||
// stack: blake2b_generate_hash_return_2, h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH 2
|
|
||||||
// stack: 2, blake2b_generate_hash_return_2, h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_2:
|
|
||||||
// stack: h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH blake2b_generate_hash_return_1
|
|
||||||
// stack: blake2b_generate_hash_return_1, h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH 1
|
|
||||||
// stack: 1, blake2b_generate_hash_return_1, h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_1:
|
|
||||||
// stack: h_1', h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH blake2b_generate_hash_return_0
|
|
||||||
// stack: blake2b_generate_hash_return_0, h_1', h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
PUSH 0
|
|
||||||
// stack: 0, blake2b_generate_hash_return_0, h_1', h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
%jump(blake2b_generate_new_hash_value)
|
|
||||||
blake2b_generate_hash_return_0:
|
|
||||||
// stack: h_0', h_1', h_2', h_3', h_4', h_5', h_6', h_7', retdest
|
|
||||||
%stack (h: 8, ret) -> (ret, h)
|
|
||||||
// stack: retdest, h_0', h_1', h_2', h_3', h_4', h_5', h_6', h_7'
|
|
||||||
JUMP
|
JUMP
|
||||||
|
|||||||
@ -79,6 +79,8 @@ fn prepare_test<T>(
|
|||||||
// Run the interpeter
|
// Run the interpeter
|
||||||
let result = run_interpreter_with_memory(interpreter_setup).unwrap();
|
let result = run_interpreter_with_memory(interpreter_setup).unwrap();
|
||||||
|
|
||||||
|
dbg!(result.stack().to_vec());
|
||||||
|
|
||||||
Ok((expected, result.stack().to_vec()))
|
Ok((expected, result.stack().to_vec()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user