xermicus
357bf58868
allow dynamic configuration of the heap memory ( #287 )
...
This PR changes the implementation of the emulated EVM heap memory:
Instead of linking in a C implementation the code is emitted directly
into the contract module. Which allows making it configurable via a
compiler parameter (a follow up PR to this).
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-23 20:25:55 +02:00
xermicus
5003f3e9ac
llvm-context: alloca at the function entry if possible ( #283 )
...
Closes #48
Change the code size test to no longer emit debug info as to get a more
accurate picture.
---------
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2025-04-15 15:22:24 +02:00
xermicus
cb268850a9
llvm-context: remove the linear memory pointer indirection ( #211 )
2025-02-13 13:21:43 +01:00
Cyrill Leutwiler
909de515c4
Allow arbitrary call data size ( #135 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-12-18 14:04:46 +01:00
Cyrill Leutwiler
423a494621
Switch target to 64bit and enable the zbb feature ( #120 )
2024-11-29 15:56:10 +01:00
Cyrill Leutwiler
82ae22c163
tidy up the runtime API crate ( #85 )
...
- remove unused runtime API imports and constants
- move runtime api symbols into the revive-runtime-api crate
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-10-17 10:55:27 +02:00
Cyrill Leutwiler
f0f344a139
disable sbrk and emulate EVM linear memory internally ( #76 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-14 15:20:00 +02:00
Ermal Kaleci
d9842b5427
Fix implementation for balance_of ( #79 )
...
The balance_of syscall is now available in pallet-revive.
- Fix balance_of implementation to use correct runtime api
- Add build_address_argument_store helper to be used for address arguments
2024-10-12 12:35:10 +02:00
Cyrill Leutwiler
d5d419cefc
implement immutable variables codegen ( #70 )
2024-10-10 13:33:00 +02:00
xermicus
b344e0cff5
Revert "implement immutable variables codegen"
...
This reverts commit 0e6a6d12c3 .
2024-10-09 03:43:05 +02:00
xermicus
0e6a6d12c3
implement immutable variables codegen
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-10-09 03:37:56 +02:00
Cyrill Leutwiler
6585973e99
Updated call semantics ( #56 )
...
- Update pallet-revive dependency
- Implement calls according to pallet-revive call semantics
- Switch to the new return data API in pallet revive and get rid of return data buffer
- Remove a bunch of resulting dead code
2024-09-28 20:03:03 +02:00
Cyrill Leutwiler
287272b789
sync runtime with the pallet ( #54 )
2024-09-24 09:14:36 +02:00
xermicus
9e73c48150
remove the extra abi data
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-09-05 18:10:24 +02:00
Cyrill Leutwiler
d2f76b645f
switch to pallet_revive runtime ( #40 )
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-09-03 17:18:22 +02:00
xermicus
b002382d76
llvm build script: build compiler-rt for 64bit
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-07-19 00:06:53 +02:00
xermicus
6834751522
support riscv64 target
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-07-09 17:57:58 +02:00
Cyrill Leutwiler
5ff17da695
Implement balance ( #20 )
2024-06-03 12:21:49 +02:00
Cyrill Leutwiler
1ba806be1f
Contract calls ( #19 )
2024-06-01 20:48:20 +02:00
xermicus
5138fe3d06
implement EXTCODESIZE
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-22 22:56:03 +02:00
Cyrill Leutwiler
06aa289d9b
Constructors and contract creation ( #11 )
...
Implement constructor logic and support create/create2 in the mock runtime
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-22 21:35:32 +02:00
xermicus
83bf9d6041
events
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-14 09:46:18 +02:00
xermicus
02055c73bb
extend mock runtime to allow executing constructors and cross contract calls
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-13 13:50:35 +02:00
Cyrill Leutwiler
864e40901f
implement address and msg.sender
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2024-05-08 16:10:48 +02:00
xermicus
95ff85c6d1
implement block.number and block.timestamp
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-07 18:03:17 +02:00
xermicus
c0dd845b39
s/field/word
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-07 13:37:17 +02:00
xermicus
518c03d045
internalize runtime API function symbols
...
Signed-off-by: xermicus <cyrill@parity.io >
2024-05-06 13:45:58 +02:00