Paweł Bylica
00e5afc1a5
Change a bit the implementation of GAS instruction
[Delivers #79942174 ]
10 years ago
Paweł Bylica
0d679f0c73
Count gas cost for SSTORE instruction
[#79942174 ]
10 years ago
artur-zawlocki
df932921dc
Codegen for CODECOPY.
[Delivers #80644732 ]
10 years ago
Paweł Bylica
1c70f3d099
Prealloc memory and count gas for CALL instruction
[#79942174 ]
10 years ago
Paweł Bylica
7d674765a4
Prealloc memory and count gas for SHA3 and CREATE instructions
[#79942174 ]
10 years ago
artur-zawlocki
42b14ae334
Fixes in CALLDATACOPY
[Delivers #80644732 ]
10 years ago
artur-zawlocki
0d9740514a
Initial implementation for CALLDATACOPY
[Delivers #80644732 ]
10 years ago
Paweł Bylica
01ca987093
Give back an amount of gas not used by CALL instructions
[#79942174 ]
10 years ago
Paweł Bylica
fb87a0b2ab
Count gas for CALL instructions
[#79942174 ]
10 years ago
Paweł Bylica
7494fdba7a
Use Constant::get() interface to create LLVM constants
10 years ago
Paweł Bylica
7a89751433
Change the way compiled program returns
10 years ago
artur-zawlocki
6caff31697
Implemented ADDMOD, MULMOD and GAS [Delivers #80566276 ]
10 years ago
artur-zawlocki
9b3c446578
Codegen for GAS
10 years ago
Paweł Bylica
3a2596960b
Report error if static-analysed stack is too small
10 years ago
Paweł Bylica
9bdfd59b6f
Change basic block linking order to get better results (still not perfect)
10 years ago
artur-zawlocki
6e2bcefaca
Implemented indirect JUMPI and fixes for JUMPs to invalid PCs
10 years ago
Paweł Bylica
d5f7de4a2e
Always commit cost blocks
[#79942174 ]
10 years ago
Paweł Bylica
5470faf9ec
Count gas for additional memory
[#79942174 ]
10 years ago
Paweł Bylica
7a7d4e33e0
Fix for finding jumpTableBlock
10 years ago
artur-zawlocki
fd7069e9af
Indirect jump: jump table generated in separate bblock.
10 years ago
Paweł Bylica
cfb226ba5f
Group gas counting into block of instructions called cost-block.
[#79942174 ]
10 years ago
artur-zawlocki
2b36803c96
Implementing JUMP/JUMPDEST (work in progress)
10 years ago
Paweł Bylica
e42217d5bc
Disable gas checking for now (does not work and makes IR code hard to read)
[#79942174 ]
10 years ago
Paweł Bylica
97644d660a
Cleanup LLVM types usage
10 years ago
Paweł Bylica
b7f31afb7a
Cleanup LLVM types usage
10 years ago
Paweł Bylica
28d6dd7930
Decrement global gas value by instruction step cost
[#79942174 ]
10 years ago
Paweł Bylica
d3f59f6de4
Introducing GasMeter
10 years ago
Paweł Bylica
7f8848744d
EXP instruction.
[Delivers #79736422 ]
10 years ago
Paweł Bylica
dafa5bc890
Make the Stack an integral part of BasicBlock
10 years ago
Paweł Bylica
bb1954089c
Cleanup Compiler
10 years ago
Paweł Bylica
b273b863b1
Provide end instruction to basic block
10 years ago
Paweł Bylica
16ea3bf543
Improve basic blocks linking implementation
10 years ago
Paweł Bylica
7a3f3f9079
Remove external stack
10 years ago
Paweł Bylica
1cbb9d57aa
Stack cleanups
10 years ago
Paweł Bylica
a338b88588
Cleanups: move basic block linking to separated function
10 years ago
Paweł Bylica
577438e243
Correct the order of basic blocks
10 years ago
Paweł Bylica
e52d421955
Link basic blocks with phi functions
[#80113672 ]
10 years ago
Paweł Bylica
0961908efa
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
cc51bfded6
Pop entry state of basic block from external stack, push exit state to external stack.
[Delivers #80113346 ]
10 years ago
Paweł Bylica
33e36ce6cc
Basic stack implementation for basic block. Values on stack are not preserved between basic blocks (jumps)
10 years ago
Paweł Bylica
3cba3a2dca
SHA3 instruction
[Delivers #79534494 ]
10 years ago
Paweł Bylica
f230c8259b
SUICIDE instruction
[Delivers #79510898 ]
10 years ago
Paweł Bylica
3f5785829e
CALL instruction. Still needs gas counting and callback support.
[Delivers #79510898 ]
10 years ago
Paweł Bylica
3942b2ed28
CREATE instruction. Still needs some work with ExtVM interface.
[#79510898 ]
10 years ago
artur-zawlocki
f075b7b227
- fixes for RETURN and STOP
- codegen for SLT, SGT, EQ and NEG
10 years ago
Paweł Bylica
7bee86aa4b
Runtime class that inits and keeps stack, memory and ExtVM interface
10 years ago
Paweł Bylica
320add062e
BYTE instruction implementation (with bug on BYTE 0)
10 years ago
Paweł Bylica
710b734236
TODO: implement BYTE
10 years ago
Paweł Bylica
48897f42c8
Bitwise operators: AND, OR, XOR
10 years ago
Paweł Bylica
c002d9b843
PC instructions
10 years ago