Paweł Bylica
8fc404f2bb
Style changes.
10 years ago
Paweł Bylica
299fc12a58
Resolve jumps after code compilation.
10 years ago
Paweł Bylica
93f6e0abe7
Link consecutive basic blocks after all blocks are compiled.
10 years ago
Paweł Bylica
403b4c0399
Remove helper function for getting an item from global stack.
10 years ago
Paweł Bylica
cf681e379c
Update min local stack size correctly.
10 years ago
Paweł Bylica
5507cc870a
Check also stack underflow in evm.stack.require() function.
10 years ago
Paweł Bylica
864a3540a4
Clean up LazyFunction initialization in Array helper.
10 years ago
Paweł Bylica
94b3c55c7f
Remove explicit move constructor of BasicBlock.
10 years ago
Paweł Bylica
c8846eb01a
Do not modify pops counter of LocalStack during finalization.
That fixes LocalStack::size() returning incorrect values after LocalStack::finalize() has been called.
10 years ago
Gav Wood
ae0205796c
JITEVM fixes.
10 years ago
Gav Wood
9f756124b0
First draft at splitting State.
Continuation of State split.
libethereum building again.
Compile fixes galore.
Remove a lot of code redundancy.
mix using new state/block classes
10 years ago
Paweł Bylica
2565fe1fa7
Fix EVM JIT stack limit checking.
Tests inlcuded.
10 years ago
Paweł Bylica
6e75177190
Fix MSVC problems with decltype()
10 years ago
Paweł Bylica
b8e969093e
Reimplement InsertPointGuard to avoid LLVM ABI incompatibility.
In general, the NDEBUG flag should match cpp-ethereum and LLVM builds. But this is hard to satisfy as we usually have one system-wide build of LLVM and different builds of cpp-ethereum. This ABI incompatibility hit OSX only in release builds as LLVM is built by homebrew with assertions by default.
10 years ago
Paweł Bylica
1d4eeb3a66
Fix evmjit Windows exports.
10 years ago
Paweł Bylica
215ea7dde5
Remove vector of basic blocks from Compiler.
10 years ago
Paweł Bylica
6123352295
Replace map of basic blocks with vector.
10 years ago
Paweł Bylica
b44d4846f5
Use llvm::SwitchInstr as a jump dest map.
10 years ago
Paweł Bylica
4a68a237b0
Rename private members of LocalStack.
10 years ago
Paweł Bylica
1de60c02e6
Add test for global stack underflow.
10 years ago
Paweł Bylica
406e13dadf
Use LLVM metadata for keeping information about jump target index.
10 years ago
Paweł Bylica
f76d634769
Change the way Jump Table is created and filled.
10 years ago
Paweł Bylica
f4b79cfee7
Do not remove dead blocks during compilation.
10 years ago
Paweł Bylica
7d1e35076f
Fix local stack max size calculation.
10 years ago
Paweł Bylica
3ffdcd9f13
Test dynamic jumps.
10 years ago
Paweł Bylica
1e926fe6bc
Move fields from BasicBlock to LocalStack. Remove dump() functions.
10 years ago
Paweł Bylica
fcacf6e3a2
Remove code doing stack optimization with PHI nodes.
10 years ago
Paweł Bylica
b604dfefe6
Reimplementation of local stack handling during basic block compilation.
This change removed the intermediate stage when PHI nodes are inserted in place of items fetched from global stack. PHi stage requires information about other basic block therefore must be postponed to the point when all basic blocks has been compiled. In the same time this optimization has not been very effective.
10 years ago
Paweł Bylica
c80ded8f97
Move LocalStack out of BasicBlock.
10 years ago
Paweł Bylica
947b9e9664
Replace "bad jump" exit with "abort" exit.
10 years ago
Paweł Bylica
e1634a9dcb
Clean up evmjit cmake files. Assign compiler flags to target.
10 years ago
Paweł Bylica
a9024e5e90
Set EVM JIT version in cmake script.
10 years ago
Gav Wood
e14d000bea
All fields of BlockInfo now private.
10 years ago
Gav Wood
f693ac0cc4
All fields of BlockInfo now private.
10 years ago
Gav Wood
ff2f952184
All fields of BlockInfo now private.
10 years ago
Gav Wood
1e6bf809b4
All fields of BlockInfo now private.
10 years ago
Gav Wood
5ee3e8e5fc
All fields of BlockInfo now private.
10 years ago
arkpar
e7f34beb45
fixed eth_copy_dlls
reverted libsecp256k1 changes
10 years ago
arkpar
63ef6a74f9
reverted libsecp256k1 changes
10 years ago
arkpar
016ce6964f
copy evmjit dll to output on windows
10 years ago
Gav Wood
487349bf09
All fields of BlockInfo now private.
10 years ago
Paweł Bylica
4039227faa
Extend JIT interface to allow only compilation of EVM code.
Make code availability checking thread-safe.
10 years ago
Paweł Bylica
d036c6dc16
Separate compile and execute jobs in JIT.
10 years ago
Paweł Bylica
9d59ebb645
Cleanups.
10 years ago
Paweł Bylica
b4ee363394
Cleanups.
10 years ago
Paweł Bylica
ffc416e97e
Another LLVM bug workaround.
10 years ago
Paweł Bylica
02c2829677
Better BYTE fix.
10 years ago
Paweł Bylica
6d7350f3ed
Fix for incorrect BYTE instruction results.
It is actually a LLVM bug workaround.
10 years ago
Paweł Bylica
773c2303d8
Do not compute code hash twice in VM test engine.
10 years ago
Paweł Bylica
b2345b982b
Cleanup issues reported by clang.
10 years ago