Commit Graph

281 Commits

Author SHA1 Message Date
Daniel Kirchner
35c2eeab68 Restrict to only popping, but not reusing argument slots, as well as only freeing up until the return slots are allocated. 2021-04-06 13:38:06 +02:00
Daniel Kirchner
4b0f8383a6 Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform. 2021-04-06 13:38:05 +02:00
anurag4u80
bbcdddeed9 Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
hrkrshnn
6d9e9e1b1e Fix small bug in GasMeter calculation in creation context
Old calculation did not ignore `optimize-runs` parameter, when creation code gas computations were
done. This would lead to expanding values such as `shl(180, 1)` inside constructor code, even for
the default value for `--optimize-runs`, i.e., 200.
2021-03-17 12:33:10 +01:00
Daniel Kirchner
a75424eec4 Drop support for evm15 and eip-615. 2021-03-09 15:56:03 +01:00
Mathias Baumann
e4f1257c83 Yul Backend: Get rid of heuristics for finding the matching runtime 2021-02-09 14:50:25 +01:00
Alexander Arlt
87e3fbee6c [ewasm] Polyfill: balance & address. 2021-01-19 13:03:40 -05:00
Alexander Arlt
321e971eb3 [ewasm] Add support for hera debugging module. 2021-01-18 20:06:12 -05:00
Alex Beregszaszi
0425936c8a Rename AsmScope* to Scope* 2020-12-18 11:55:17 +00:00
Alex Beregszaszi
9230faf9a3 Simplify StackTooDeepError in Yul 2020-12-16 20:35:11 +00:00
Alex Beregszaszi
3a687c34e4 Add reservedIdentifier to dialect 2020-12-10 17:10:38 +01:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
329b8f2a60 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 13:04:14 +01:00
Daniel Kirchner
96a50b52e2 Add storage load/store functions to Yul dialect. 2020-12-03 19:10:05 +01:00
chriseth
9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
chriseth
e10712c173
Merge pull request #10454 from ethereum/ewasm-cleanup
[ewasm] Clean up some builtins and fix text representation of `select`
2020-12-01 17:34:48 +01:00
chriseth
8279d90ba2
Merge pull request #10403 from ethereum/rename-asmdata
Rename AsmData* to AST*
2020-12-01 14:33:11 +01:00
Alex Beregszaszi
04cf4867fe [ewasm] Clean up opcodes/builtins in the binary encoder
Also make sure that `i32.drop/i64.drop` won't silently drop its arguments, as they may have side-effects.
2020-12-01 12:50:54 +00:00
Alex Beregszaszi
a29a7ad680 [ewasm] Properly encode i32/i64.select in the text format 2020-12-01 11:22:38 +00:00
chriseth
6de7eaba95 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-01 10:50:13 +01:00
Alex Beregszaszi
a7ee1355bd [ewasm] Use select instruction where appropriate 2020-11-30 12:10:32 +00:00
Alex Beregszaszi
9640cfd77e [ewasm] Add i32.select/i64.select 2020-11-30 11:58:33 +00:00
Alex Beregszaszi
06af2fb38a [ewasm] Change eq() in polyfill to branch-less version 2020-11-27 22:47:55 +00:00
Alex Beregszaszi
a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
chriseth
a0a02f2307 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-23 19:28:08 +01:00
Alex Beregszaszi
f76ac0a753 [wasm] Document what StringLiteral is 2020-11-20 21:16:56 +00:00
Alexander Arlt
9d6296eca4 [ewasm] Polyfill: calldataload & calldatacopy. 2020-11-20 13:46:04 -05:00
chriseth
a7db4fa4a5 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-18 20:05:02 +01:00
Alexander Arlt
c0d28492c3 [ewasm] Polyfill: Rename endian_swap -> bswap. 2020-11-17 21:30:06 -05:00
Alexander Arlt
19f764bf65 Split ewasm polyfill functions into different files. 2020-11-17 19:27:44 -05:00
chriseth
0a31a6bc36
Merge pull request #10258 from ethereum/develop
Merge develop into breaking.
2020-11-11 13:36:17 +01:00
Alex Beregszaszi
6f6bcdd526 [ewasm] Display custom sections as hex string in the text output 2020-11-10 23:48:24 +01:00
chriseth
da92fe548e Merge remote-tracking branch 'origin/develop' into breaking 2020-11-10 13:48:32 +01:00
Alex Beregszaszi
6e11754c8b [ewasm] Support compiling data subobjects 2020-11-09 17:47:12 +00:00
Alex Beregszaszi
e41700e5f7 [ewasm] Clarify custom section handling in BinaryTransform 2020-11-09 17:47:01 +00:00
Alex Beregszaszi
cd08dab4e6 [ewasm] Allow compiling Yul without "main" 2020-11-09 16:36:29 +00:00
chriseth
e93a84ccd4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-10-28 18:19:31 +01:00
Alex Beregszaszi
13652bd4a9 [ewasm] Add assertion for datasize/dataoffset in BinaryTransform 2020-10-27 17:43:31 +00:00
Alex Beregszaszi
6d79a8885f [ewasm] Implement stop() in EVM->Ewasm translator 2020-10-27 17:09:30 +00:00
chriseth
bfd267459c Panic codes. 2020-10-22 19:25:55 +02:00
Daniel Kirchner
0dca223b45 Add another argument to setimmutable and the AssignImmutable opcode, allowing to modify code at any memory offset. 2020-10-15 18:14:41 +02:00
Alexander Arlt
b6e1415509 Add LEB128 encoding functions & tests. 2020-09-28 16:06:19 -05:00
Daniel Kirchner
f3c2d6cfdc Move memory load and store functions to the dialect. 2020-09-17 22:13:27 +02:00
Daniel Kirchner
f4b42d1c72 Add stack limit evader. 2020-09-17 22:13:27 +02:00
Harikrishnan Mulackal
d166c2540a Fix typo block 2020-09-07 17:24:03 +02:00
Alex Beregszaszi
dd44fc1f06 Use explicit yul namespace in WasmCodeTransform 2020-08-27 19:49:30 +01:00
Alex Beregszaszi
fdf68a9525 Add some asserts to WasmCodeTransform 2020-08-27 19:49:30 +01:00
Harikrishnan Mulackal
3cbe65e4f3 Refactor SideEffects struct 2020-08-18 14:53:59 +02:00
Alex Beregszaszi
f6a57af809 Add LiteralKind to Dialect.literalArguments
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-05 11:37:00 +01:00