Paweł Bylica
cbc1c99beb
Add `unreachable` instruction to fake module generated by Cache
10 years ago
Lu Guanqun
c0358e1f5f
fix Mac build error for evmjit
We need to include <iostream>, otherwise it complains:
cpp-ethereum/evmjit/libevmjit/ExecutionEngine.cpp:147:2:
error: implicit instantiation of undefined template
'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
clog(JIT) << " + " << std::chrono::duration_cast<std::chrono::milliseconds>(executionEndTime - executionStartTime).cou...
^
cpp-ethereum/evmjit/libevmjit/Utils.h:15:23: note:
expanded from macro 'clog' #define clog(CHANNEL) std::ostream(nullptr)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:111:33: note:
template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_ostream;
^
10 years ago
Paweł Bylica
ddf4724ce1
Fix cache bug: code was always compiled
10 years ago
Paweł Bylica
f203843114
Stats for execution states times
10 years ago
Paweł Bylica
4c58e6ffa5
Create memory helper functions on demand
10 years ago
Paweł Bylica
99b7607ae2
Use code (and code size) as constants
10 years ago
Paweł Bylica
553c47ebcf
Move mul512 function to LLVM
10 years ago
Paweł Bylica
b22f672f0b
Move mul function to LLVM
10 years ago
Paweł Bylica
82972e47df
Start of stats collector
10 years ago
Paweł Bylica
b448dba6b9
Remove dead jump table block
10 years ago
Paweł Bylica
62587cfd73
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
7cbb44faa1
Some tweaks in gas counting
10 years ago
Paweł Bylica
4c8ae3e707
Do not check memory requirements when size is 0
10 years ago
Paweł Bylica
ee036d3c97
Pass gas counter to env_call as int64*
10 years ago
Paweł Bylica
ce86427871
Pass gas counter to env_create as int64*
10 years ago
Paweł Bylica
b474924783
Count gas using int64
10 years ago
Paweł Bylica
3290856061
Gas counting changes: allow memory words counter not greater than gas max (int64 max)
10 years ago
Paweł Bylica
019aa6dd63
Improve allocas order and namings
10 years ago
Paweł Bylica
01dffe28f3
Add first instruction index to BasicBlock
10 years ago
Paweł Bylica
b999cc28c4
Add code hash to RuntimeData. JIT is using it as an code identifier (do not need to invent any internal hashing)
10 years ago
Paweł Bylica
c49f78ca4f
Environment options for EVM JIT updated:
- EVMJIT_CACHE=0 disables disk cache, default 1
- EVMJIT_DUMP=1 dumps LLVM module to error output, default 0
10 years ago
Paweł Bylica
932ce6650c
Replacing code references (usually vector<byte>&) with code_iterator pair. Code is now extracted from RuntimeData what removes copy in C interface.
10 years ago
Paweł Bylica
de649202a0
Fallback to interpreter VM in case of JIT requirements unmet
10 years ago
Paweł Bylica
d7f521298b
Remove Windows testing code
10 years ago
Paweł Bylica
6aec918347
Get some information from Git about build version
10 years ago
Paweł Bylica
85658f8326
Fix memory index having type i256
10 years ago
Paweł Bylica
96980ef0dd
uint128 implementation for Windows and fixes arithmetic functions
10 years ago
Paweł Bylica
3dd49fbede
Install evmjit.dll (called RUNTIME) on Windows
10 years ago
Paweł Bylica
a00f26b02a
Fix type mismatch for shift operator instruction
10 years ago
Paweł Bylica
ac0181a76e
Fix memory index having type i256
10 years ago
Paweł Bylica
064c129afc
Windows fixes: DLL exports and cmake options
10 years ago
Paweł Bylica
97560b7748
Check if uint128 is enabled
10 years ago
Paweł Bylica
e15906f93e
Remove gmp dependency
10 years ago
Paweł Bylica
259a06e72b
New addmod algorithm
10 years ago
Paweł Bylica
2f2b101592
New mulmod algorithm
10 years ago
Paweł Bylica
2865ce9621
New exp algorithm
10 years ago
Paweł Bylica
fe1a466b3e
New unsigned div algorithm
10 years ago
Paweł Bylica
871487c4de
Reimplementation of sdiv. Delegates work to div.
10 years ago
Paweł Bylica
d648dc7cfe
Combine div & mod into one function
10 years ago
Paweł Bylica
8b45198bc5
Reorder JIT runtime data fields
10 years ago
Paweł Bylica
737232b24b
Flatten JIT RuntimeData
10 years ago
Paweł Bylica
2216c73b66
Keep timestamp and block number as uint64 types
10 years ago
Paweł Bylica
8c10cf4995
Pass return data pointer using callData field
10 years ago
Paweł Bylica
bc0a91602f
Do not accept contract code with gas greater than 2^63. Keep gas counter in int64 type.
10 years ago
Paweł Bylica
9b14522b11
Use uint64 type for call data size
10 years ago
Paweł Bylica
0cad9bb29d
Use uint64 type for code size
10 years ago
Paweł Bylica
8e502907ec
LLVM lshr bug workaround
10 years ago
Paweł Bylica
008bd38d6a
LLVM lshr bug workaround
10 years ago
Paweł Bylica
0d32f766eb
Removing boost dependency from libevmjit
10 years ago
Paweł Bylica
bf9dbce468
Removing boost dependency from libevmjit
10 years ago