diff --git a/evm/src/cpu/kernel/asm/core/precompiles/rip160.asm b/evm/src/cpu/kernel/asm/core/precompiles/rip160.asm index 7991ab42..909340c4 100644 --- a/evm/src/cpu/kernel/asm/core/precompiles/rip160.asm +++ b/evm/src/cpu/kernel/asm/core/precompiles/rip160.asm @@ -27,7 +27,7 @@ global precompile_rip160: // // %stack (ctx, size) -> // ( - // 0, @SEGMENT_KERNEL_GENERAL, 200, // DST + // ctx, @SEGMENT_KERNEL_GENERAL, 200, // DST // ctx, @SEGMENT_CALLDATA, 0, // SRC // size, ripemd, // count, retdest // 200, size, rip160_contd // ripemd input: virt, num_bytes, retdest @@ -42,7 +42,7 @@ global precompile_rip160: SWAP6 PUSH 200 PUSH @SEGMENT_KERNEL_GENERAL - PUSH 0 + DUP3 %jump(memcpy) diff --git a/evm/src/cpu/kernel/asm/core/precompiles/sha256.asm b/evm/src/cpu/kernel/asm/core/precompiles/sha256.asm index 8739ec84..2f45995a 100644 --- a/evm/src/cpu/kernel/asm/core/precompiles/sha256.asm +++ b/evm/src/cpu/kernel/asm/core/precompiles/sha256.asm @@ -31,7 +31,7 @@ global precompile_sha256: // // %stack (ctx, size) -> // ( - // 0, @SEGMENT_KERNEL_GENERAL, 1, // DST + // ctx, @SEGMENT_KERNEL_GENERAL, 1, // DST // ctx, @SEGMENT_CALLDATA, 0, // SRC // size, sha2, // count, retdest // 0, size, sha256_contd // sha2 input: virt, num_bytes, retdest @@ -47,7 +47,7 @@ global precompile_sha256: SWAP6 PUSH 1 PUSH @SEGMENT_KERNEL_GENERAL - PUSH 0 + DUP3 %jump(memcpy) diff --git a/evm/src/cpu/kernel/asm/hash/ripemd/update.asm b/evm/src/cpu/kernel/asm/hash/ripemd/update.asm index 63d3cff8..c5783cc7 100644 --- a/evm/src/cpu/kernel/asm/hash/ripemd/update.asm +++ b/evm/src/cpu/kernel/asm/hash/ripemd/update.asm @@ -117,7 +117,7 @@ buffer_update: DUP2 DUP2 // stack: get, set, get , set , times , retdest - %mupdate_kernel_general + %mupdate_current_general // stack: get , set , times , retdest %increment SWAP1 diff --git a/evm/src/cpu/kernel/asm/memory/core.asm b/evm/src/cpu/kernel/asm/memory/core.asm index bdaac62e..41d4927b 100644 --- a/evm/src/cpu/kernel/asm/memory/core.asm +++ b/evm/src/cpu/kernel/asm/memory/core.asm @@ -194,6 +194,16 @@ // stack: (empty) %endmacro +// set offset i to offset j in kernel general +%macro mupdate_current_general + // stack: j, i + %mload_current_general + // stack: x, i + SWAP1 + %mstore_current_general + // stack: (empty) +%endmacro + // Load a single value from the given segment of kernel (context 0) memory. %macro mload_kernel(segment) // stack: offset @@ -409,16 +419,6 @@ %mstore_kernel_u32(@SEGMENT_KERNEL_GENERAL) %endmacro -// set offset i to offset j in kernel general -%macro mupdate_kernel_general - // stack: j, i - %mload_kernel_general - // stack: x, i - SWAP1 - %mstore_kernel_general - // stack: (empty) -%endmacro - // Load a single value from kernel general 2 memory. %macro mload_kernel_general_2 // stack: offset