From 29df451d9d71321eac1334cbef25a7f3b23d6df0 Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Mon, 27 Feb 2023 15:24:46 -0800 Subject: [PATCH] optimizations --- evm/src/cpu/kernel/asm/hash/sha2/main.asm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/evm/src/cpu/kernel/asm/hash/sha2/main.asm b/evm/src/cpu/kernel/asm/hash/sha2/main.asm index 058224f6..e47d1838 100644 --- a/evm/src/cpu/kernel/asm/hash/sha2/main.asm +++ b/evm/src/cpu/kernel/asm/hash/sha2/main.asm @@ -19,9 +19,7 @@ global sha2_pad: // STEP 1: append 1 // insert 128 (= 1 << 7) at x[num_bytes+1] // stack: num_bytes, retdest - PUSH 1 - PUSH 7 - SHL + PUSH 0x80 // stack: 128, num_bytes, retdest DUP2 // stack: num_bytes, 128, num_bytes, retdest @@ -33,21 +31,19 @@ global sha2_pad: DUP1 // stack: num_bytes, num_bytes, retdest %add_const(8) - %div_const(64) + %shr_const(6) %increment // stack: num_blocks = (num_bytes+8)//64 + 1, num_bytes, retdest // STEP 3: calculate length := num_bytes*8 SWAP1 // stack: num_bytes, num_blocks, retdest - PUSH 8 - MUL + %mul_const(8) // stack: length = num_bytes*8, num_blocks, retdest // STEP 4: write length to x[num_blocks*64-7..num_blocks*64] DUP2 // stack: num_blocks, length, num_blocks, retdest - PUSH 64 - MUL + %mul_const(64) // stack: last_addr = num_blocks*64, length, num_blocks, retdest %sha2_write_length // stack: num_blocks, retdest