mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-02-02 04:53:11 +00:00
frob macro
This commit is contained in:
parent
84c1954daf
commit
9a68574e48
@ -33,42 +33,41 @@ post_mllr:
|
||||
// stack: out, 100, out, tate_mul1, tate_mul2, tate_mul3, retdest
|
||||
%inverse_fp12
|
||||
// stack: 100, out, tate_mul1, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
PUSH mul_fp12
|
||||
// stack: mul_fp12, 100, out, tate_mul1, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
DUP3
|
||||
// stack: out, mul_fp12, 100, out, tate_mul1, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%jump(frob_fp12_6)
|
||||
DUP2
|
||||
// stack: out, 100, out, tate_mul1, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%frob_fp12_6
|
||||
// stack: out, 100, out, tate_mul1, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%jump(mul_fp12)
|
||||
tate_mul1:
|
||||
// stack: out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
DUP1
|
||||
// stack: out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
PUSH mul_fp12
|
||||
// stack: mul_fp12, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
PUSH 100
|
||||
// stack: 100, mul_fp12, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
DUP3
|
||||
// stack: out, 100, mul_fp12, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%jump(frob_fp12_2)
|
||||
// stack: 100, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
DUP2
|
||||
// stack: out, 100, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%frob_fp12_2
|
||||
// stack: 100, out, out, tate_mul2, tate_mul3, retdest {100: inv}
|
||||
%jump(mul_fp12)
|
||||
tate_mul2:
|
||||
// stack: out, tate_mul3, retdest {100: acc}
|
||||
PUSH post_pow
|
||||
// stack: post_pow, out, tate_mul3, retdest {100: acc}
|
||||
PUSH 100
|
||||
// stack: 100, post_pow, out, tate_mul3, retdest {100: acc}
|
||||
DUP1
|
||||
DUP3
|
||||
// stack: out, 100, post_pow, out, tate_mul3, retdest {100: acc}
|
||||
%jump(power)
|
||||
post_pow:
|
||||
// stack: 100, out, tate_mul3, retdest {100: pow}
|
||||
PUSH mul_fp12
|
||||
// stack: mul_fp12, 100, out, tate_mul3, retdest {100: pow}
|
||||
DUP3
|
||||
// stack: out, mul_fp12, 100, out, tate_mul3, retdest {100: pow}
|
||||
%jump(frob_fp12_3)
|
||||
DUP2
|
||||
// stack: out, 100, out, tate_mul3, retdest {100: pow}
|
||||
%frob_fp12_3
|
||||
// stack: out, 100, out, tate_mul3, retdest {100: pow}
|
||||
%jump(mul_fp12)
|
||||
tate_mul3:
|
||||
// stack: out, retdest {100: pow}
|
||||
SWAP1
|
||||
JUMP
|
||||
SWAP1 JUMP
|
||||
|
||||
|
||||
/// def miller_loop(P, Q):
|
||||
|
||||
@ -71,95 +71,91 @@
|
||||
/// g' = FROB_z[n] * frob_fp6(n, f')
|
||||
/// return g, g'
|
||||
|
||||
global frob_fp12_1:
|
||||
// stack: ptr, retdest
|
||||
%macro frob_fp12_1
|
||||
// stack: ptr
|
||||
DUP1
|
||||
// stack: ptr, ptr, retdest
|
||||
// stack: ptr, ptr
|
||||
%load_fp6
|
||||
// stack: f, ptr, retdest
|
||||
// stack: f, ptr
|
||||
%frob_fp6_1
|
||||
// stack: g, ptr, retdest
|
||||
// stack: g, ptr
|
||||
DUP7
|
||||
// stack: ptr, g, ptr, retdest
|
||||
%load_fp6
|
||||
// stack: ptr, retdest
|
||||
// stack: ptr, g, ptr
|
||||
%store_fp6
|
||||
// stack: ptr
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', ptr, retdest
|
||||
// stack: ptr', ptr
|
||||
%load_fp6
|
||||
// stack: f', ptr, retdest
|
||||
// stack: f', ptr
|
||||
%frobz_1
|
||||
// stack: g', ptr, retdest
|
||||
// stack: g', ptr
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', g', ptr, retdest
|
||||
// stack: ptr', g', ptr
|
||||
%store_fp6
|
||||
// stack: ptr, retdest
|
||||
SWAP1
|
||||
JUMP
|
||||
// stack: ptr
|
||||
%endmacro
|
||||
|
||||
global frob_fp12_2:
|
||||
// stack: ptr, retdest
|
||||
%macro frob_fp12_2
|
||||
// stack: ptr , out
|
||||
DUP1
|
||||
// stack: ptr, ptr, retdest
|
||||
// stack: ptr, ptr , out
|
||||
%load_fp6
|
||||
// stack: f, ptr, retdest
|
||||
// stack: f, ptr , out
|
||||
%frob_fp6_2
|
||||
// stack: g, ptr, retdest
|
||||
DUP7
|
||||
// stack: ptr, g, ptr, retdest
|
||||
// stack: g, ptr , out
|
||||
DUP8
|
||||
// stack: out, g, ptr , out
|
||||
%store_fp6
|
||||
// stack: ptr , out
|
||||
%offset_fp6
|
||||
// stack: ptr', out
|
||||
%load_fp6
|
||||
// stack: ptr, retdest
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', ptr, retdest
|
||||
%load_fp6
|
||||
// stack: f', ptr, retdest
|
||||
// stack: f', out
|
||||
%frobz_2
|
||||
// stack: g', ptr, retdest
|
||||
// stack: g', out
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', g', ptr, retdest
|
||||
// stack: out', g', out
|
||||
%store_fp6
|
||||
// stack: ptr, retdest
|
||||
SWAP1
|
||||
JUMP
|
||||
// stack: out
|
||||
%endmacro
|
||||
|
||||
global frob_fp12_3:
|
||||
// stack: ptr, retdest
|
||||
%macro frob_fp12_3
|
||||
// stack: ptr
|
||||
DUP1
|
||||
// stack: ptr, ptr, retdest
|
||||
// stack: ptr, ptr
|
||||
%load_fp6
|
||||
// stack: f, ptr, retdest
|
||||
// stack: f, ptr
|
||||
%frob_fp6_3
|
||||
// stack: g, ptr, retdest
|
||||
// stack: g, ptr
|
||||
DUP7
|
||||
// stack: ptr, g, ptr, retdest
|
||||
%load_fp6
|
||||
// stack: ptr, retdest
|
||||
// stack: ptr, g, ptr
|
||||
%store_fp6
|
||||
// stack: ptr
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', ptr, retdest
|
||||
// stack: ptr', ptr
|
||||
%load_fp6
|
||||
// stack: f', ptr, retdest
|
||||
// stack: f', ptr
|
||||
%frobz_3
|
||||
// stack: g', ptr, retdest
|
||||
// stack: g', ptr
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', g', ptr, retdest
|
||||
// stack: ptr', g', ptr
|
||||
%store_fp6
|
||||
// stack: ptr, retdest
|
||||
SWAP1
|
||||
JUMP
|
||||
// stack: ptr
|
||||
%endmacro
|
||||
|
||||
global frob_fp12_6:
|
||||
// stack: ptr, retdest
|
||||
%macro frob_fp12_6:
|
||||
// stack: ptr
|
||||
DUP1 %offset_fp6
|
||||
// stack: ptr', ptr, retdest
|
||||
// stack: ptr', ptr
|
||||
%load_fp6
|
||||
// stack: f', ptr, retdest
|
||||
// stack: f', ptr
|
||||
%frobz_6
|
||||
// stack: g', ptr, retdest
|
||||
// stack: g', ptr
|
||||
DUP7 %offset_fp6
|
||||
// stack: ptr', g', ptr, retdest
|
||||
// stack: ptr', g', ptr
|
||||
%store_fp6
|
||||
// stack: ptr, retdest
|
||||
SWAP1
|
||||
JUMP
|
||||
// stack: ptr
|
||||
%endmacro
|
||||
|
||||
%macro frobz_1
|
||||
%frob_fp6_1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user