#include "Runtime.h" #include #include "Type.h" namespace dev { namespace eth { namespace jit { static Runtime* g_runtime; extern "C" { EXPORT i256 gas; } Runtime::Runtime(u256 _gas, std::unique_ptr _ext): m_ext(std::move(_ext)) { assert(!g_runtime); g_runtime = this; gas = eth2llvm(_gas); } Runtime::~Runtime() { g_runtime = nullptr; } StackImpl& Runtime::getStack() { return g_runtime->m_stack; } MemoryImpl& Runtime::getMemory() { return g_runtime->m_memory; } ExtVMFace& Runtime::getExt() { return *g_runtime->m_ext; } u256 Runtime::getGas() { return llvm2eth(gas); } } } }