|
@ -12,7 +12,7 @@ namespace |
|
|
class JITImpl: JIT |
|
|
class JITImpl: JIT |
|
|
{ |
|
|
{ |
|
|
public: |
|
|
public: |
|
|
std::unordered_map<h256, void*> codeMap; |
|
|
std::unordered_map<h256, uint64_t> codeMap; |
|
|
|
|
|
|
|
|
static JITImpl& instance() |
|
|
static JITImpl& instance() |
|
|
{ |
|
|
{ |
|
@ -28,16 +28,16 @@ bool JIT::isCodeReady(h256 _codeHash) |
|
|
return JITImpl::instance().codeMap.count(_codeHash) != 0; |
|
|
return JITImpl::instance().codeMap.count(_codeHash) != 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void* JIT::getCode(h256 _codeHash) |
|
|
uint64_t JIT::getCode(h256 _codeHash) |
|
|
{ |
|
|
{ |
|
|
auto& codeMap = JITImpl::instance().codeMap; |
|
|
auto& codeMap = JITImpl::instance().codeMap; |
|
|
auto it = codeMap.find(_codeHash); |
|
|
auto it = codeMap.find(_codeHash); |
|
|
if (it != codeMap.end()) |
|
|
if (it != codeMap.end()) |
|
|
return it->second; |
|
|
return it->second; |
|
|
return nullptr; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void JIT::mapCode(h256 _codeHash, void* _funcAddr) |
|
|
void JIT::mapCode(h256 _codeHash, uint64_t _funcAddr) |
|
|
{ |
|
|
{ |
|
|
JITImpl::instance().codeMap.insert(std::make_pair(_codeHash, _funcAddr)); |
|
|
JITImpl::instance().codeMap.insert(std::make_pair(_codeHash, _funcAddr)); |
|
|
} |
|
|
} |
|
|