#pragma once #include namespace dev { namespace eth { /// Converts EVM JIT representation of 256-bit integer to eth type dev::u256. inline u256 jit2eth(evmjit::i256 _i) { u256 u = _i.words[3]; u <<= 64; u |= _i.words[2]; u <<= 64; u |= _i.words[1]; u <<= 64; u |= _i.words[0]; return u; } /// Converts eth type dev::u256 to EVM JIT representation of 256-bit integer. inline evmjit::i256 eth2jit(u256 _u) { evmjit::i256 i; i.words[0] = static_cast(_u); _u >>= 64; i.words[1] = static_cast(_u); _u >>= 64; i.words[2] = static_cast(_u); _u >>= 64; i.words[3] = static_cast(_u); return i; } /// Converts eth type dev::h256 to EVM JIT representation of 256-bit hash value. inline evmjit::h256 eth2jit(h256 _u) { /// Just directly copies memory return *(evmjit::h256*)&_u; } } }