This commit is contained in:
Dmitry Vagner 2023-03-14 16:40:58 -07:00
commit dd7948e77b
7 changed files with 37 additions and 41 deletions

View File

@ -134,17 +134,13 @@ pubkey_to_addr:
// stack: hash, v, r, s, retdest
DUP2
// stack: v, hash, v, r, s, retdest
PUSH 27
// stack: 27, v, hash, v, r, s, retdest
EQ
%eq_const(27)
// stack: v==27, hash, v, r, s, retdest
DUP3
// stack: v, v==27, hash, v, r, s, retdest
PUSH 28
// stack: 28, v, v==27, hash, v, r, s, retdest
EQ
%eq_const(28)
// stack: v==28, v==27, hash, v, r, s, retdest
OR
ADD // OR
// stack: (v==28 || v==27), hash, v, r, s, retdest
DUP5
// stack: s, (v==28 || v==27), hash, v, r, s, retdest
@ -154,7 +150,7 @@ pubkey_to_addr:
// stack: r, (s >= N || s==0), (v==28 || v==27), hash, v, r, s, retdest
%secp_is_out_of_bounds
// stack: (r >= N || r==0), (s >= N || s==0), (v==28 || v==27), hash, v, r, s, retdest
OR
ADD // OR
// stack: (r >= N || r==0 || s >= N || s==0), (v==28 || v==27), hash, v, r, s, retdest
ISZERO
// stack: (r < N & r!=0 & s < N & s!=0), (v==28 || v==27), hash, v, r, s, retdest
@ -178,7 +174,7 @@ pubkey_to_addr:
// stack: x < N, x==0
ISZERO
// stack: x >= N, x==0
OR
ADD // OR
// stack: x >= N || x==0
%endmacro

View File

@ -52,7 +52,7 @@ global blake2b_iv_const:
// stack: IV_i[32:], IV_i[:32], ...
%shl_const(32)
// stack: IV_i[32:] << 32, IV_i[:32], ...
OR
ADD // OR
// stack: IV_i, ...
%endmacro

View File

@ -18,7 +18,7 @@ global rol:
// stack: x << n, x >> (32-n), retdest
%as_u32
// stack: u32(x << n), x >> (32-n), retdest
OR
ADD // OR
// stack: u32(x << n) | (x >> (32-n)), retdest
SWAP1
JUMP

View File

@ -81,21 +81,21 @@ process:
SWAP1
%reverse_bytes_u32
%shl_const(96)
OR
ADD // OR
// stack: b' a', c, d, e, VARS
SWAP1
%reverse_bytes_u32
%shl_const(64)
OR
ADD // OR
// stack: c' b' a', d, e, VARS
SWAP1
%reverse_bytes_u32
%shl_const(32)
OR
ADD // OR
// stack: d' c' b' a', e, VARS
SWAP1
%reverse_bytes_u32
OR
ADD // OR
// stack: e' d' c' b' a', VARS
%stack (result, VARS: 3, retdest) -> (retdest, result)
// stack: 0xdeadbeef, result

View File

@ -263,19 +263,19 @@ compression_end:
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], scratch_space_addr, message_schedule_addr, i, retdest
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
%shl_const(32)
OR
ADD // OR
// stack: concat(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]), scratch_space_addr, message_schedule_addr, i, retdest
SWAP3
// stack: i, scratch_space_addr, message_schedule_addr, concat(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]), retdest

View File

@ -79,21 +79,21 @@
DUP2
%increment
%mload_kernel($segment)
OR
ADD // OR
// stack: (c_3 << 8) | c_2, offset
%shl_const(8)
// stack: ((c_3 << 8) | c_2) << 8, offset
DUP2
%add_const(2)
%mload_kernel($segment)
OR
ADD // OR
// stack: (((c_3 << 8) | c_2) << 8) | c_1, offset
%shl_const(8)
// stack: ((((c_3 << 8) | c_2) << 8) | c_1) << 8, offset
SWAP1
%add_const(3)
%mload_kernel($segment)
OR
ADD // OR
// stack: (((((c_3 << 8) | c_2) << 8) | c_1) << 8) | c_0
%endmacro
@ -107,19 +107,19 @@
%increment
%mload_kernel($segment)
%shl_const(8)
OR
ADD
// stack: c0 | (c1 << 8) , offset
DUP2
%add_const(2)
%mload_kernel($segment)
%shl_const(16)
OR
ADD
// stack: c0 | (c1 << 8) | (c2 << 16), offset
SWAP1
%add_const(3)
%mload_kernel($segment)
%shl_const(24)
OR
ADD // OR
// stack: c0 | (c1 << 8) | (c2 << 16) | (c3 << 24)
%endmacro
@ -137,7 +137,7 @@
// stack: hi, lo
%shl_const(32)
// stack: hi << 32, lo
OR
ADD // OR
// stack: (hi << 32) | lo
%endmacro
@ -152,49 +152,49 @@
DUP2
%add_const(4)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 32) | c_6, offset
%shl_const(32)
// stack: ((c_7 << 32) | c_6) << 32, offset
DUP2
%add_const(8)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 64) | (c_6 << 32) | c_5, offset
%shl_const(32)
// stack: ((c_7 << 64) | (c_6 << 32) | c_5) << 32, offset
DUP2
%add_const(12)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 96) | (c_6 << 64) | (c_5 << 32) | c_4, offset
%shl_const(32)
// stack: ((c_7 << 96) | (c_6 << 64) | (c_5 << 32) | c_4) << 32, offset
DUP2
%add_const(16)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 128) | (c_6 << 96) | (c_5 << 64) | (c_4 << 32) | c_3, offset
%shl_const(32)
// stack: ((c_7 << 128) | (c_6 << 96) | (c_5 << 64) | (c_4 << 32) | c_3) << 32, offset
DUP2
%add_const(20)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 160) | (c_6 << 128) | (c_5 << 96) | (c_4 << 64) | (c_3 << 32) | c_2, offset
%shl_const(32)
// stack: ((c_7 << 160) | (c_6 << 128) | (c_5 << 96) | (c_4 << 64) | (c_3 << 32) | c_2) << 32, offset
DUP2
%add_const(24)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 192) | (c_6 << 160) | (c_5 << 128) | (c_4 << 96) | (c_3 << 64) | (c_2 << 32) | c_1, offset
%shl_const(32)
// stack: ((c_7 << 192) | (c_6 << 160) | (c_5 << 128) | (c_4 << 96) | (c_3 << 64) | (c_2 << 32) | c_1) << 32, offset
DUP2
%add_const(28)
%mload_kernel_u32($segment)
OR
ADD // OR
// stack: (c_7 << 224) | (c_6 << 192) | (c_5 << 160) | (c_4 << 128) | (c_3 << 96) | (c_2 << 64) | (c_1 << 32) | c_0, offset
SWAP1
POP

View File

@ -309,9 +309,9 @@
BYTE
%shl_const(24)
// stack: d000, b0, a, c00
OR
OR
OR
ADD // OR
ADD // OR
ADD // OR
// stack: dcba
%endmacro
@ -332,7 +332,7 @@
%reverse_bytes_u32
// stack: word_lo_inverted, word_hi_inverted
%shl_const(32)
OR
ADD // OR
// stack: word_inverted
%endmacro
@ -341,7 +341,7 @@
// stack: a, b, c, d
%rep 3
%shl_const(64)
OR
ADD // OR
%endrep
// stack: a || b || c || d
%endmacro