You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
586 B
36 lines
586 B
#pragma once
|
|
|
|
namespace llvm
|
|
{
|
|
class Module;
|
|
}
|
|
|
|
#include "RuntimeData.h"
|
|
|
|
namespace dev
|
|
{
|
|
namespace eth
|
|
{
|
|
namespace jit
|
|
{
|
|
class ExecBundle;
|
|
|
|
class ExecutionEngine
|
|
{
|
|
public:
|
|
ExecutionEngine() = default;
|
|
ExecutionEngine(ExecutionEngine const&) = delete;
|
|
void operator=(ExecutionEngine) = delete;
|
|
|
|
ReturnCode run(bytes const& _code, RuntimeData* _data, Env* _env);
|
|
ReturnCode run(std::unique_ptr<llvm::Module> module, RuntimeData* _data, Env* _env, bytes const& _code);
|
|
|
|
bytes returnData;
|
|
|
|
private:
|
|
ReturnCode run(ExecBundle const& _exec, RuntimeData* _data, Env* _env);
|
|
};
|
|
|
|
}
|
|
}
|
|
}
|
|
|