Paweł Bylica
9640644f72
Place warning pragmas for LLVM includes in separated files
10 years ago
Paweł Bylica
49893ce891
Add `unreachable` instruction to fake module generated by Cache
10 years ago
Lu Guanqun
699ab0045c
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
8fd2b949c1
Fix cache bug: code was always compiled
10 years ago
Paweł Bylica
83701a2fcd
Stats for execution states times
10 years ago
Paweł Bylica
3fe31f0b80
Create memory helper functions on demand
10 years ago
Paweł Bylica
f70b7f5fd2
Use code (and code size) as constants
10 years ago
Paweł Bylica
96c89cbedc
Move mul512 function to LLVM
10 years ago
Paweł Bylica
d58f35343b
Move mul function to LLVM
10 years ago
Paweł Bylica
d27352b8e1
Start of stats collector
10 years ago
Paweł Bylica
bb9df15d75
Generate BuildInfo header and display some information about evmjit library on demand
10 years ago
Paweł Bylica
970939ddb7
Fix after-merge problems
10 years ago
Paweł Bylica
625095473a
Remove dead jump table block
10 years ago
Paweł Bylica
c36cad8469
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
ae7919722a
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
f281e5ea26
Workaround for linker removing JIT callback functions
10 years ago
Paweł Bylica
3505e832ee
Some tweaks in gas counting
10 years ago
Paweł Bylica
73bf7087e7
Do not check memory requirements when size is 0
10 years ago
Paweł Bylica
3cbe1186cc
Pass gas counter to env_call as int64*
10 years ago
Paweł Bylica
494e96a89c
Pass gas counter to env_create as int64*
10 years ago
Paweł Bylica
407cae129f
Count gas using int64
10 years ago
Paweł Bylica
c633e62102
Gas counting changes: allow memory words counter not greater than gas max (int64 max)
10 years ago
Paweł Bylica
5610288626
Improve allocas order and namings
10 years ago
Paweł Bylica
27ca018c35
Add first instruction index to BasicBlock
10 years ago
Paweł Bylica
e8e9490b56
Disable RTTI for evmjit library
10 years ago
Paweł Bylica
bdba3104d6
Improve versioning
10 years ago
Paweł Bylica
c914c877e3
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
64532b6b0a
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
5e29eef349
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
1b449d357e
Fallback to interpreter VM in case of JIT requirements unmet
10 years ago
Paweł Bylica
ce7edb4575
Warning fix
10 years ago
Paweł Bylica
522d5b5bb0
Remove Windows testing code
10 years ago
Paweł Bylica
6507a8b014
Get some information from Git about build version
10 years ago
Paweł Bylica
0210ae382c
Fix memory index having type i256
10 years ago
Paweł Bylica
a8f649c3ac
uint128 implementation for Windows and fixes arithmetic functions
10 years ago
Paweł Bylica
237fdb9949
Install evmjit.dll (called RUNTIME) on Windows
10 years ago
Paweł Bylica
00415c95b7
Fix type mismatch for shift operator instruction
10 years ago
Paweł Bylica
0737cc778b
Fix memory index having type i256
10 years ago
Paweł Bylica
360b15e5f6
Windows fixes: DLL exports and cmake options
10 years ago
Paweł Bylica
3ec710bf49
Check if uint128 is enabled
10 years ago
Paweł Bylica
725c65b31f
Remove gmp dependency
10 years ago
Paweł Bylica
a0736c2468
New addmod algorithm
10 years ago
Paweł Bylica
6c2aa13e11
New mulmod algorithm
10 years ago
Paweł Bylica
b118e4d50a
New exp algorithm
10 years ago
Paweł Bylica
4217843714
New unsigned div algorithm
10 years ago
Paweł Bylica
ebaeffe00a
Reimplementation of sdiv. Delegates work to div.
10 years ago
Paweł Bylica
a42c72464d
Combine div & mod into one function
10 years ago
Paweł Bylica
1990dde405
Change JIT C interface. Create ExecutionEngine on heap to allow one-pass copy of return data.
10 years ago
Paweł Bylica
06048c51a6
Change JIT return codes, use negative values for errors
10 years ago
Paweł Bylica
0f294ec820
Reorder JIT runtime data fields
10 years ago