Sladuca
ca35502660
fmt
2022-08-19 17:54:48 -04:00
Sladuca
3eadc27be5
add fix to evm
2022-08-19 17:53:12 -04:00
Sladuca
ff961a34a3
fix lost evals when P::WIDTH > 0
2022-08-19 17:39:55 -04:00
Daniel Lubarov
68de3ee0c6
Merge pull request #660 from mir-protocol/packing
...
Packing memory operations
2022-08-08 14:23:49 -04:00
Daniel Lubarov
65a20bcd8a
Merge remote-tracking branch 'proxima/log-portability'
2022-08-06 23:00:32 -04:00
Sebastien La Duca
86c1493d3d
Merge pull request #1 from mir-protocol/log-portability-stubs
...
Log portability stubs
2022-08-06 22:34:53 -04:00
Daniel Lubarov
385a990c50
Unsuppress warnings
2022-08-06 22:27:17 -04:00
Daniel Lubarov
1e5383c63d
Stub push/pop
2022-08-06 22:18:53 -04:00
Daniel Lubarov
0263116e6c
Merge pull request #661 from proxima-one/no-rand-2
...
feature-gate rand
2022-08-06 22:07:14 -04:00
Sladuca
e7216f2683
feature-gate rand
2022-08-06 11:35:41 -04:00
Sladuca
3d5a9174fd
remove explicit feature include
2022-08-06 11:17:36 -04:00
Daniel Lubarov
94def938aa
Merge pull request #654 from proxima-one/make-gates-public
...
Make the rest of gates public
2022-08-05 22:30:31 -05:00
Nicholas Ward
ed3ac7b29d
Merge pull request #658 from mir-protocol/memory_stark_fix
...
Memory Stark fix
2022-08-05 15:33:00 -07:00
Daniel Lubarov
5f14bef57e
Merge pull request #655 from mir-protocol/more_metadata
...
More metadata fields
2022-08-05 14:08:51 -05:00
Daniel Lubarov
ccc4202de3
Packing memory operations
2022-08-05 13:44:08 -04:00
Daniel Lubarov
b741458d02
Merge pull request #659 from mir-protocol/macro_labels
...
Support macro-local labels
2022-08-05 09:13:24 -05:00
Daniel Lubarov
616eb618f2
Support macro-local labels
...
Again borrowing syntax from NASM. Example from the test:
%macro spin
%%start:
PUSH %%start
JUMP
%endmacro
One thing this lets us do is create "wrapper" macros which call a function, then return to the code immediately following the macro call, such as
%macro decode_rlp_scalar
%stack (pos) -> (pos, %%after)
%jump(decode_rlp_scalar)
%%after:
%endmacro
I used this to clean up `type_0.asm`.
However, since such macros need to insert `%%after` beneath any arguments in the stack, using them will be suboptimal in some cases. I wouldn't worry about it generally, but we might want to avoid them in performance-critical code, or functions with many arguments like `memcpy`.
2022-08-04 12:32:20 -07:00
Nicholas Ward
bbcb419521
fmt
2022-08-04 14:56:16 -04:00
Nicholas Ward
bf4cf1c64f
fix
2022-08-04 14:40:34 -04:00
Daniel Lubarov
9d3d3afeba
Merge pull request #657 from mir-protocol/more_memory
...
Split up memory asm and add more helper functions
2022-08-04 09:34:56 -07:00
Daniel Lubarov
1e6cf4c4ab
newline
2022-08-04 09:34:46 -07:00
Daniel Lubarov
7423124e36
Split up memory asm and add more helper functions
2022-08-03 22:18:29 -07:00
Daniel Lubarov
fae653da2a
Missing retdest
2022-08-03 21:56:31 -07:00
Daniel Lubarov
233584e945
Merge pull request #656 from mir-protocol/min_max
...
min, max macros
2022-08-03 21:41:23 -07:00
Daniel Lubarov
7481831b74
Merge pull request #648 from mir-protocol/optimizer
...
Some simple optimization rules
2022-08-03 13:53:58 -07:00
Daniel Lubarov
dfd715fafb
Fix case where a valid constant propagation a broke test
2022-08-03 13:52:52 -07:00
Daniel Lubarov
f58990160e
min, max macros
...
Will be used later for things like updating `MemorySize`.
2022-08-03 13:44:44 -07:00
Daniel Lubarov
b4d83f8db2
More metadata fields
2022-08-03 13:43:13 -07:00
Daniel Lubarov
90be4749ef
Merge branch 'main' into optimizer
2022-08-03 09:58:54 -07:00
Daniel Lubarov
9b5b77d3e9
Check if suggested code is actually better
2022-08-03 09:57:40 -07:00
Daniel Lubarov
8aad0b0746
Feedback
2022-08-02 15:57:06 -07:00
Daniel Lubarov
6416826643
Feedback
2022-08-02 15:44:50 -07:00
Sebastien La Duca
8c515b4f2c
selectors can stay pub(crate)
2022-08-02 17:12:27 -04:00
Sebastien La Duca
243bc09293
make modules public
2022-08-02 16:42:37 -04:00
Sebastien La Duca
5563176bad
make rest of gates public
2022-08-02 16:20:58 -04:00
Daniel Lubarov
002b568a12
fix
2022-08-02 10:17:34 -07:00
Daniel Lubarov
cb2df9fa03
More commutative fns
2022-08-02 09:22:06 -07:00
Daniel Lubarov
139bec354d
Merge pull request #651 from mir-protocol/asm_constants
...
More constants for kernel ASM
2022-08-02 09:14:36 -07:00
Daniel Lubarov
c167da8cbe
Revert "UserspaceProgramCounter"
...
This reverts commit 05beaab661a8aaa2f84b6f121b5ac2f29f2ed836.
2022-08-02 09:11:27 -07:00
Daniel Lubarov
3b54ec3986
Feedback
2022-08-02 09:11:27 -07:00
Daniel Lubarov
8bb45203f9
More succinct deadbeef
2022-08-02 09:11:27 -07:00
Daniel Lubarov
f951345556
Update evm/src/cpu/kernel/global_metadata.rs
...
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
2022-08-02 09:09:48 -07:00
Daniel Lubarov
74fc3b4cfc
Merge pull request #650 from mir-protocol/type_0_test
...
Test for parsing type 0 transactions
2022-08-02 09:08:46 -07:00
Daniel Lubarov
215be25cf8
Feedback
2022-08-02 09:08:24 -07:00
Daniel Lubarov
be0a5269ab
UserspaceProgramCounter
2022-08-01 21:21:35 -07:00
Daniel Lubarov
3f08cca116
More constants for kernel ASM
...
- `GlobalMetadata` - offsets for global kernel variables in memory
- `ContextMetadata` - offsets for context-specific kernel variables in memory
- `GAS_CONSTANTS`, based on the yellowpaper
Also move constants to a separate module since `aggregator` was getting long.
2022-08-01 18:18:22 -07:00
Daniel Lubarov
b34ace4c90
More succinct deadbeef
2022-08-01 17:40:16 -07:00
Daniel Lubarov
94c9b1b09c
Misc
2022-08-01 11:20:56 -07:00
Daniel Lubarov
b737aeaf03
Tweak py-evm code
2022-08-01 11:13:33 -07:00
Daniel Lubarov
3618793706
Test for parsing type 0 transactions
...
I made a couple related changes to `Interpreter`:
- Only enforce the `JUMPDEST` rule if we're in kernel mode.
- Convenience methods for dealing with the RLP and txn field segments of memory.
2022-08-01 11:03:05 -07:00