mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-10 17:53:06 +00:00
Working ecmul
This commit is contained in:
parent
006b74f4dc
commit
fb8a67b0d9
@ -10,8 +10,8 @@ pub(crate) fn combined_kernel() -> Kernel {
|
||||
let files = vec![
|
||||
include_str!("asm/basic_macros.asm"),
|
||||
// include_str!("asm/exp.asm"),
|
||||
include_str!("asm/curve_mul.asm"),
|
||||
include_str!("asm/curve_add.asm"),
|
||||
// include_str!("asm/curve_mul.asm"),
|
||||
include_str!("asm/moddiv.asm"),
|
||||
// include_str!("asm/storage_read.asm"),
|
||||
// include_str!("asm/storage_write.asm"),
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
// #define N 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47 // BN254 base field order
|
||||
|
||||
global ec_add:
|
||||
PUSH 2
|
||||
PUSH 1
|
||||
PUSH 0
|
||||
PUSH 0
|
||||
//PUSH 2
|
||||
//PUSH 1
|
||||
//PUSH 0x1bf9384aa3f0b3ad763aee81940cacdde1af71617c06f46e11510f14f3d5d121
|
||||
//PUSH 0xe7313274bb29566ff0c8220eb9841de1d96c2923c6a4028f7dd3c6a14cee770
|
||||
JUMPDEST
|
||||
// stack: x0, y0, x1, y1, retdest
|
||||
DUP2
|
||||
@ -250,13 +250,15 @@ ec_add_valid_points_with_lambda:
|
||||
SWAP1
|
||||
// stack: lambda * (x1 - x2), y1, x2, lambda, x0, y0, x1, y1, retdest
|
||||
%submod
|
||||
// stack: y2, x2, x0, y0, x1, y1, retdest
|
||||
SWAP4
|
||||
// stack: x1, x2, x0, y0, y2, y1, retdest
|
||||
// stack: y2, x2, lambda, x0, y0, x1, y1, retdest
|
||||
SWAP5
|
||||
// stack: x1, x2, lambda, x0, y0, y2, y1, retdest
|
||||
POP
|
||||
// stack: x2, x0, y0, y2, y1, retdest
|
||||
SWAP4
|
||||
// stack: y1, x0, y0, y2, x2, retdest
|
||||
// stack: x2, lambda, x0, y0, y2, y1, retdest
|
||||
SWAP5
|
||||
// stack: y1, lambda, x0, y0, y2, x2, retdest
|
||||
POP
|
||||
// stack: lambda, x0, y0, y2, x2, retdest
|
||||
POP
|
||||
// stack: x0, y0, y2, x2, retdest
|
||||
POP
|
||||
@ -267,6 +269,7 @@ ec_add_valid_points_with_lambda:
|
||||
// stack: retdest, x2, y2
|
||||
JUMP
|
||||
|
||||
// Assumption: (x0,y0) and (x1,y1) are valid points and x0 == x1
|
||||
ec_add_equal_first_coord:
|
||||
JUMPDEST
|
||||
// stack: x0, y0, x1, y1, retdest with x0 == x1
|
||||
|
||||
@ -1,4 +1,9 @@
|
||||
global ec_mul:
|
||||
// Uncomment for test inputs.
|
||||
// PUSH 0xdeadbeef
|
||||
// PUSH 0xd
|
||||
// PUSH 2
|
||||
// PUSH 1
|
||||
JUMPDEST
|
||||
// stack: x, y, s, retdest
|
||||
DUP2
|
||||
@ -110,6 +115,6 @@ recursion_return:
|
||||
odd_scalar:
|
||||
JUMPDEST
|
||||
// stack: x', y', x, y, retdest
|
||||
PUSH ec_add_valid_points
|
||||
// stack: ec_add_valid_points, x', y', x, y, retdest
|
||||
PUSH ec_add
|
||||
// stack: ec_add, x', y', x, y, retdest
|
||||
JUMP
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user