From 7d78916a6f50a485cff1b8148763805691b02a64 Mon Sep 17 00:00:00 2001 From: Dmitry Vagner Date: Fri, 28 Oct 2022 02:03:52 -0700 Subject: [PATCH] merge --- evm/src/cpu/kernel/asm/fields/fp12_mul.asm | 70 +++++++++--------- evm/src/cpu/kernel/tests/fields.rs | 84 +++++++++++----------- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/evm/src/cpu/kernel/asm/fields/fp12_mul.asm b/evm/src/cpu/kernel/asm/fields/fp12_mul.asm index 71e1f8f7..0037f832 100644 --- a/evm/src/cpu/kernel/asm/fields/fp12_mul.asm +++ b/evm/src/cpu/kernel/asm/fields/fp12_mul.asm @@ -1,40 +1,40 @@ /// Note: uncomment this to test -global test_mul_Fp12: - // stack: f, in0 , f', g, in1 , g', in1, out, in0, out - DUP7 - // stack: in0, f, in0 , f', g, in1 , g', in1, out, in0, out - %store_fp6 - // stack: in0 , f', g, in1 , g', in1, out, in0, out - %add_const(6) - // stack: in0', f', g, in1 , g', in1, out, in0, out - %store_fp6 - // stack: g, in1 , g', in1, out, in0, out - DUP7 - // stack: in1, g, in1 , g', in1, out, in0, out - %store_fp6 - // stack: in1 , g', in1, out, in0, out - %add_const(6) - // stack: in1', g', in1, out, in0, out - %store_fp6 - // stack: in1, out, in0, out - PUSH ret_stack - // stack: ret_stack, in1, out, in0, out - SWAP3 - // stack: in0, in1, out, ret_stack, out - %jump(mul_Fp12) -ret_stack: - // stack: out - DUP1 - %add_const(6) - // stack: out', out - %load_fp6 - // stack: h', out - DUP7 - // stack: out, h', out - %load_fp6 - // stack: h, h', out - %jump(0xdeadbeef) +/// global test_mul_Fp12: +/// // stack: f, in0 , f', g, in1 , g', in1, out, in0, out +/// DUP7 +/// // stack: in0, f, in0 , f', g, in1 , g', in1, out, in0, out +/// %store_fp6 +/// // stack: in0 , f', g, in1 , g', in1, out, in0, out +/// %add_const(6) +/// // stack: in0', f', g, in1 , g', in1, out, in0, out +/// %store_fp6 +/// // stack: g, in1 , g', in1, out, in0, out +/// DUP7 +/// // stack: in1, g, in1 , g', in1, out, in0, out +/// %store_fp6 +/// // stack: in1 , g', in1, out, in0, out +/// %add_const(6) +/// // stack: in1', g', in1, out, in0, out +/// %store_fp6 +/// // stack: in1, out, in0, out +/// PUSH ret_stack +/// // stack: ret_stack, in1, out, in0, out +/// SWAP3 +/// // stack: in0, in1, out, ret_stack, out +/// %jump(mul_Fp12) +/// ret_stack: +/// // stack: out +/// DUP1 +/// %add_const(6) +/// // stack: out', out +/// %load_fp6 +/// // stack: h', out +/// DUP7 +/// // stack: out, h', out +/// %load_fp6 +/// // stack: h, h', out +/// %jump(0xdeadbeef) /// fp6 functions: diff --git a/evm/src/cpu/kernel/tests/fields.rs b/evm/src/cpu/kernel/tests/fields.rs index 718c337f..bb57cb2a 100644 --- a/evm/src/cpu/kernel/tests/fields.rs +++ b/evm/src/cpu/kernel/tests/fields.rs @@ -149,52 +149,52 @@ fn test_fp6() -> Result<()> { Ok(()) } -fn make_initial_stack( - f0: [[u32; 2]; 3], - f1: [[u32; 2]; 3], - g0: [[u32; 2]; 3], - g1: [[u32; 2]; 3], -) -> Vec { - // stack: in0, f, in0', f', in1, g, in1', g', in1, out, in0, out - let f0: Vec = f0.into_iter().flatten().collect(); - let f1: Vec = f1.into_iter().flatten().collect(); - let g0: Vec = g0.into_iter().flatten().collect(); - let g1: Vec = g1.into_iter().flatten().collect(); +// fn make_initial_stack( +// f0: [[u32; 2]; 3], +// f1: [[u32; 2]; 3], +// g0: [[u32; 2]; 3], +// g1: [[u32; 2]; 3], +// ) -> Vec { +// // stack: in0, f, in0', f', in1, g, in1', g', in1, out, in0, out +// let f0: Vec = f0.into_iter().flatten().collect(); +// let f1: Vec = f1.into_iter().flatten().collect(); +// let g0: Vec = g0.into_iter().flatten().collect(); +// let g1: Vec = g1.into_iter().flatten().collect(); - let mut input = f0; - input.extend(vec![0]); - input.extend(f1); - input.extend(g0); - input.extend(vec![12]); - input.extend(g1); - input.extend(vec![12, 24, 0, 24]); +// let mut input = f0; +// input.extend(vec![0]); +// input.extend(f1); +// input.extend(g0); +// input.extend(vec![12]); +// input.extend(g1); +// input.extend(vec![12, 24, 0, 24]); - as_stack(input) -} +// as_stack(input) +// } -#[test] -fn test_fp12() -> Result<()> { - let f0 = gen_fp6(); - let f1 = gen_fp6(); - let g0 = gen_fp6(); - let g1 = gen_fp6(); +// #[test] +// fn test_fp12() -> Result<()> { +// let f0 = gen_fp6(); +// let f1 = gen_fp6(); +// let g0 = gen_fp6(); +// let g1 = gen_fp6(); - let kernel = combined_kernel(); - let initial_offset = kernel.global_labels["test_mul_Fp12"]; - let initial_stack: Vec = make_initial_stack(f0, f1, g0, g1); - let final_stack: Vec = run_with_kernel(&kernel, initial_offset, initial_stack)? - .stack() - .to_vec(); +// let kernel = combined_kernel(); +// let initial_offset = kernel.global_labels["test_mul_Fp12"]; +// let initial_stack: Vec = make_initial_stack(f0, f1, g0, g1); +// let final_stack: Vec = run_with_kernel(&kernel, initial_offset, initial_stack)? +// .stack() +// .to_vec(); - let mut output: Vec = mul_fp12([f0, f1], [g0, g1]) - .into_iter() - .flatten() - .flatten() - .collect(); - output.extend(vec![24]); - let expected = as_stack(output); +// let mut output: Vec = mul_fp12([f0, f1], [g0, g1]) +// .into_iter() +// .flatten() +// .flatten() +// .collect(); +// output.extend(vec![24]); +// let expected = as_stack(output); - assert_eq!(final_stack, expected); +// assert_eq!(final_stack, expected); - Ok(()) -} +// Ok(()) +// }