mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-05-28 20:59:26 +00:00
more fixes
This commit is contained in:
parent
67e19fd7c9
commit
8ebf4c8f7c
@ -309,7 +309,6 @@ sha2_gen_message_schedule_remaining_loop:
|
|||||||
iszero
|
iszero
|
||||||
%jumpi(sha2_gen_message_schedule_remaining_end)
|
%jumpi(sha2_gen_message_schedule_remaining_end)
|
||||||
%jump(sha2_gen_message_schedule_remaining_loop)
|
%jump(sha2_gen_message_schedule_remaining_loop)
|
||||||
STOP
|
|
||||||
sha2_gen_message_schedule_remaining_end:
|
sha2_gen_message_schedule_remaining_end:
|
||||||
JUMPDEST
|
JUMPDEST
|
||||||
// stack: counter=0, output_addr, block[0], block[1], retdest
|
// stack: counter=0, output_addr, block[0], block[1], retdest
|
||||||
@ -521,29 +520,25 @@ sha2_compression_loop:
|
|||||||
// stack: message_schedule_addr new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, num_blocks new, i, retdest
|
// stack: message_schedule_addr new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, num_blocks new, i, retdest
|
||||||
swap11
|
swap11
|
||||||
// stack: num_blocks new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
// stack: num_blocks new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
||||||
dup1
|
|
||||||
// stack: num_blocks new, num_blocks new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
|
||||||
iszero
|
|
||||||
%jumpi(sha2_compression_end)
|
|
||||||
// stack: num_blocks new, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
|
||||||
swap10
|
swap10
|
||||||
// stack: num_blocks, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, i, new_retdest
|
// stack: num_blocks, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, i, new_retdest
|
||||||
pop
|
pop
|
||||||
// stack: i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, i, new_retdest
|
// stack: i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, i, new_retdest
|
||||||
// stack: i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
|
||||||
push 64
|
push 64
|
||||||
swap1
|
swap1
|
||||||
mod
|
mod
|
||||||
// stack: (i+1)%64, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, i, retdest
|
// stack: (i+1)%64, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, i, retdest
|
||||||
swap11
|
swap11
|
||||||
// stack: i, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, (i+1)%64, retdest
|
// stack: i, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, (i+1)%64, retdest
|
||||||
pop
|
pop
|
||||||
// stack: a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr new, (i+1)%64, retdest
|
// stack: a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, (i+1)%64, retdest
|
||||||
|
dup11
|
||||||
|
// stack: (i+1)%64, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks new, message_schedule_addr new, (i+1)%64, retdest
|
||||||
|
iszero
|
||||||
|
%jumpi(sha2_compression_end_block)
|
||||||
%jump(sha2_compression_loop)
|
%jump(sha2_compression_loop)
|
||||||
sha2_compression_end:
|
sha2_compression_end_block:
|
||||||
JUMPDEST
|
JUMPDEST
|
||||||
// stack: num_blocks=0, i+1, a[i+1], b[i+1], c[i+1], d[i+1], e[i+1], f[i+1], g[i+1], h[i+1], num_blocks, message_schedule_addr, i, retdest
|
|
||||||
%pop2
|
|
||||||
// stack: a[64], b[64], c[64], d[64], e[64], f[64], g[64], h[64], num_blocks, message_schedule_addr, i, retdest
|
// stack: a[64], b[64], c[64], d[64], e[64], f[64], g[64], h[64], num_blocks, message_schedule_addr, i, retdest
|
||||||
push sha2_constants_h
|
push sha2_constants_h
|
||||||
%mload_kernel_code_u32
|
%mload_kernel_code_u32
|
||||||
@ -608,6 +603,38 @@ sha2_compression_end:
|
|||||||
// stack: h[0]+h[64], a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], num_blocks, message_schedule_addr, i, retdest
|
// stack: h[0]+h[64], a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], num_blocks, message_schedule_addr, i, retdest
|
||||||
swap8
|
swap8
|
||||||
// stack: num_blocks, a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
// stack: num_blocks, a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
||||||
|
dup1
|
||||||
|
// stack: num_blocks, num_blocks, a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
||||||
|
iszero
|
||||||
|
%jumpi(sha2_compression_end)
|
||||||
|
// stack: num_blocks, a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
||||||
|
// TODO: "insertion" macro for the below
|
||||||
|
swap1
|
||||||
|
swap2
|
||||||
|
swap1
|
||||||
|
swap2
|
||||||
|
swap3
|
||||||
|
swap2
|
||||||
|
swap3
|
||||||
|
swap4
|
||||||
|
swap3
|
||||||
|
swap4
|
||||||
|
swap5
|
||||||
|
swap4
|
||||||
|
swap5
|
||||||
|
swap6
|
||||||
|
swap5
|
||||||
|
swap6
|
||||||
|
swap7
|
||||||
|
swap6
|
||||||
|
swap7
|
||||||
|
swap8
|
||||||
|
swap7
|
||||||
|
swap8
|
||||||
|
%jump(sha2_compression_loop)
|
||||||
|
sha2_compression_end:
|
||||||
|
JUMPDEST
|
||||||
|
// stack: num_blocks, a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
||||||
pop
|
pop
|
||||||
// stack: a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
// stack: a[0]+a[64], b[0]+b[64], c[0]+c[64], d[0]+d[64], e[0]+e[64], f[0]+f[64], g[0]+g[64], h[0]+h[64], message_schedule_addr, i, retdest
|
||||||
%shl_const(32)
|
%shl_const(32)
|
||||||
|
|||||||
@ -71,12 +71,12 @@ fn test_sha2() -> Result<()> {
|
|||||||
let mem = memory_after_storing.context_memory[0].segments[Segment::KernelGeneral as usize]
|
let mem = memory_after_storing.context_memory[0].segments[Segment::KernelGeneral as usize]
|
||||||
.content
|
.content
|
||||||
.clone();
|
.clone();
|
||||||
dbg!(&mem[0..65]);
|
// dbg!(&mem[0..65]);
|
||||||
|
|
||||||
let num_blocks = (num_bytes+8)/64 + 1;
|
let num_blocks = (num_bytes+8)/64 + 1;
|
||||||
let message_schedule_start = 64 * num_blocks + 2;
|
let message_schedule_start = 64 * num_blocks + 2;
|
||||||
dbg!(&mem[message_schedule_start..message_schedule_start+256]);
|
// dbg!(&mem[message_schedule_start..message_schedule_start+256]);
|
||||||
dbg!(&mem[message_schedule_start+256..message_schedule_start+512]);
|
// dbg!(&mem[message_schedule_start+256..message_schedule_start+512]);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user