Paweł Bylica
2c44470e87
Removing unnecessary `dev` name prefixes
[#80021262 ]
10 years ago
Paweł Bylica
91770a2e4d
Eliminating some `using namespace`
[#80021262 ]
10 years ago
Paweł Bylica
e33be3bbdb
Change namespace from `evmcc` to `dev::eth::jit`
[#80021262 ]
10 years ago
Paweł Bylica
c019b0394a
Macros grouping PUSH, DUP and SWAP switch cases
10 years ago
Paweł Bylica
2909cac50e
Working longjmp solution
[#80660432 ]
10 years ago
artur-zawlocki
fc9b9f32c9
* codegen for CODECALL
* fixes for EXTCODECOPY
10 years ago
artur-zawlocki
8e93171d3d
Codegen for EXTCODESIZE & EXTCODECOPY
[Delivers #80644732 ]
10 years ago
Paweł Bylica
8498ab5695
Trying to implement "exceptions" with longjmp (does not work on Windows 64bit at least)
10 years ago
Paweł Bylica
471586cc82
Use longjmp to return OutOfGas code from main function (WIP)
[#80660432 ]
10 years ago
Paweł Bylica
31a07cb1b8
Change a bit the implementation of GAS instruction
[Delivers #79942174 ]
10 years ago
Paweł Bylica
01b95883f2
Count gas cost for SSTORE instruction
[#79942174 ]
10 years ago
artur-zawlocki
2e3e764fb5
Codegen for CODECOPY.
[Delivers #80644732 ]
10 years ago
Paweł Bylica
52d3a3beb0
Prealloc memory and count gas for CALL instruction
[#79942174 ]
10 years ago
Paweł Bylica
8267b453c7
Prealloc memory and count gas for SHA3 and CREATE instructions
[#79942174 ]
10 years ago
artur-zawlocki
2b383751b4
Fixes in CALLDATACOPY
[Delivers #80644732 ]
10 years ago
artur-zawlocki
d005896a0b
Initial implementation for CALLDATACOPY
[Delivers #80644732 ]
10 years ago
Paweł Bylica
2999de9f1a
Give back an amount of gas not used by CALL instructions
[#79942174 ]
10 years ago
Paweł Bylica
c5c76cdf99
Count gas for CALL instructions
[#79942174 ]
10 years ago
Paweł Bylica
05952064dc
Use Constant::get() interface to create LLVM constants
10 years ago
Paweł Bylica
f9f08d3223
Change the way compiled program returns
10 years ago
artur-zawlocki
2031240485
Implemented ADDMOD, MULMOD and GAS [Delivers #80566276 ]
10 years ago
artur-zawlocki
6eb64ddcda
Codegen for GAS
10 years ago
Paweł Bylica
b56a815d2c
Report error if static-analysed stack is too small
10 years ago
Paweł Bylica
3ec44144e5
Change basic block linking order to get better results (still not perfect)
10 years ago
artur-zawlocki
1afcca2d0b
Implemented indirect JUMPI and fixes for JUMPs to invalid PCs
10 years ago
Paweł Bylica
c0a7d82b21
Always commit cost blocks
[#79942174 ]
10 years ago
Paweł Bylica
48710b5e5c
Count gas for additional memory
[#79942174 ]
10 years ago
Paweł Bylica
35605271f1
Fix for finding jumpTableBlock
10 years ago
artur-zawlocki
40e73d035c
Indirect jump: jump table generated in separate bblock.
10 years ago
Paweł Bylica
936aeab43c
Group gas counting into block of instructions called cost-block.
[#79942174 ]
10 years ago
artur-zawlocki
e915379539
Implementing JUMP/JUMPDEST (work in progress)
10 years ago
Paweł Bylica
dd3ae798b4
Disable gas checking for now (does not work and makes IR code hard to read)
[#79942174 ]
10 years ago
Paweł Bylica
6c7de9fa0b
Cleanup LLVM types usage
10 years ago
Paweł Bylica
f8813b2843
Cleanup LLVM types usage
10 years ago
Paweł Bylica
989afa9406
Decrement global gas value by instruction step cost
[#79942174 ]
10 years ago
Paweł Bylica
5e3113e49e
Introducing GasMeter
10 years ago
Paweł Bylica
1a4cbdabef
EXP instruction.
[Delivers #79736422 ]
10 years ago
Paweł Bylica
0ec77d681c
Make the Stack an integral part of BasicBlock
10 years ago
Paweł Bylica
bec3e0fb36
Cleanup Compiler
10 years ago
Paweł Bylica
40ebe55a20
Provide end instruction to basic block
10 years ago
Paweł Bylica
0cba3d9005
Improve basic blocks linking implementation
10 years ago
Paweł Bylica
0e7ae8ece9
Remove external stack
10 years ago
Paweł Bylica
b644ff2d71
Stack cleanups
10 years ago
Paweł Bylica
bf7ca5cd01
Cleanups: move basic block linking to separated function
10 years ago
Paweł Bylica
d9c1617e60
Correct the order of basic blocks
10 years ago
Paweł Bylica
07659c441a
Link basic blocks with phi functions
[#80113672 ]
10 years ago
Paweł Bylica
5bf462e03d
Introducing BasicBlock class.
It is a wrapper for llvm::BasicBlock to provide additional information needed by EVM compiler. For now the order of basic blocks might not match bytecode.
[#80113672 ]
10 years ago
Paweł Bylica
3fa3bc8b30
Pop entry state of basic block from external stack, push exit state to external stack.
[Delivers #80113346 ]
10 years ago
Paweł Bylica
1bd7ade08b
Basic stack implementation for basic block. Values on stack are not preserved between basic blocks (jumps)
10 years ago
Paweł Bylica
fe38de867e
SHA3 instruction
[Delivers #79534494 ]
10 years ago