2119 Commits

Author SHA1 Message Date
Nicholas Ward
83963c3a8f permutation pairs 2022-07-11 10:44:48 -07:00
Nicholas Ward
b467a13d91 fix 2022-07-11 10:44:48 -07:00
Nicholas Ward
c3e7652763 updates 2022-07-11 10:44:48 -07:00
Nicholas Ward
181a132335 fixes 2022-07-11 10:44:48 -07:00
Nicholas Ward
a98f267ff0 initial change 2022-07-11 10:44:48 -07:00
Daniel Lubarov
9902e8b713
Merge pull request #601 from therealyingtong/arithmetic_u32-canonicity
`U32ArithmeticGate`: constrain canonicity of output.
2022-07-10 20:25:35 -07:00
therealyingtong
5bf545c5b5 arithmetic_u32: Introduce canonicity check. 2022-07-09 09:35:52 -04:00
therealyingtong
2c48b117ed arithmetic_u32: Introduce Self::routed_wires_per_op() method.
This removes the use of hard-coded 5 everywhere.
2022-07-09 09:35:52 -04:00
therealyingtong
fbffd60212 arithmetic_u32::tests: Add test_canonicity check.
This test should fail because its output is the non-canonical value
p = (u32::MAX, 1). However, since the U32ArithmeticGate currently
permits non-canonical outputs, this test passes.
2022-07-09 09:35:52 -04:00
therealyingtong
508d478872 arithmetic_u32::tests: Extract get_wires() from test_gate_constraint().
Use F::from_noncanonical_u64 for addend, so that we can reuse get_wires
in our canonicity check test.
2022-07-09 09:35:19 -04:00
Daniel Lubarov
58889e7649
Allow constants to be passed from Rust into our assembly (#598)
Roughly like environment variables. So we don't have to declare things like segment IDs twice.
2022-07-08 08:56:46 -07:00
wborgeaud
457ac11083
Merge pull request #596 from mir-protocol/evm_interpreter
EVM interpreter
2022-07-08 03:21:54 -05:00
wborgeaud
12ca084620 PR feedback 2022-07-08 09:58:52 +02:00
wborgeaud
bd5c9aa889
Merge pull request #597 from mir-protocol/ec_use_macro_params
Use macros with parameters in EC ops kernel functions
2022-07-07 13:40:23 -05:00
wborgeaud
a280e1c60a Merge branch 'ec_use_macro_params' into evm_interpreter 2022-07-07 19:28:22 +02:00
wborgeaud
a3c2e9a295 More macros 2022-07-07 19:28:11 +02:00
wborgeaud
122188c817 Merge branch 'ec_use_macro_params' into evm_interpreter 2022-07-07 19:17:31 +02:00
wborgeaud
4316be96cd Test exp kernel function 2022-07-07 19:15:39 +02:00
wborgeaud
7bf5118f69 Test exp kernel function 2022-07-07 18:46:20 +02:00
wborgeaud
78eb7843de Merge remote-tracking branch 'origin/evm_interpreter' into evm_interpreter 2022-07-07 18:27:28 +02:00
wborgeaud
f8987b7e80 Minor 2022-07-07 18:27:15 +02:00
wborgeaud
267f4162dd Minor 2022-07-07 18:20:24 +02:00
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
b90be5164f
Merge pull request #594 from mir-protocol/elliptic_curve_asm
Elliptic curve assembly
2022-07-07 08:00:47 -05: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
726bcd4575
Merge pull request #593 from mir-protocol/labels_before_assemble
Find global labels before assembly
2022-07-05 11:22:25 -05: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
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