Linda Guiga
6332900d86
Combine PUSH0 and PC flags. ( #1256 )
2023-10-30 15:43:06 -04:00
Robin Salen
0d97b93af5
Add some documentation in EVM crate ( #1295 )
...
Co-authored-by: Linda Guiga <linda.guiga@toposware.com>
2023-10-30 14:28:24 -04:00
Linda Guiga
af4935cde8
Merge NOT and POP flags. ( #1257 )
...
* Merge NOT and POP flags
* Add comments
* Disable remaining memory channels for POP
* Apply comments
* Fix stack
2023-10-30 14:05:54 -04:00
Hamy Ratoanina
4b40bc0313
Remerge context flags ( #1292 )
...
* Remerge context flags
* Apply comments and revert some unwanted changes
2023-10-30 12:56:11 -04:00
Linda Guiga
817e3e78e0
Combine DUP and SWAP ( #1254 )
...
* Combine dup and swap flags.
* Add comments
2023-10-18 17:32:43 -04:00
Hamy Ratoanina
1d60431992
Store top of the stack in memory channel 0 ( #1215 )
...
* Store top of the stack in memory channel 0
* Fix interpreter
* Apply comments
* Remove debugging code
* Merge commit
* Remove debugging comments
* Apply comments
* Fix witness generation for exceptions
* Fix witness generation for exceptions (again)
* Fix modfp254 constraint
2023-10-11 16:28:49 -04:00
Robin Salen
41a29f069b
Remove some dead_code in EVM crate ( #1281 )
...
* Remove unnecessary CpuArithmeticView.
* Remove AllChallengerState
* Remove RecursiveAllProof
* Remove unused generate methods
* Remove dead_code from cpu/columns
* Remove todo
---------
Co-authored-by: Linda Guiga <lindaguiga3@gmail.com>
2023-10-09 09:07:01 -04:00
Robin Salen
0f19cd0dbc
Make gas fit in 2 limbs ( #1261 )
...
* Make gas fit in 2 limbs
* Fix recursive challenger
* Fix indices
* Add clarifying comments on ranges supported
* Add mention to revert before production
2023-09-29 14:47:23 -04:00
Robin Salen
8903aec129
Change padding rule for CPU ( #1234 )
...
* Change padding rule for CPU
* Disable memory channels for padding rows
* Apply some of Jacqueline's comments
* Update halt routine
* Add clarifying comment
* Redundant constraints and padding bug
* Revert "Remove is_bootstrap_kernel column"
This reverts commit 49d92cb8f1b0ae9de76872f76af4429699ff692f.
* Make halt_state implicit
* Move halting logic constraints to dedicated module
* Include new module
* Update some comments
2023-09-15 17:46:58 -04:00
Linda Guiga
d4a8026bf9
Combine mstore_general and mload_general into one flag ( #1188 )
...
* Combine mstore_general and mload_general into one flag
* Add comments and make stack constraints cleaner.
* Fix number of native instructions
* Ordering
* Cleanup
* Update calls to stack eval from latest main
---------
Co-authored-by: Robin Salen <salenrobin@gmail.com>
2023-09-14 19:51:02 -04:00
Robin Salen
06bc73f7ea
Combine arithmetic flags on the CPU side ( #1187 )
...
* Combine FP254 flags
* Combine basic binary ops together and do CTL with opcode value
* Combine ternary ops together
* Combine MUL DIV and MOD
* Combine shift operations
* Combine byte with other binary ops
* Fix tests
* Clean leftover comment
* Update from latest main
* Put the 'is_simulated' flag inside the Operation enum
* Cleaner way to handle "simulated" operations SHL and SHR.
* Fix comments.
* Minor: suggestion for re-expressing `combined_ops`.
* Update comment
---------
Co-authored-by: Hamish Ivey-Law <hamish@ivey-law.name>
2023-09-14 10:36:48 -04:00
Robin Salen
9508b49090
Move byte packing / unpacking to a distinct table ( #1212 )
...
* Duplicate Memory trace into BytePacking one
* Add mload_32bytes instruction
* Use dedicated ops for byte packing trace
* Change witness generation to reduce memory reads for MLOAD_32BYTES
* Remove segments
* Fix stack
* Fix extra product when fixing CTL for byte_packing
* Write output value in trace
* Add constraints for BYTE_PACKING table
* Add recursive constraints for BYTE_PACKING table
* Fix constraints
* Add address in trace and constraints
* Add timestamp and batch inputs into BytePackingOp struct
* Add extra column
* Fix BytePackingStark CTL
* Tiny fix in witness generation
* Fix the Memory CTL
* Add constraints for the new columns
* Remove 1 column
* Remove limb columns
* Fix
* Fix recursive circuit of BytePackingTable
* Fix constraints
* Fix endianness
* Add MSTORE_32BYTES instruction and move decomposition to packing table
* Add missing constraint
* Add range-check for all bytes
* Add extra constraint
* Cleanup
* Remove REMAINING_LEN column
* Add corresponding implementations in interpreter
* Fix recursive version
* Remove debug assertion because of CI
* Remove FILTER column
* Update new test from rebasing
* Reorder STARK modules to match TraceCheckPoint ordering
* Address comments
* Pacify clippy
* Add documentation to the packing module
* Fix doctest
2023-09-13 04:45:37 +10:00
Linda Guiga
c3cb227896
Combine get_context and set_context into one flag
2023-08-21 23:12:25 +01:00
Robin Salen
49d92cb8f1
Remove is_bootstrap_kernel column
2023-08-17 17:35:35 -04:00
Hamy Ratoanina
815a02ab75
Remove is_cpu_cycle
2023-08-15 15:22:41 -04:00
Hamy Ratoanina
12f379f99b
Combine jump flags
2023-08-14 19:08:24 -04:00
Robin Salen
7829dccf83
Combine EQ and ISZERO flags
2023-08-12 11:08:01 -04:00
Robin Salen
e10eaad09b
Combine all logic flags together
2023-08-11 10:17:45 -04:00
Robin Salen
ee9ce4c59d
Combine AND and OR flags in CpuStark
2023-08-09 16:05:24 -04:00
Jacqueline Nabaglo
cedeff5219
PUSH0
2023-06-13 13:29:30 -07:00
Jacqueline Nabaglo
6920992e01
Simplify stack bounds constraints
2023-06-07 18:27:23 -07:00
Jacqueline Nabaglo
b7220428b3
Error handling
2023-06-02 15:51:26 -07:00
Jacqueline Nabaglo
f3946f75bf
Gas constraints ( #880 )
...
* Gas constraints
* Bugfix
* make test pass post rebase
2023-02-14 22:30:19 -08:00
Hamish Ivey-Law
40866e775a
Refactor arithmetic operation traits ( #876 )
...
* Use U256s in `generate(...)` interfaces; fix reduction bug modular.
* Refactor `Operation` trait.
* Rename file.
* Rename `add_cc` things to `addcy`.
* Clippy.
* Simplify generation of less-than and greater-than.
* Add some comparison tests.
* Use `PrimeField64` instead of `RichField` where possible.
* Connect `SUBMOD` operation to witness generator.
* Add clippy exception.
* Add missing verification of range counter column.
* Fix generation of RANGE_COUNTER column.
* Address William's PR comments.
2023-02-10 23:07:57 +11:00
Jacqueline Nabaglo
b6bc018cba
Simplify JUMP/JUMPI constraints and finish witness generation ( #846 )
...
* Simplify `JUMP`/`JUMPI` constraints and finish witness generation
* Constrain stack
2022-12-11 11:08:33 -08:00
Daniel Lubarov
b8b2fefe52
Use Keccak sponge table for bootloading
...
And get rid of the deprecated Keccak memory table.
2022-12-03 11:21:31 -08:00
Daniel Lubarov
526dc9bb77
Flush out operation list
2022-11-30 21:00:48 -08:00
Daniel Lubarov
afb3e4b1e1
Misc work on witness generation
2022-11-30 14:58:40 -08:00
Daniel Lubarov
206f527338
Merge branch 'main' into jacqui/witness-generation
2022-11-30 10:09:57 -08:00
Jacqueline Nabaglo
87a9c002c9
Compiler errors + refactor
2022-11-28 13:19:40 -08:00
Hamish Ivey-Law
1c87fbb712
EVM shift left/right operations ( #801 )
...
* First parts of shift implementation.
* Disable range check errors.
* Tidy up ASM.
* Update comments; fix some .sum() expressions.
* First full draft of shift left/right.
* Missed a +1.
* Clippy.
* Address Jacqui's comments.
* Add comment.
* Fix missing filter.
* Address second round of comments from Jacqui.
2022-11-09 10:47:15 +11:00
Jacqueline Nabaglo
626c2583de
Combine all syscalls into one flag ( #802 )
...
* Combine all syscalls into one flag
* Minor: typo
* Daniel PR comments
2022-11-07 12:29:28 -08:00
Jacqueline Nabaglo
ec3391f9c4
Add Fp254 ops to the CPU table ( #779 )
...
* Add Fp254 ops to the CPU table
* Add forgotten file
2022-10-13 14:02:19 -07:00
Daniel Lubarov
9e483528d3
MPT hashing logic, part 3
2022-10-02 09:11:39 -07:00
Jacqueline Nabaglo
e978425b26
Connect stack to memory ( #735 )
...
* Connect stack to memory
* Daniel PR comment
2022-09-28 15:18:56 -07:00
Jacqueline Nabaglo
084700a7f4
Memory channel for program counter ( #717 )
2022-09-22 18:09:23 -07:00
Jacqueline Nabaglo
cae5f4870c
Stack pointer + underflow/overflow checks ( #710 )
...
* Stack pointer + underflow/overflow checks
* Daniel comments
* Extra docs
2022-09-10 13:20:30 -07:00
Daniel Lubarov
2c77247d43
Keccak sponge STARK
...
It contains a row for each absorb step of the sponge.
2022-09-01 09:41:19 -07:00
Jacqueline Nabaglo
4c52d37546
Save columns by verifying invalid opcodes in software ( #701 )
...
* Save columns by verifying invalid opcodes in software
* Autogenerate invalid opcode bitfield (Daniel comment)
* Remove unnecessary panic label
2022-08-30 13:06:03 -07:00
Jacqueline Nabaglo
013bf6471d
Transpose memory columns (make it an array of channel structs) ( #700 )
2022-08-26 22:05:16 -07:00
Jacqueline Nabaglo
f48de368a9
Make jumps, logic, and syscalls read from/write to memory columns ( #699 )
...
* Make jumps, logic, and syscalls read from/write to memory columns
* Change CTL convention (outputs precede inputs)
* Change convention so outputs follow inputs in memory channel order
2022-08-26 14:39:39 -07:00
Daniel Lubarov
9671c1e535
Merge pull request #669 from mir-protocol/keccak_memory
...
Keccak memory stark
2022-08-25 15:55:48 -07:00
Jacqueline Nabaglo
f1a5b7b2d1
Delete opcode column ( #672 )
2022-08-25 11:56:25 -05:00
Daniel Lubarov
522cac5e15
Keccak memory stark
2022-08-24 09:29:17 -07:00
Jacqueline Nabaglo
5922c58730
Change logic limb size to 32 bits ( #674 )
...
* Change logic limb size to 32 bits
* Remove unnecessary columns (thx Daniel!)
2022-08-17 21:19:27 -07:00
Jacqueline Nabaglo
b98dd47820
Permission levels, jumps, traps ( #653 )
...
* Permission levels, jumps, traps
* Tests passing
* PR comments + documentation
* Docs + minor bugfixes
* Tests
* Use already-defined `stop` and `exception` (but renamed to `sys_stop`, `fault_exception`)
* Daniel comments
2022-08-16 09:46:10 -07:00
Daniel Lubarov
cc61c7211c
Core transaction processing logic
...
With lots of TODOs to fill in afterward; this is just a start.
2022-08-12 17:20:18 -07:00
Jacqueline Nabaglo
24bb632358
Implement PANIC instruction ( #644 )
...
* Implement PANIC instruction
* Minor: comments
2022-07-29 12:04:42 -07:00
Jacqueline Nabaglo
16c2bee4b9
Increment program counter on native instructions ( #641 )
2022-07-28 17:30:20 -07:00
Daniel Lubarov
b2f09881c0
Merge branch 'main' into cpu_shared_cols
2022-07-28 13:41:46 -07:00