diff --git a/evm/src/cpu/kernel/asm/balance.asm b/evm/src/cpu/kernel/asm/balance.asm index 6ce88cc4..1c7fb400 100644 --- a/evm/src/cpu/kernel/asm/balance.asm +++ b/evm/src/cpu/kernel/asm/balance.asm @@ -1,3 +1,20 @@ +global sys_balance: + // stack: kexit_info, address + // TODO: assuming a cold account access for now. + %charge_gas_const(@GAS_COLDACCOUNTACCESS) + SWAP1 + // stack: address, kexit_info + %balance + // stack: balance, kexit_info + SWAP1 + EXIT_KERNEL + +%macro balance + %stack (address) -> (address, %%after) + %jump(balance) +%%after: +%endmacro + global balance: // stack: address, retdest %mpt_read_state_trie @@ -13,11 +30,17 @@ retzero: %stack (account_ptr, retdest) -> (retdest, 0) JUMP +global sys_selfbalance: + // stack: kexit_info + %charge_gas_const(@GAS_LOW) + %selfbalance + // stack: balance, kexit_info + SWAP1 + EXIT_KERNEL -global selfbalance: - // stack: retdest +%macro selfbalance + PUSH %%after %address - PUSH balance - // stack: balance, address, retdest - JUMP - + %jump(balance) +%%after: +%endmacro \ No newline at end of file diff --git a/evm/src/cpu/kernel/asm/core/syscall_stubs.asm b/evm/src/cpu/kernel/asm/core/syscall_stubs.asm index 26281eea..610c7502 100644 --- a/evm/src/cpu/kernel/asm/core/syscall_stubs.asm +++ b/evm/src/cpu/kernel/asm/core/syscall_stubs.asm @@ -13,8 +13,6 @@ global sys_sgt: PANIC global sys_sar: PANIC -global sys_balance: - PANIC global sys_origin: PANIC global sys_calldatasize: @@ -50,8 +48,6 @@ global sys_chainid: // stack: chain_id, kexit_info SWAP1 EXIT_KERNEL -global sys_selfbalance: - PANIC global sys_basefee: PANIC global sys_log0: