diff --git a/libevmjit-cpp/Env.cpp b/libevmjit-cpp/Env.cpp index 487e8c884..91f414554 100644 --- a/libevmjit-cpp/Env.cpp +++ b/libevmjit-cpp/Env.cpp @@ -18,14 +18,14 @@ extern "C" using jit::i256; using jit::eth2llvm; - EXPORT void ext_store(ExtVMFace* _env, i256* _index, i256* o_value) + EXPORT void env_sload(ExtVMFace* _env, i256* _index, i256* o_value) { auto index = llvm2eth(*_index); auto value = _env->store(index); // Interface uses native endianness *o_value = eth2llvm(value); } - EXPORT void ext_setStore(ExtVMFace* _env, i256* _index, i256* _value) + EXPORT void env_sstore(ExtVMFace* _env, i256* _index, i256* _value) { auto index = llvm2eth(*_index); auto value = llvm2eth(*_value); @@ -104,7 +104,7 @@ extern "C" o_ret->a = ret ? 1 : 0; } - EXPORT void ext_sha3(byte* _begin, uint64_t _size, h256* o_hash) + EXPORT void env_sha3(byte* _begin, uint64_t _size, h256* o_hash) { auto hash = sha3({_begin, _size}); *o_hash = hash; diff --git a/libevmjit-cpp/VM.cpp b/libevmjit-cpp/VM.cpp index e49607b3f..7ac51097d 100644 --- a/libevmjit-cpp/VM.cpp +++ b/libevmjit-cpp/VM.cpp @@ -70,6 +70,6 @@ bytesConstRef VM::go(ExtVMFace& _ext, OnOpFunc const&, uint64_t) namespace { // MSVS linker ignores export symbols in Env.cpp if nothing point at least one of them - extern "C" void ext_store(); - void linkerWorkaround() { ext_store(); } + extern "C" void env_sload(); + void linkerWorkaround() { env_sload(); } } diff --git a/libevmjit/Compiler.cpp b/libevmjit/Compiler.cpp index 962bbf333..8c9113fde 100644 --- a/libevmjit/Compiler.cpp +++ b/libevmjit/Compiler.cpp @@ -577,7 +577,7 @@ void Compiler::compileBasicBlock(BasicBlock& _basicBlock, bytes const& _bytecode case Instruction::SLOAD: { auto index = stack.pop(); - auto value = _ext.store(index); + auto value = _ext.sload(index); stack.push(value); break; } @@ -587,7 +587,7 @@ void Compiler::compileBasicBlock(BasicBlock& _basicBlock, bytes const& _bytecode auto index = stack.pop(); auto value = stack.pop(); _gasMeter.countSStore(_ext, index, value); - _ext.setStore(index, value); + _ext.sstore(index, value); break; } diff --git a/libevmjit/Ext.cpp b/libevmjit/Ext.cpp index 2d1fd2fbd..4edaf91e3 100644 --- a/libevmjit/Ext.cpp +++ b/libevmjit/Ext.cpp @@ -43,8 +43,8 @@ Ext::Ext(RuntimeManager& _runtimeManager, Memory& _memoryMan): llvm::Type* argsTypes[] = {Type::EnvPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr, Type::WordPtr}; - m_store = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "ext_store", module); - m_setStore = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "ext_setStore", module); + m_sload = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "env_sload", module); + m_sstore = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "env_sstore", module); m_calldataload = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "ext_calldataload", module); m_balance = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 3}, false), Linkage::ExternalLinkage, "ext_balance", module); m_suicide = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 2}, false), Linkage::ExternalLinkage, "ext_suicide", module); @@ -60,21 +60,21 @@ Ext::Ext(RuntimeManager& _runtimeManager, Memory& _memoryMan): m_log4 = llvm::Function::Create(llvm::FunctionType::get(Type::Void, {argsTypes, 7}, false), Linkage::ExternalLinkage, "ext_log4", module); llvm::Type* sha3ArgsTypes[] = {Type::BytePtr, Type::Size, Type::WordPtr}; - m_sha3 = llvm::Function::Create(llvm::FunctionType::get(Type::Void, sha3ArgsTypes, false), Linkage::ExternalLinkage, "ext_sha3", module); + m_sha3 = llvm::Function::Create(llvm::FunctionType::get(Type::Void, sha3ArgsTypes, false), Linkage::ExternalLinkage, "env_sha3", module); } -llvm::Value* Ext::store(llvm::Value* _index) +llvm::Value* Ext::sload(llvm::Value* _index) { m_builder.CreateStore(_index, m_args[0]); - m_builder.CreateCall3(m_store, getRuntimeManager().getEnv(), m_args[0], m_args[1]); // Uses native endianness + m_builder.CreateCall3(m_sload, getRuntimeManager().getEnv(), m_args[0], m_args[1]); // Uses native endianness return m_builder.CreateLoad(m_args[1]); } -void Ext::setStore(llvm::Value* _index, llvm::Value* _value) +void Ext::sstore(llvm::Value* _index, llvm::Value* _value) { m_builder.CreateStore(_index, m_args[0]); m_builder.CreateStore(_value, m_args[1]); - m_builder.CreateCall3(m_setStore, getRuntimeManager().getEnv(), m_args[0], m_args[1]); // Uses native endianness + m_builder.CreateCall3(m_sstore, getRuntimeManager().getEnv(), m_args[0], m_args[1]); // Uses native endianness } llvm::Value* Ext::calldataload(llvm::Value* _index) diff --git a/libevmjit/Ext.h b/libevmjit/Ext.h index 3279dd960..fc1930c34 100644 --- a/libevmjit/Ext.h +++ b/libevmjit/Ext.h @@ -17,8 +17,8 @@ class Ext : public RuntimeHelper public: Ext(RuntimeManager& _runtimeManager, Memory& _memoryMan); - llvm::Value* store(llvm::Value* _index); - void setStore(llvm::Value* _index, llvm::Value* _value); + llvm::Value* sload(llvm::Value* _index); + void sstore(llvm::Value* _index, llvm::Value* _value); llvm::Value* balance(llvm::Value* _address); void suicide(llvm::Value* _address); @@ -44,8 +44,8 @@ private: llvm::Value* m_arg7; llvm::Value* m_arg8; llvm::Value* m_data = nullptr; - llvm::Function* m_store; - llvm::Function* m_setStore; + llvm::Function* m_sload; + llvm::Function* m_sstore; llvm::Function* m_calldataload; llvm::Function* m_balance; llvm::Function* m_suicide; diff --git a/libevmjit/GasMeter.cpp b/libevmjit/GasMeter.cpp index 20b3a8eec..96bffc250 100644 --- a/libevmjit/GasMeter.cpp +++ b/libevmjit/GasMeter.cpp @@ -148,7 +148,7 @@ void GasMeter::countSStore(Ext& _ext, llvm::Value* _index, llvm::Value* _newValu { assert(!m_checkCall); // Everything should've been commited before - auto oldValue = _ext.store(_index); + auto oldValue = _ext.sload(_index); auto oldValueIsZero = m_builder.CreateICmpEQ(oldValue, Constant::get(0), "oldValueIsZero"); auto newValueIsZero = m_builder.CreateICmpEQ(_newValue, Constant::get(0), "newValueIsZero"); auto oldValueIsntZero = m_builder.CreateICmpNE(oldValue, Constant::get(0), "oldValueIsntZero");