mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-14 03:33:11 +00:00
add constants
This commit is contained in:
parent
03b4d0a9da
commit
ca23001029
126
evm/src/cpu/kernel/asm/ripemd/constants.asm
Normal file
126
evm/src/cpu/kernel/asm/ripemd/constants.asm
Normal file
@ -0,0 +1,126 @@
|
||||
// %macro load_K
|
||||
|
||||
K_data:
|
||||
// Left
|
||||
BYTES 0x00, 0x00, 0x00, 0x00
|
||||
BYTES 0x5A, 0x82, 0x79, 0x99
|
||||
BYTES 0x6E, 0xD9, 0xEB, 0xA1
|
||||
BYTES 0x8F, 0x1B, 0xBC, 0xDC
|
||||
BYTES 0xA9, 0x53, 0xFD, 0x4E
|
||||
// Right
|
||||
BYTES 0x50, 0xA2, 0x8B, 0xE6
|
||||
BYTES 0x5C, 0x4D, 0xD1, 0x24
|
||||
BYTES 0x6D, 0x70, 0x3E, 0xF3
|
||||
BYTES 0x7A, 0x6D, 0x76, 0xE9
|
||||
BYTES 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
// %macro load_s
|
||||
|
||||
s_data:
|
||||
// Left Round 1
|
||||
BYTES 11, 14, 15, 12
|
||||
BYTES 05, 08, 07, 09
|
||||
BYTES 11, 13, 14, 15
|
||||
BYTES 06, 07, 09, 08
|
||||
// Left Round 2
|
||||
BYTES 07, 06, 08, 13
|
||||
BYTES 11, 09, 07, 15
|
||||
BYTES 07, 12, 15, 09
|
||||
BYTES 11, 07, 13, 12
|
||||
// Left Round 3
|
||||
BYTES 11, 13, 06, 07
|
||||
BYTES 14, 09, 13, 15
|
||||
BYTES 14, 08, 13, 06
|
||||
BYTES 05, 12, 07, 05
|
||||
// Left Round 4
|
||||
BYTES 11, 12, 14, 15
|
||||
BYTES 14, 15, 09, 08
|
||||
BYTES 09, 14, 05, 06
|
||||
BYTES 08, 06, 05, 12
|
||||
// Left Round 5
|
||||
BYTES 09, 15, 05, 11
|
||||
BYTES 06, 08, 13, 12
|
||||
BYTES 05, 12, 13, 14
|
||||
BYTES 11, 08, 05, 06
|
||||
|
||||
// Right Round 1
|
||||
BYTES 08, 09, 09, 11
|
||||
BYTES 13, 15, 15, 05
|
||||
BYTES 07, 07, 08, 11
|
||||
BYTES 14, 14, 12, 06
|
||||
// Right Round 2
|
||||
BYTES 09, 13, 15, 07
|
||||
BYTES 12, 08, 09, 11
|
||||
BYTES 07, 07, 12, 07
|
||||
BYTES 06, 15, 13, 11
|
||||
// Right Round 3
|
||||
BYTES 09, 07, 15, 11
|
||||
BYTES 08, 06, 06, 14
|
||||
BYTES 12, 13, 05, 14
|
||||
BYTES 13, 13, 07, 05
|
||||
// Right Round 4
|
||||
BYTES 15, 05, 08, 11
|
||||
BYTES 14, 14, 06, 14
|
||||
BYTES 06, 09, 12, 09
|
||||
BYTES 12, 05, 15, 08
|
||||
// Right Round 5
|
||||
BYTES 08, 05, 12, 09
|
||||
BYTES 12, 05, 14, 06
|
||||
BYTES 08, 13, 06, 05
|
||||
BYTES 15, 13, 11, 11
|
||||
|
||||
|
||||
// %macro load_r
|
||||
|
||||
r_data:
|
||||
// Left Round 0
|
||||
BYTES 00, 01, 02, 03
|
||||
BYTES 04, 05, 06, 07
|
||||
BYTES 08, 09, 10, 11
|
||||
BYTES 12, 13, 14, 15
|
||||
// Left Round 1
|
||||
BYTES 07, 04, 13, 01
|
||||
BYTES 10, 06, 15, 03
|
||||
BYTES 12, 00, 09, 05
|
||||
BYTES 02, 14, 11, 08
|
||||
// Left Round 2
|
||||
BYTES 03, 10, 14, 04
|
||||
BYTES 09, 15, 08, 01
|
||||
BYTES 02, 07, 00, 06
|
||||
BYTES 13, 11, 05, 12
|
||||
// Left Round 3
|
||||
BYTES 01, 09, 11, 10
|
||||
BYTES 00, 08, 12, 04
|
||||
BYTES 13, 03, 07, 15
|
||||
BYTES 14, 05, 06, 02
|
||||
// Left Round 4
|
||||
BYTES 04, 00, 05, 09
|
||||
BYTES 07, 12, 02, 10
|
||||
BYTES 14, 01, 03, 08
|
||||
BYTES 11, 06, 15, 13
|
||||
// Right Round 0
|
||||
BYTES 05, 14, 07, 00
|
||||
BYTES 09, 02, 11, 04
|
||||
BYTES 13, 06, 15, 08
|
||||
BYTES 01, 10, 03, 12
|
||||
// Right Round 1
|
||||
BYTES 06, 11, 03, 07
|
||||
BYTES 00, 13, 05, 10
|
||||
BYTES 14, 15, 08, 12
|
||||
BYTES 04, 09, 01, 02
|
||||
// Right Round 2
|
||||
BYTES 15, 05, 01, 03
|
||||
BYTES 07, 14, 06, 09
|
||||
BYTES 11, 08, 12, 02
|
||||
BYTES 10, 00, 04, 13
|
||||
// Right Round 3
|
||||
BYTES 08, 06, 04, 01
|
||||
BYTES 03, 11, 15, 00
|
||||
BYTES 05, 12, 02, 13
|
||||
BYTES 09, 07, 10, 14
|
||||
// Right Round 4
|
||||
BYTES 12, 15, 10, 04
|
||||
BYTES 01, 05, 08, 07
|
||||
BYTES 06, 02, 13, 14
|
||||
BYTES 00, 03, 09, 11
|
||||
|
||||
@ -42,30 +42,31 @@ switch:
|
||||
|
||||
loop:
|
||||
jumpdest
|
||||
// stack: *stack, Fj, Kj, 16, n, retdest
|
||||
// stack: *state, Fj, Kj, 16, n, retdest
|
||||
push 1 dup9 sub swap8
|
||||
// stack: n, *stack, Fj, Kj, 16, n-1, retdest
|
||||
// stack: n, *state, Fj, Kj, 16, n-1, retdest
|
||||
%jumpi(cycle)
|
||||
// stack: *stack, Fj, Kj, 16, -1, retdest
|
||||
// stack: *state, Fj, Kj, 16, -1, retdest
|
||||
%stack (a, b, c, d, e, f, k, i, n, ret) -> (ret, a, b, c, d, e)
|
||||
// stack: retdest, *stack
|
||||
// stack: retdest, *state
|
||||
jump
|
||||
cycle:
|
||||
jumpdest
|
||||
// stack: *stack, Fj, Kj, i, n, retdest
|
||||
// stack: *state, Fj, Kj, i, n, retdest
|
||||
push 1 dup9 sub swap8
|
||||
// stack: i, *stack, Fj, Kj, i-1, n, retdest
|
||||
// stack: i, *state, Fj, Kj, i-1, n, retdest
|
||||
%jumpi(R)
|
||||
// stack: *stack, Fj, Kj, -1, n, retdest
|
||||
// stack: *state, Fj, Kj, -1, n, retdest
|
||||
swap5 pop push Fj swap5 ---------------------------------------------------------------------TODO
|
||||
// stack: *stack, Fj, Kj 16, n, retdest
|
||||
// stack: *state, Fj, Kj 16, n, retdest
|
||||
swap6 pop push Kj swap6 ---------------------------------------------------------------------TODO
|
||||
// stack: *stack, Fj, Kj 16, n, retdest
|
||||
// stack: *state, Fj, Kj 16, n, retdest
|
||||
swap7 pop push 16 swap7
|
||||
// stack: *stack, Fj, Kj 16, n, retdest
|
||||
// stack: *state, Fj, Kj 16, n, retdest
|
||||
%jump(loop)
|
||||
|
||||
|
||||
/// Note that a, b, c, d, e represent *state
|
||||
///
|
||||
/// def R(a, b, c, d, e, Fj, Kj, _sj, _rj, _X):
|
||||
/// a = u32(ROL(sj, u32(Fj(b, c, d) + a + X[rj] + Kj)) + e)
|
||||
/// c = ROL(10, c)
|
||||
@ -164,3 +165,4 @@ mix:
|
||||
// stack: s3+l4+r0, s1+l2+r3, s2+l3+r4, retdest, s4+l0+r1, s0+l1+r2
|
||||
swap3
|
||||
// stack: retdest, s1+l2+r3, s2+l3+r4, s3+l4+r0, s4+l0+r1, s0+l1+r2
|
||||
jump
|
||||
Loading…
x
Reference in New Issue
Block a user