wborgeaud
9c4947e0f0
EC ops test
2022-07-07 18:06:24 +02:00
Daniel Lubarov
beb8a90773
Macros with arguments ( #595 )
...
* Macros with arguments
See `basic_macros.rs` for an example.
* rename
2022-07-07 08:59:53 -07:00
wborgeaud
3ec2d307e5
EVM interpreter
2022-07-07 16:53:06 +02:00
wborgeaud
434615a03c
PR feedback + comments
2022-07-07 08:26:57 +02:00
wborgeaud
e2b1e51280
Minor
2022-07-06 09:40:11 +02:00
wborgeaud
9747343ac2
PR feedback
2022-07-06 09:25:41 +02:00
wborgeaud
5bae732ea0
Minor
2022-07-05 21:24:51 +02:00
wborgeaud
8ffd25c127
Add zero case for mul
2022-07-05 21:22:05 +02:00
wborgeaud
fb8a67b0d9
Working ecmul
2022-07-05 21:12:11 +02:00
wborgeaud
006b74f4dc
Merge branch 'main' into elliptic_curve_asm
2022-07-05 20:29:21 +02:00
wborgeaud
9e90d7d115
Add check for zero point
2022-07-05 20:27:55 +02:00
wborgeaud
fd1d9fe85e
Add range check
2022-07-05 17:37:34 +02:00
wborgeaud
8e711d413a
Minor
2022-07-05 16:41:28 +02:00
wborgeaud
ee80fa4a39
Minor
2022-07-05 16:19:23 +02:00
wborgeaud
8873eaba11
Find labels before assembly
2022-07-05 16:11:55 +02:00
wborgeaud
7364248e60
Fixes
2022-07-05 15:43:41 +02:00
wborgeaud
eed7cde388
Add moddiv for testing
2022-07-05 15:01:40 +02:00
wborgeaud
8a44c557c5
Curve mul assembly
2022-07-05 12:11:35 +02:00
wborgeaud
4d37685744
Comment
2022-07-05 11:12:56 +02:00
wborgeaud
a5988d6c26
Simplify
2022-07-05 11:09:25 +02:00
wborgeaud
4cdbb8c1a9
Minor
2022-07-05 10:47:29 +02:00
wborgeaud
6db8539bc8
Minor
2022-07-05 10:46:07 +02:00
wborgeaud
683efc0d74
Impl double
2022-07-05 10:45:26 +02:00
wborgeaud
92bb8d5fa9
Merge branch 'main' into elliptic_curve_asm
...
# Conflicts:
# evm/src/cpu/kernel/ast.rs
2022-07-05 09:03:19 +02:00
Daniel Lubarov
e7b480deaf
Begin work on witness generation and kernel bootstrapping
2022-07-01 10:09:57 -07:00
Daniel Lubarov
f6d48f1328
Serialize zero as [0] rather than [] in bytecode ( #592 )
2022-07-01 09:29:56 -07:00
wborgeaud
797bece7bd
First attempt
2022-07-01 18:28:22 +02:00
Jacqueline Nabaglo
e3834a5335
Util for assembling EVM code to hex ( #586 )
...
This is just for debugging the kernel. It's fully disposable.
2022-06-27 18:08:03 -07:00
Daniel Lubarov
7b75eaa98d
ASM macro support ( #580 )
...
* ASM macro support
Also recognize global labels as a PUSH target; previously it only considered local labels.
* macro test
2022-06-25 23:10:08 -07:00
Jacqueline Nabaglo
191ddf7bc1
Exponentiation kernel function ( #574 )
...
* Exponentiation kernel function
* Exponentiation: Hamish comments
2022-06-23 15:33:55 -07:00
Daniel Lubarov
2e818172f0
Parse and assemble kernel functions ( #567 )
...
* Parse and assemble kernel functions
Written in "EVM++" assembly. Later on we will add some priviledged opcodes (in unused opcode ordinals), making it an extension of EVM bytecode.
I don't think there's much of a standard for EVM assembly, but I loosely based the syntax on this [proposal](https://gist.github.com/axic/17ddbbce4738ccf4040d30cbb5de484e ).
* PR feedback
* tweaks for consistency
* terminology tweaks
* Update evm/src/cpu/kernel/opcodes.rs
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
* Update evm/src/cpu/kernel/opcodes.rs
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
* Update evm/src/cpu/kernel/opcodes.rs
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
Co-authored-by: Jacqueline Nabaglo <jakub@mirprotocol.org>
2022-06-20 20:32:29 -07:00