Paweł Bylica
Paweł Bylica
Requires #168.
This implement the variant C of the [EIP-663](https://eips.ethereum.org/EIPS/eip-663) by adding 4 new instructions for EVM stack manipulation: `DUPN`, `SWAPN`, `DUPSN`, `SWAPSN`. The function change is only done in the analysis...
Requires #144, #153.
The AUR packages are used by Arch Linux. It looks some solidity core devs are using these. Include the `PKGBUILD` config here and test it on CI. - https://aur.archlinux.org/packages/evmone -...
The `RJUMP` and `RJUMPI` implementation ported from #389. ```sh bin/evmc run --vm ./lib/libevmone.so,O=0,histogram --rev 12 5cfffd Config: ./lib/libevmone.so,O=0,histogram Executing on Cancun with 1000000 gas limit --- # HISTOGRAM depth=0 opcode,count...
This is an attempt to prove that the exact EVM error code can be figured out in the interpreter epilogue and instruction implementations do not need to produce precise value.
Adds `evm-bench.py` script to help benchmarking external EVM implementations.
Most of EVM instruction need to check EVM stack height before execution to report stack overflow/underflow errors. In the current implementation the stack height value is computed by subtracting stack...
Notice that the jump instructions (`JUMP`, `JUMPI`) always land on `OPX_BEGINBLOCK`. Therefor we can execute the "beginblock" from within the jump instruction and then target the instruction after `OPX_BEGINBLOCK`. The...