Skip to content

Commit

Permalink
Merge pull request #56 from 0xPolygonHermez/fix/non-maxmem-reg
Browse files Browse the repository at this point in the history
remove MAXMEM register
  • Loading branch information
krlosMata authored Feb 20, 2023
2 parents 9aaf66b + c82d3c4 commit 3f8c63c
Show file tree
Hide file tree
Showing 19 changed files with 206 additions and 214 deletions.
96 changes: 47 additions & 49 deletions build/command_parser.js

Large diffs are not rendered by default.

230 changes: 114 additions & 116 deletions build/zkasm_parser.js

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions src/command_parser.jison
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ GAS { return 'GAS'; }
zkPC { return 'zkPC'; }
RR { return 'RR'; }
STEP { return 'STEP'; }
MAXMEM { return 'MAXMEM'; }
CNT_ARITH { return 'CNT_ARITH' }
CNT_BINARY { return 'CNT_BINARY' }
CNT_KECCAK_F { return 'CNT_KECCAK_F' }
Expand Down Expand Up @@ -285,7 +284,6 @@ reg
| zkPC
| RR
| STEP
| MAXMEM
| HASHPOS
| RCX
;
Expand Down
2 changes: 0 additions & 2 deletions src/zkasm_parser.jison
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ zkPC { return 'zkPC'; }
RR { return 'RR'; }
STEP { return 'STEP'; }
ROTL_C { return 'ROTL_C'; }
MAXMEM { return 'MAXMEM'; }
HASHPOS { return 'HASHPOS'; }
MLOAD { return 'MLOAD' }
MSTORE { return 'MSTORE' }
Expand Down Expand Up @@ -725,7 +724,6 @@ reg
| RR
| zkPC
| STEP
| MAXMEM
| HASHPOS
| ROTL_C
| RCX
Expand Down
2 changes: 1 addition & 1 deletion test/arrays.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ start:
@d => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR

finalWait:
${beforeLast()} : JMPN(finalWait)
Expand Down
2 changes: 1 addition & 1 deletion test/consts.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ CONSTL %BIT8 = 0x123456789ABCDEF0n ^ 0n
; -2147483648 :ASSERT

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/consts_command.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ CONSTL %MAXL = (1 << 256) - 1
${115792089237316195423570985008687907853269984665640564039457584007913129639935} :ASSERT

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR

finalWait:
${beforeLast()} : JMPN(finalWait)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.max.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ start:
3*2+5 => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.maxl.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CONSTL %MAXL = ((1 << 256) - 1) + 1
start:
3*2+5 => A
end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.min.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ start:
3*2+5 => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.minl.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ start:
3*2+5 => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.mix.const.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ start:
%A*%B+5 => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.mix.values.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ start:
3*2+5n => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.notdefined.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ start:
3*2+%C => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/errors/consts.redefinition.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ start:
3*2+5n => A

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/opcodes.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ main:


end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
54 changes: 27 additions & 27 deletions test/operations.zkasm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
start:
start:

1 => B
0 => C,D
Expand All @@ -10,88 +10,88 @@ start:
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 | 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${0x01F34567FFFBCDEFFF1122334FFF667788FFAAFFCCDFFFFFFEDCBA9876FFFF10} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 | 0} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 | 0} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 | 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 | 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} :ARITH

;;;;;;;;;;;;;;;
;; bitwise AND
;;;;;;;;;;;;;;;
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${0x0020000089A000000000000004550000009900BB000DEEFFF000000000543200} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0} => A
${0} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} :ARITH

;;;;;;;;;;;;;;;
;; bitwise XOR
;;;;;;;;;;;;;;;
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${0x01D34567765BCDEFFF1122334BAA66778866AA44CCD211000EDCBA9876ABCD10} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 ^ 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0xFEDCBA9876543210FFEEDDCCBBAA998877665544332211000123456789ABCDEF} :ARITH

;;;;;;;;;;;;;;;
;; bitwise NOT
;;;;;;;;;;;;;;;
${~0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A

${~0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} => A
${0} :ARITH

${~0} => A
${~0} => A
${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} :ARITH

${~0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} => A
${~0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} => A
${0xFEDCBA9876543210FFEEDDCCBBAA998877665544332211000123456789ABCDEF} :ARITH

;;;;;;;;;;;;;;;
;; SHL
;;;;;;;;;;;;;;;
${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF << 1} => A

${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF << 1} => A
${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE} :ARITH

${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF << 255} => A
${0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF << 255} => A
${0x8000000000000000000000000000000000000000000000000000000000000000} :ARITH

${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 << 36} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 << 36} => A
${0x9ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210000000000} :ARITH

;;;;;;;;;;;;;;;
;; IF with ?
;;;;;;;;;;;;;;;

1 => E
${E ? 0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 : 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${E ? 0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 : 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210} :ARITH

0 => E
${E ? 0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 : 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${E ? 0x0123456789ABCDEF00112233445566778899AABBCCDDEEFFFEDCBA9876543210 : 0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} => A
${0x00F00000FFF00000FF0000000FFF000000FF00FF000FFFFFF000000000FFFF00} :ARITH

1 => E
${E ? (E + 3) : (E + 2)} => A
${E ? (E + 3) : (E + 2)} => A
4 :ARITH

0 => E
${E ? (E + 2 + 1) : ((E + 6 * 2) * 2 + 3)} => A
${E ? (E + 2 + 1) : ((E + 6 * 2) * 2 + 3)} => A
27 :ARITH

:JMP(end)

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down
2 changes: 1 addition & 1 deletion test/rotlc.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ start:
0x1415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F10111213n: ASSERT

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR

finalWait:
${beforeLast()} : JMPN(finalWait)
Expand Down
10 changes: 5 additions & 5 deletions test/subroutine.zkasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,26 @@ start:
2 => B

:CALL(subroutine) ; same as :JMP(RR)
0 => A,B,D

0 => A,B,D
5 => E :ARITH

4 => A
8 => B

zkPC+1 => RR :JMP(subroutine) ; same as CALL(subroutime)

0 => A,B,D
0 => A,B,D
12 => E :ARITH

:JMP(end)

subroutine:
A+B => C
:RETURN ; same as :JMP(RR)

end:
0 => A,B,C,D,E,CTX, SP, PC, GAS, MAXMEM, SR ; Set all registers to 0
0 => A,B,C,D,E,CTX, SP, PC, GAS, SR ; Set all registers to 0

longLoop:
STEP-0x10000+40 : JMPC(longLoop2)
Expand Down

0 comments on commit 3f8c63c

Please sign in to comment.