From 32b8b3599b82de77f0b4a5305999072a84eec437 Mon Sep 17 00:00:00 2001 From: Dmitry Vagner Date: Mon, 3 Oct 2022 13:17:29 -0700 Subject: [PATCH] move buffer_update to memory module --- evm/src/cpu/kernel/asm/ripemd/memory.asm | 26 ++++++++++++++++++++++++ evm/src/cpu/kernel/asm/ripemd/update.asm | 26 ------------------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/evm/src/cpu/kernel/asm/ripemd/memory.asm b/evm/src/cpu/kernel/asm/ripemd/memory.asm index 69b434df..e070c235 100644 --- a/evm/src/cpu/kernel/asm/ripemd/memory.asm +++ b/evm/src/cpu/kernel/asm/ripemd/memory.asm @@ -79,6 +79,32 @@ store_input: // stack: length %jump(ripemd_init) +/// def buffer_update(get, set, times): +/// for i in range(times): +/// buffer[set+i] = bytestring[get+i] + +global buffer_update: + // stack: get , set , times , retdest + DUP2 + DUP2 + // stack: get, set, get , set , times , retdest + %mupdate_kernel_general + // stack: get , set , times , retdest + %add_const(1) + SWAP1 + %add_const(1) + SWAP1 + SWAP2 + %sub_const(1) + SWAP2 + // stack: get+1, set+1, times-1, retdest + DUP3 + %jumpi(buffer_update) + // stack: get , set , 0 , retdest + %pop3 + JUMP + + %macro store_zeros(N, label) // stack: i %stack (i) -> ($N, i, 0, i) diff --git a/evm/src/cpu/kernel/asm/ripemd/update.asm b/evm/src/cpu/kernel/asm/ripemd/update.asm index df52d175..41fecd40 100644 --- a/evm/src/cpu/kernel/asm/ripemd/update.asm +++ b/evm/src/cpu/kernel/asm/ripemd/update.asm @@ -107,29 +107,3 @@ update_2: %stack (offset, STATE: 5) -> (STATE, offset, update_2) // stack: STATE, offset, update_2, shift, need, have, count, length, virt, retdest %jump(compress) - - -/// def buffer_update(get, set, times): -/// for i in range(times): -/// buffer[set+i] = bytestring[get+i] - -buffer_update: - // stack: get , set , times , retdest - DUP2 - DUP2 - // stack: get, set, get , set , times , retdest - %mupdate_kernel_general - // stack: get , set , times , retdest - %add_const(1) - SWAP1 - %add_const(1) - SWAP1 - SWAP2 - %sub_const(1) - SWAP2 - // stack: get+1, set+1, times-1, retdest - DUP3 - %jumpi(buffer_update) - // stack: get , set , 0 , retdest - %pop3 - JUMP