diff --git a/evm/src/cpu/kernel/asm/util/basic_macros.asm b/evm/src/cpu/kernel/asm/util/basic_macros.asm index 4dd93d14..e8dd9eb8 100644 --- a/evm/src/cpu/kernel/asm/util/basic_macros.asm +++ b/evm/src/cpu/kernel/asm/util/basic_macros.asm @@ -140,6 +140,11 @@ // stack: input >= c, ... %endmacro +%macro consume_gas_const(c) + PUSH $c + CONSUME_GAS +%endmacro + // If pred is zero, yields z; otherwise, yields nz %macro select // stack: pred, nz, z @@ -188,3 +193,25 @@ mul // stack: x^2 %endmacro + +%macro min + // stack: x, y + DUP2 + DUP2 + // stack: x, y, x, y + LT + // stack: x < y, x, y + %select_bool + // stack: min +%endmacro + +%macro max + // stack: x, y + DUP2 + DUP2 + // stack: x, y, x, y + GT + // stack: x > y, x, y + %select_bool + // stack: max +%endmacro