Fabcoin Core  0.16.2
P2P Digital Currency
JitVM.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <evmjit.h>
4 #include <libevm/VMFace.h>
5 
6 namespace dev
7 {
8 namespace eth
9 {
10 
11 class JitVM: public VMFace
12 {
13 public:
14  owning_bytes_ref exec(u256& io_gas, ExtVMFace& _ext, OnOpFunc const& _onOp) override final;
15 
16  static evm_mode scheduleToMode(EVMSchedule const& _schedule);
17  static bool isCodeReady(evm_mode _mode, h256 _codeHash);
18  static void compile(evm_mode _mode, bytesConstRef _code, h256 _codeHash);
19 };
20 
21 
22 }
23 }
Adapted from code found on http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c Origi...
Definition: Arith256.cpp:15
owning_bytes_ref exec(u256 &io_gas, ExtVMFace &_ext, OnOpFunc const &_onOp) overridefinal
VM implementation.
Definition: JitVM.cpp:312
static void compile(evm_mode _mode, bytesConstRef _code, h256 _codeHash)
Definition: JitVM.cpp:353
std::function< void(uint64_t, uint64_t, Instruction, bigint, bigint, bigint, VM *, ExtVMFace const *)> OnOpFunc
Definition: ExtVMFace.h:193
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void >> u256
Definition: Common.h:125
evm_mode
EVM compatibility mode aka chain mode.
Definition: evm.h:359
EVM Virtual Machine interface.
Definition: VMFace.h:39
Interface and null implementation of the class for specifying VM externalities.
Definition: ExtVMFace.h:265
static bool isCodeReady(evm_mode _mode, h256 _codeHash)
Definition: JitVM.cpp:348
Reference to a slice of buffer that also owns the buffer.
Definition: ExtVMFace.h:56
static evm_mode scheduleToMode(EVMSchedule const &_schedule)
Definition: JitVM.cpp:339