Paweł Bylica
0ec77d681c
Make the Stack an integral part of BasicBlock
10 years ago
Paweł Bylica
66123e8b35
JUMP test in assembly
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
Paweł Bylica
1835251b52
SUICIDE instruction
[Delivers #79510898 ]
10 years ago
Paweł Bylica
a33863d931
CALL instruction. Still needs gas counting and callback support.
[Delivers #79510898 ]
10 years ago
Paweł Bylica
cdebe9f9f7
CREATE instruction. Still needs some work with ExtVM interface.
[#79510898 ]
10 years ago
artur-zawlocki
f34340d4c1
- fixes for RETURN and STOP
- codegen for SLT, SGT, EQ and NEG
10 years ago
Paweł Bylica
09341eaf84
Stack functions simplified
10 years ago
Paweł Bylica
24a99ef798
Runtime class that inits and keeps stack, memory and ExtVM interface
10 years ago
Paweł Bylica
b39692ba72
BYTE instruction implementation (with bug on BYTE 0)
10 years ago
Paweł Bylica
b92c8a6c10
TODO: implement BYTE
10 years ago
Paweł Bylica
7c46d7946c
Bitwise operators: AND, OR, XOR
10 years ago
Paweł Bylica
397763be63
PC instructions
10 years ago
Paweł Bylica
9479a70b00
Block Information instructions: PREVHASH, COINBASE, TIMESTAMP, NUMBER, DIFFICULTY, GASLIMIT
10 years ago
artur-zawlocki
8df1050fcb
- implemented LT, GT
- new tests for jumps and comparisons
10 years ago
Paweł Bylica
e5ff13180c
BALANCE
10 years ago
artur-zawlocki
01cc09a279
fixed implementation of NOT
10 years ago
artur-zawlocki
d843ec660a
fixes for JUMP/JUMPI (generating final basic block)
implementation of NOT
10 years ago
artur-zawlocki
0d283dfa7c
fixed implementation of JUMPI (cond casted to bool)
10 years ago
artur-zawlocki
d11127c94d
Added Module* constructor argument to Memory and Ext.
10 years ago
artur-zawlocki
ca49fe4897
initial implementation of JUMP/JUMPI (untested)
10 years ago
Paweł Bylica
f6759913e4
Print returned memory to standard output
10 years ago
Paweł Bylica
f41550077a
Implementing RETURN and STOP instructions
10 years ago
artur-zawlocki
65908ab5e8
fixed bug in memory handling
10 years ago
artur-zawlocki
638bb9390c
Implemented MLOAD, MSTORE, MSTORE8 and MSIZE
10 years ago
Paweł Bylica
9ee462570b
Push call data on stack - CALLDATALOAD
10 years ago
Paweł Bylica
696f6ae62e
Accessing Ext static data: CALLER, ORIGIN, CALLVALUE, CALLDATASIZE, GASPRICE
10 years ago
Paweł Bylica
10e5182860
Send Ext static data to running contract. ADDRESS instruction
10 years ago
Paweł Bylica
bd3cd40e96
Improve stack binary interface
10 years ago
Paweł Bylica
362acacfa2
Set/get values in Ext store - SSTORE & SLOAD
10 years ago
artur-zawlocki
afb0de7f02
added ethcore to libs required by evmcc
10 years ago
artur-zawlocki
8a63213b6b
initial implementation of memory
10 years ago
Paweł Bylica
6eab61a1ae
Starting ExtVM binary interface
10 years ago
Paweł Bylica
72bb2d3e0c
Fix stack set/get bad function signature
10 years ago
Paweł Bylica
4ec1ebc82c
Basic arithmetic, limited precision for MUL, DIV and MOD.
10 years ago
Paweł Bylica
2eabdb0ced
SWAP* instructions
10 years ago
Paweł Bylica
646f954ac6
POP and DUP* instructions
10 years ago
Paweł Bylica
a9bdd81d49
PUSH instruction implementation
10 years ago
Paweł Bylica
9051a2198a
Output compilation (option -c) result to standard output by default
10 years ago