mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-08 08:43:06 +00:00
switch
This commit is contained in:
parent
f265041845
commit
b202196b5f
@ -12,20 +12,6 @@
|
||||
// stack: z0, z1
|
||||
%endmacro
|
||||
|
||||
%macro mul_fp381
|
||||
// stack: x0, x1, y0, y1
|
||||
PROVER_INPUT(sf::bls381_base::mul_hi)
|
||||
// stack: z1, x0, x1, y0, y1
|
||||
SWAP4
|
||||
// stack: y1, x0, x1, y0, z1
|
||||
PROVER_INPUT(sf::bls381_base::mul_lo)
|
||||
// stack: z0, y1, x0, x1, y0, z1
|
||||
SWAP4
|
||||
// stack: y0, y1, x0, x1, z0, z1
|
||||
%pop4
|
||||
// stack: z0, z1
|
||||
%endmacro
|
||||
|
||||
%macro sub_fp381
|
||||
// stack: x0, x1, y0, y1
|
||||
PROVER_INPUT(sf::bls381_base::sub_hi)
|
||||
@ -40,31 +26,65 @@
|
||||
// stack: z0, z1
|
||||
%endmacro
|
||||
|
||||
%macro mul_fp381
|
||||
// stack: x0, x1, y0, y1
|
||||
PROVER_INPUT(sf::bls381_base::mul_hi)
|
||||
// stack: z1, x0, x1, y0, y1
|
||||
SWAP4
|
||||
// stack: y1, x0, x1, y0, z1
|
||||
PROVER_INPUT(sf::bls381_base::mul_lo)
|
||||
// stack: z0, y1, x0, x1, y0, z1
|
||||
SWAP4
|
||||
// stack: y0, y1, x0, x1, z0, z1
|
||||
%pop4
|
||||
// stack: z0, z1
|
||||
%endmacro
|
||||
|
||||
global test_add_fp381:
|
||||
%add_fp381
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
global test_mul_fp381:
|
||||
%mul_fp381
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
global test_sub_fp381:
|
||||
%sub_fp381
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
global test_mul_fp381:
|
||||
%mul_fp381
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
global add_fp381_2:
|
||||
// stack: x_re, x_im, y_re, y_im, jumpdest
|
||||
|
||||
%macro add_fp381_2
|
||||
// stack: x_re, x_im, y_re, y_im
|
||||
%stack (x_re: 2, x_im: 2, y_re: 2, y_im: 2) -> (y_im, x_im, y_re, x_re)
|
||||
// stack: y_im, x_im, y_re, x_re, jumpdest
|
||||
// stack: y_im, x_im, y_re, x_re
|
||||
%add_fp381
|
||||
// stack: z_im, y_re, x_re, jumpdest
|
||||
// stack: z_im, y_re, x_re
|
||||
%stack (z_im: 2, y_re: 2, x_re: 2) -> (x_re, y_re, z_im)
|
||||
// stack: x_re, y_re, z_im, jumpdest
|
||||
// stack: x_re, y_re, z_im
|
||||
%add_fp381
|
||||
// stack: z_re, z_im, jumpdest
|
||||
%stack (z_re: 2, z_im: 2, jumpdest) -> (jumpdest, z_re, z_im)
|
||||
JUMP
|
||||
// stack: z_re, z_im
|
||||
%endmacro
|
||||
|
||||
%macro sub_fp381_2
|
||||
// stack: x_re, x_im, y_re, y_im
|
||||
%stack (x_re: 2, x_im: 2, y_re: 2, y_im: 2) -> (x_im, y_im, y_re, x_re)
|
||||
// stack: x_im, y_im, y_re, x_re
|
||||
%sub_fp381
|
||||
// stack: z_im, y_re, x_re
|
||||
%stack (z_im: 2, y_re: 2, x_re: 2) -> (x_re, y_re, z_im)
|
||||
// stack: x_re, y_re, z_im
|
||||
%sub_fp381
|
||||
// stack: z_re, z_im
|
||||
%endmacro
|
||||
|
||||
global test_add_fp381_2:
|
||||
%add_fp381_2
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
global test_sub_fp381_2:
|
||||
%sub_fp381_2
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
|
||||
global mul_fp381_2:
|
||||
// stack: x_re, x_im, y_re, y_im, jumpdest
|
||||
@ -100,16 +120,4 @@ global mul_fp381_2:
|
||||
// stack: z_re, z_im, jumpdest
|
||||
%stack (z_re: 2, z_im: 2, jumpdest) -> (jumpdest, z_re, z_im)
|
||||
JUMP
|
||||
|
||||
global sub_fp381_2:
|
||||
// stack: x_re, x_im, y_re, y_im, jumpdest
|
||||
%stack (x_re: 2, x_im: 2, y_re: 2, y_im: 2) -> (x_im, y_im, y_re, x_re)
|
||||
// stack: x_im, y_im, y_re, x_re, jumpdest
|
||||
%sub_fp381
|
||||
// stack: z_im, y_re, x_re, jumpdest
|
||||
%stack (z_im: 2, y_re: 2, x_re: 2) -> (x_re, y_re, z_im)
|
||||
// stack: x_re, y_re, z_im, jumpdest
|
||||
%sub_fp381
|
||||
// stack: z_re, z_im, jumpdest
|
||||
%stack (z_re: 2, z_im: 2, jumpdest) -> (jumpdest, z_re, z_im)
|
||||
JUMP
|
||||
|
||||
@ -29,12 +29,12 @@ fn test_bls_ops() -> Result<()> {
|
||||
let y: BLS381 = rng.gen::<BLS381>();
|
||||
|
||||
let output_add = run_bls_ops("test_add_fp381", x, y);
|
||||
let output_mul = run_bls_ops("test_mul_fp381", x, y);
|
||||
let output_sub = run_bls_ops("test_sub_fp381", x, y);
|
||||
let output_mul = run_bls_ops("test_mul_fp381", x, y);
|
||||
|
||||
assert_eq!(output_add, x + y);
|
||||
assert_eq!(output_mul, x * y);
|
||||
assert_eq!(output_sub, x - y);
|
||||
assert_eq!(output_mul, x * y);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -60,13 +60,13 @@ fn test_bls_fp2_ops() -> Result<()> {
|
||||
let x: Fp2<BLS381> = rng.gen::<Fp2<BLS381>>();
|
||||
let y: Fp2<BLS381> = rng.gen::<Fp2<BLS381>>();
|
||||
|
||||
let output_add = run_bls_fp2_ops("add_fp381_2", x, y);
|
||||
let output_add = run_bls_fp2_ops("test_add_fp381_2", x, y);
|
||||
let output_sub = run_bls_fp2_ops("test_sub_fp381_2", x, y);
|
||||
let output_mul = run_bls_fp2_ops("mul_fp381_2", x, y);
|
||||
let output_sub = run_bls_fp2_ops("sub_fp381_2", x, y);
|
||||
|
||||
assert_eq!(output_add, x + y);
|
||||
assert_eq!(output_mul, x * y);
|
||||
assert_eq!(output_sub, x - y);
|
||||
assert_eq!(output_mul, x * y);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user