diff --git a/evm/src/cpu/kernel/asm/sha2.asm b/evm/src/cpu/kernel/asm/sha2.asm index bc44c4a7..3e7165af 100644 --- a/evm/src/cpu/kernel/asm/sha2.asm +++ b/evm/src/cpu/kernel/asm/sha2.asm @@ -1,34 +1,33 @@ global sha2_store: JUMPDEST - // stack: num_u256s, x[0], x[1], x[2], ... , x[num_u256s-1], retdest + // stack: num_bytes, x[0], x[1], ..., x[num_bytes - 1], retdest dup1 - // stack: num_u256s, num_u256s, x[0], x[1], x[2], ... , x[num_u256s-1], retdest - // TODO: use kernel memory, and start address not at 0 + // stack: num_bytes, num_bytes, x[0], x[1], ..., x[num_bytes - 1], retdest push 0 - // stack: addr=0, num_u256s, num_u256s, x[0], x[1], x[2], ... , x[num_u256s-1], retdest + // stack: addr=0, num_bytes, num_bytes, x[0], x[1], ..., x[num_bytes - 1], retdest %mstore_kernel_general - // stack: num_u256s, x[0], x[1], x[2], ... , x[num_u256s-1], retdest + // stack: num_bytes, num_bytes, x[0], x[1], ..., x[num_bytes - 1], retdest push 1 - // stack: addr=1, counter=num_u256s, x[0], x[1], x[2], ... , x[num_u256s-1], retdest + // stack: addr=1, counter=num_bytes, x[0], x[1], x[2], ... , x[num_bytes-1], retdest sha2_store_loop: JUMPDEST - // stack: addr, counter, x[num_u256s-counter], ... , x[num_u256s-1], retdest + // stack: addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest dup1 - // stack: addr, addr, counter, x[num_u256s-counter], ... , x[num_u256s-1], retdest + // stack: addr, addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest swap3 - // stack: x[num_u256s-counter], addr, counter, addr, ... , x[num_u256s-1], retdest + // stack: x[num_bytes-counter], addr, counter, addr, ... , x[num_bytes-1], retdest swap1 - // stack: addr, x[num_u256s-counter], counter, addr, ... , x[num_u256s-1], retdest + // stack: addr, x[num_bytes-counter], counter, addr, ... , x[num_bytes-1], retdest %mstore_kernel_general - // stack: counter, addr, ... , x[num_u256s-1], retdest + // stack: counter, addr, ... , x[num_bytes-1], retdest %decrement - // stack: counter-1, addr, ... , x[num_u256s-1], retdest + // stack: counter-1, addr, ... , x[num_bytes-1], retdest iszero %jumpi(sha2_store_end) swap1 - // stack: addr, counter-1, ... , x[num_u256s-1], retdest + // stack: addr, counter-1, ... , x[num_bytes-1], retdest %increment - // stack: addr+1, counter-1, ... , x[num_u256s-1], retdest + // stack: addr+1, counter-1, ... , x[num_bytes-1], retdest %jump(sha2_store_loop) sha2_store_end: // stack: counter=0, addr, retdest