mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-07 08:13:11 +00:00
renumber memory
This commit is contained in:
parent
f1bbf66cda
commit
ff0695d760
@ -100,19 +100,19 @@ mul_tangent:
|
|||||||
// stack: out, out, mul_tangent_1, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
// stack: out, out, mul_tangent_1, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
||||||
%jump(square_fp254_12)
|
%jump(square_fp254_12)
|
||||||
mul_tangent_1:
|
mul_tangent_1:
|
||||||
// stack: out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
// stack: out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
||||||
DUP13
|
DUP13
|
||||||
DUP13
|
DUP13
|
||||||
DUP13
|
DUP13
|
||||||
DUP13
|
DUP13
|
||||||
// stack: Q, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
// stack: Q, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
||||||
DUP11
|
DUP11
|
||||||
DUP11
|
DUP11
|
||||||
// stack: O, Q, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
// stack: O, Q, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out
|
||||||
%tangent
|
%tangent
|
||||||
// stack: out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out {0: line}
|
// stack: out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out {0: line}
|
||||||
%stack (out) -> (out, 0, out)
|
%stack (out) -> (out, 12, out)
|
||||||
// stack: out, 0, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out {0: line}
|
// stack: out, 12, out, mul_tangent_2, retdest, 0xnm, times, O, P, Q, out {0: line}
|
||||||
%jump(mul_fp254_12_sparse)
|
%jump(mul_fp254_12_sparse)
|
||||||
mul_tangent_2:
|
mul_tangent_2:
|
||||||
// stack: retdest, 0xnm, times, O, P, Q, out {0: line}
|
// stack: retdest, 0xnm, times, O, P, Q, out {0: line}
|
||||||
@ -137,26 +137,26 @@ after_double:
|
|||||||
/// O += P
|
/// O += P
|
||||||
|
|
||||||
mul_cord:
|
mul_cord:
|
||||||
// stack: 0xnm, times, O, P, Q, out
|
// stack: 0xnm, times, O, P, Q, out
|
||||||
PUSH mul_cord_1
|
PUSH mul_cord_1
|
||||||
// stack: mul_cord_1, 0xnm, times, O, P, Q, out
|
// stack: mul_cord_1, 0xnm, times, O, P, Q, out
|
||||||
DUP11
|
DUP11
|
||||||
DUP11
|
DUP11
|
||||||
DUP11
|
DUP11
|
||||||
DUP11
|
DUP11
|
||||||
// stack: Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
// stack: Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
||||||
DUP9
|
DUP9
|
||||||
DUP9
|
DUP9
|
||||||
// stack: O, Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
// stack: O, Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
||||||
DUP13
|
DUP13
|
||||||
DUP13
|
DUP13
|
||||||
// stack: P, O, Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
// stack: P, O, Q, mul_cord_1, 0xnm, times, O, P, Q, out
|
||||||
%cord
|
%cord
|
||||||
// stack: mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
// stack: mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
||||||
DUP12
|
DUP12
|
||||||
// stack: out, mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
// stack: out, mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
||||||
%stack (out) -> (out, 0, out)
|
%stack (out) -> (out, 12, out)
|
||||||
// stack: out, 0, out, mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
// stack: out, 12, out, mul_cord_1, 0xnm, times, O, P, Q, out {0: line}
|
||||||
%jump(mul_fp254_12_sparse)
|
%jump(mul_fp254_12_sparse)
|
||||||
mul_cord_1:
|
mul_cord_1:
|
||||||
// stack: 0xnm, times, O , P, Q, out
|
// stack: 0xnm, times, O , P, Q, out
|
||||||
@ -193,7 +193,7 @@ after_add:
|
|||||||
// stack: py^2 , 9, px, py, qx, qx_, qy, qy_
|
// stack: py^2 , 9, px, py, qx, qx_, qy, qy_
|
||||||
SUBFP254
|
SUBFP254
|
||||||
// stack: py^2 - 9, px, py, qx, qx_, qy, qy_
|
// stack: py^2 - 9, px, py, qx, qx_, qy, qy_
|
||||||
%mstore_kernel_bn254_pairing(0)
|
%mstore_kernel_bn254_pairing(12)
|
||||||
// stack: px, py, qx, qx_, qy, qy_
|
// stack: px, py, qx, qx_, qy, qy_
|
||||||
DUP1
|
DUP1
|
||||||
MULFP254
|
MULFP254
|
||||||
@ -209,7 +209,7 @@ after_add:
|
|||||||
DUP3
|
DUP3
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (-3*px^2)qx, py, -3px^2, qx_, qy, qy_
|
// stack: (-3*px^2)qx, py, -3px^2, qx_, qy, qy_
|
||||||
%mstore_kernel_bn254_pairing(2)
|
%mstore_kernel_bn254_pairing(14)
|
||||||
// stack: py, -3px^2, qx_, qy, qy_
|
// stack: py, -3px^2, qx_, qy, qy_
|
||||||
PUSH 2
|
PUSH 2
|
||||||
MULFP254
|
MULFP254
|
||||||
@ -219,15 +219,15 @@ after_add:
|
|||||||
DUP4
|
DUP4
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (2py)qy, -3px^2, qx_, 2py, qy_
|
// stack: (2py)qy, -3px^2, qx_, 2py, qy_
|
||||||
%mstore_kernel_bn254_pairing(8)
|
%mstore_kernel_bn254_pairing(20)
|
||||||
// stack: -3px^2, qx_, 2py, qy_
|
// stack: -3px^2, qx_, 2py, qy_
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (-3px^2)*qx_, 2py, qy_
|
// stack: (-3px^2)*qx_, 2py, qy_
|
||||||
%mstore_kernel_bn254_pairing(3)
|
%mstore_kernel_bn254_pairing(15)
|
||||||
// stack: 2py, qy_
|
// stack: 2py, qy_
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (2py)*qy_
|
// stack: (2py)*qy_
|
||||||
%mstore_kernel_bn254_pairing(9)
|
%mstore_kernel_bn254_pairing(21)
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
/// def cord(p1x, p1y, p2x, p2y, qx, qy):
|
/// def cord(p1x, p1y, p2x, p2y, qx, qy):
|
||||||
@ -249,7 +249,7 @@ after_add:
|
|||||||
// stack: p1y*p2x , p2y*p1x, p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
// stack: p1y*p2x , p2y*p1x, p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
||||||
SUBFP254
|
SUBFP254
|
||||||
// stack: p1y*p2x - p2y*p1x, p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
// stack: p1y*p2x - p2y*p1x, p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
||||||
%mstore_kernel_bn254_pairing(0)
|
%mstore_kernel_bn254_pairing(12)
|
||||||
// stack: p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
// stack: p1x , p1y, p2x , p2y, qx, qx_, qy, qy_
|
||||||
SWAP3
|
SWAP3
|
||||||
// stack: p2y , p1y, p2x , p1x, qx, qx_, qy, qy_
|
// stack: p2y , p1y, p2x , p1x, qx, qx_, qy, qy_
|
||||||
@ -264,20 +264,20 @@ after_add:
|
|||||||
DUP5
|
DUP5
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (p1x - p2x)qy, p2y - p1y, qx, qx_, p1x - p2x, qy_
|
// stack: (p1x - p2x)qy, p2y - p1y, qx, qx_, p1x - p2x, qy_
|
||||||
%mstore_kernel_bn254_pairing(8)
|
%mstore_kernel_bn254_pairing(20)
|
||||||
// stack: p2y - p1y, qx, qx_, p1x - p2x, qy_
|
// stack: p2y - p1y, qx, qx_, p1x - p2x, qy_
|
||||||
SWAP1
|
SWAP1
|
||||||
// stack: qx, p2y - p1y, qx_, p1x - p2x, qy_
|
// stack: qx, p2y - p1y, qx_, p1x - p2x, qy_
|
||||||
DUP2
|
DUP2
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (p2y - p1y)qx, p2y - p1y, qx_, p1x - p2x, qy_
|
// stack: (p2y - p1y)qx, p2y - p1y, qx_, p1x - p2x, qy_
|
||||||
%mstore_kernel_bn254_pairing(2)
|
%mstore_kernel_bn254_pairing(14)
|
||||||
// stack: p2y - p1y, qx_, p1x - p2x, qy_
|
// stack: p2y - p1y, qx_, p1x - p2x, qy_
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (p2y - p1y)qx_, p1x - p2x, qy_
|
// stack: (p2y - p1y)qx_, p1x - p2x, qy_
|
||||||
%mstore_kernel_bn254_pairing(3)
|
%mstore_kernel_bn254_pairing(15)
|
||||||
// stack: p1x - p2x, qy_
|
// stack: p1x - p2x, qy_
|
||||||
MULFP254
|
MULFP254
|
||||||
// stack: (p1x - p2x)*qy_
|
// stack: (p1x - p2x)*qy_
|
||||||
%mstore_kernel_bn254_pairing(9)
|
%mstore_kernel_bn254_pairing(21)
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|||||||
@ -11,15 +11,8 @@
|
|||||||
/// return bn254_final_exponent(out)
|
/// return bn254_final_exponent(out)
|
||||||
|
|
||||||
global bn254_pairing:
|
global bn254_pairing:
|
||||||
// stack: k, inp, out, retdest
|
// stack: k, inp, out, retdest
|
||||||
%stack (k, inp, out) -> (out, 1, k, inp, out)
|
|
||||||
// stack: out, 1, k, inp, out, retdest
|
|
||||||
%mstore_kernel_bn254_pairing
|
|
||||||
// stack: k, inp, out, retdest
|
|
||||||
|
|
||||||
// %jump(bn254_pairing_loop) // this short circuits the input checks
|
|
||||||
DUP1
|
DUP1
|
||||||
// stack: k, k, inp, out, retdest
|
|
||||||
|
|
||||||
bn254_input_check:
|
bn254_input_check:
|
||||||
// stack: j , k, inp
|
// stack: j , k, inp
|
||||||
@ -54,22 +47,25 @@ bn254_input_check:
|
|||||||
%jump(bn254_input_check)
|
%jump(bn254_input_check)
|
||||||
|
|
||||||
bn254_pairing_start:
|
bn254_pairing_start:
|
||||||
// stack: 0, k, inp, out, retdest
|
// stack: 0, k, inp, out, retdest
|
||||||
POP
|
%stack (j, k, inp, out) -> (out, 1, k, inp, out)
|
||||||
|
// stack: out, 1, k, inp, out, retdest
|
||||||
|
%mstore_kernel_bn254_pairing
|
||||||
|
// stack: k, inp, out, retdest
|
||||||
|
|
||||||
bn254_pairing_loop:
|
bn254_pairing_loop:
|
||||||
// stack: k , inp, out, retdest
|
// stack: k, inp, out, retdest
|
||||||
DUP1
|
DUP1
|
||||||
ISZERO
|
ISZERO
|
||||||
// stack: end?, k , inp, out, retdest
|
// stack: end?, k, inp, out, retdest
|
||||||
%jumpi(bn254_final_exponent)
|
%jumpi(bn254_final_exponent)
|
||||||
// stack: k , inp, out, retdest
|
// stack: k, inp, out, retdest
|
||||||
%sub_const(1)
|
%sub_const(1)
|
||||||
// stack: k=k-1, inp, out, retdest
|
// stack: k=k-1, inp, out, retdest
|
||||||
|
|
||||||
%stack (k, inp, out) -> (k, inp, 200, mul_fp254_12, 200, out, out, bn254_pairing_loop, k, inp, out)
|
%stack (k, inp, out) -> (k, inp, 0, mul_fp254_12, 0, out, out, bn254_pairing_loop, k, inp, out)
|
||||||
// stack: k, inp, 200, mul_fp254_12, 200, out, out, bn254_pairing_loop, k, inp, out retdest
|
// stack: k, inp, 0, mul_fp254_12, 0, out, out, bn254_pairing_loop, k, inp, out retdest
|
||||||
%mul_const(6)
|
%mul_const(6)
|
||||||
ADD
|
ADD
|
||||||
// stack: inp_k, 200, mul_fp254_12, 200, out, out, bn254_pairing_loop, k, inp, out retdest
|
// stack: inp_k, 0, mul_fp254_12, 0, out, out, bn254_pairing_loop, k, inp, out retdest
|
||||||
%jump(bn254_miller)
|
%jump(bn254_miller)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user