From a424916e9d4b46890ddff7ebf5e66f16997c446f Mon Sep 17 00:00:00 2001 From: Dmitry Vagner Date: Sat, 22 Oct 2022 13:44:01 -0400 Subject: [PATCH] cleanup comments --- evm/src/cpu/kernel/asm/fields/fp12_mul.asm | 116 ++++++++++----------- evm/src/cpu/kernel/asm/fields/fp6_mul.asm | 17 +-- 2 files changed, 67 insertions(+), 66 deletions(-) diff --git a/evm/src/cpu/kernel/asm/fields/fp12_mul.asm b/evm/src/cpu/kernel/asm/fields/fp12_mul.asm index 25745bbf..df52c8b6 100644 --- a/evm/src/cpu/kernel/asm/fields/fp12_mul.asm +++ b/evm/src/cpu/kernel/asm/fields/fp12_mul.asm @@ -12,13 +12,13 @@ global test_mul_Fp12: // stack: in0, in1, out, return_on_stack, out %jump(mul_Fp12) return_on_stack: - // stack: out + // stack: out DUP1 %add_const(6) // stack: out', out %load_fp6 %load_fp6 - // stack: h, h' + // stack: h, h' %jump(0xdeadbeef) @@ -31,7 +31,7 @@ return_on_stack: /// swap | 4 | 16 | 64 /// add | 4 | 16 | 64 /// subr | 1 | 17 | 17 -/// mul | 3 | 156 | 468 +/// mul | 3 | 157 | 471 /// i9 | 1 | 9 | 9 /// /// lone stack operations: @@ -44,7 +44,7 @@ return_on_stack: /// POP | 2 /// JUMP | 1 /// -/// TOTAL: 1193 +/// TOTAL: 1196 /// F = f + f'z @@ -58,91 +58,91 @@ return_on_stack: /// Note: f, f', g, g' consist of six terms on the stack global mul_Fp12: - // stack: in0, in1, out + // stack: in0, in1, out DUP1 %add_const(6) - // stack: in0', in0, in1, out + // stack: in0', in0, in1, out %load_fp6 - // stack: f', in0, in1, out + // stack: f', in0, in1, out DUP7 %add_const(6) - // stack: in1', f', in0, in1, out + // stack: in1', f', in0, in1, out %load_fp6 - // stack: g', f', in0, in1, out - PUSH post_mul_1 - // stack: post_mul_1, g', f', in0, in1, out + // stack: g', f', in0, in1, out + PUSH ret_1 + // stack: ret_1, g', f', in0, in1, out %dup_fp6_7 - // stack: f', post_mul_1, g', f', in0, in1, out + // stack: f', ret_1, g', f', in0, in1, out %dup_fp6_7 - // stack: g', f', post_mul_1, g', f', in0, in1, out + // stack: g', f', ret_1, g', f', in0, in1, out %jump(mul_fp6) -post_mul_1: - // stack: f'g', g' , f', in0, in1, out +ret_1: + // stack: f'g', g' , f', in0, in1, out %dup_fp6_0 - // stack: f'g', f'g', g' , f', in0, in1, out - %store_fp6_sh(36) - // stack: f'g', g' , f', in0, in1, out {36: sh(f'g')} - %store_fp6(42) - // stack: g' , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: f'g', f'g', g' , f', in0, in1, out + %store_fp6_sh(100) + // stack: f'g', g' , f', in0, in1, out {100: sh(f'g')} + %store_fp6(106) + // stack: g' , f', in0, in1, out {100: sh(f'g'), 106: f'g'} DUP13 - // stack: in0, g' , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: in0, g' , f', in0, in1, out {100: sh(f'g'), 106: f'g'} DUP15 - // stack: in1, in0, g' , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: in1, in0, g' , f', in0, in1, out {100: sh(f'g'), 106: f'g'} %load_fp6 - // stack: g , in0, g' , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: g , in0, g' , f', in0, in1, out {100: sh(f'g'), 106: f'g'} %swap_fp6_hole - // stack: g', in0, g , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: g', in0, g , f', in0, in1, out {100: sh(f'g'), 106: f'g'} %dup_fp6_7 - // stack: g,g', in0, g , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: g,g', in0, g , f', in0, in1, out {100: sh(f'g'), 106: f'g'} %add_fp6 - // stack: g+g', in0, g , f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: g+g', in0, g , f', in0, in1, out {100: sh(f'g'), 106: f'g'} %swap_fp6_hole - // stack: g, in0, g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g'} - PUSH post_mul_2 - // stack: post_mul_2, g, in0, g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: g, in0, g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g'} + PUSH ret_2 + // stack: ret_2, g, in0, g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g'} SWAP7 - // stack: in0, g, post_mul_2, g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: in0, g, ret_2, g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g'} %load_fp6 - // stack: f, g, post_mul_2, g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g'} + // stack: f, g, ret_2, g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g'} %jump(mul_fp6) -post_mul_2: - // stack: fg, g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g'} - %store_fp6(48) - // stack: g+g', f', in0, in1, out {36: sh(f'g'), 42: f'g', 48: fg} +ret_2: + // stack: fg, g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g'} + %store_fp6(112) + // stack: g+g', f', in0, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %swap_fp6 - // stack: f', g+g', in0, in1, out {36: sh(f'g'), 42: f'g', 48: fg} - PUSH post_mul_3 - // stack: post_mul_3, f', g+g', in0, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: f', g+g', in0, in1, out {100: sh(f'g'), 106: f'g', 112: fg} + PUSH ret_3 + // stack: ret_3, f', g+g', in0, in1, out {100: sh(f'g'), 106: f'g', 112: fg} SWAP13 - // stack: in0, f', g+g', post_mul_3, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: in0, f', g+g', ret_3, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %load_fp6 - // stack: f,f', g+g', post_mul_3, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: f,f', g+g', ret_3, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %add_fp6 - // stack: f+f', g+g', post_mul_3, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: f+f', g+g', ret_3, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %jump(mul_fp6) -post_mul_3: - // stack: (f+f')(g+g'), in1, out {36: sh(f'g'), 42: f'g', 48: fg} - %load_fp6(48) - // stack: fg, (f+f')(g+g'), in1, out {36: sh(f'g'), 42: f'g', 48: fg} +ret_3: + // stack: (f+f')(g+g'), in1, out {100: sh(f'g'), 106: f'g', 112: fg} + %load_fp6(112) + // stack: fg, (f+f')(g+g'), in1, out {100: sh(f'g'), 106: f'g', 112: fg} %swap_fp6 - // stack: (f+f')(g+g'), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: (f+f')(g+g'), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %dup_fp6_6 - // stack: fg, (f+f')(g+g'), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} - %load_fp6(42) - // stack: f'g',fg, (f+f')(g+g'), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: fg, (f+f')(g+g'), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} + %load_fp6(106) + // stack: f'g',fg, (f+f')(g+g'), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %add_fp6 - // stack: f'g'+fg, (f+f')(g+g'), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: f'g'+fg, (f+f')(g+g'), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %subr_fp6 - // stack: (f+f')(g+g') - (f'g'+fg), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: (f+f')(g+g') - (f'g'+fg), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} DUP14 %add_const(6) - // stack: out', (f+f')(g+g') - (f'g'+fg), fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: out', (f+f')(g+g') - (f'g'+fg), fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %store_fp6 - // stack: fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} - %load_fp6(36) - // stack: sh(f'g') , fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} + %load_fp6(100) + // stack: sh(f'g') , fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %add_fp6 - // stack: sh(f'g') + fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: sh(f'g') + fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} DUP8 - // stack: out, sh(f'g') + fg, in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: out, sh(f'g') + fg, in1, out {100: sh(f'g'), 106: f'g', 112: fg} %store_fp6 - // stack: in1, out {36: sh(f'g'), 42: f'g', 48: fg} + // stack: in1, out {100: sh(f'g'), 106: f'g', 112: fg} %pop2 JUMP diff --git a/evm/src/cpu/kernel/asm/fields/fp6_mul.asm b/evm/src/cpu/kernel/asm/fields/fp6_mul.asm index 65f8aad3..cb87b8ea 100644 --- a/evm/src/cpu/kernel/asm/fields/fp6_mul.asm +++ b/evm/src/cpu/kernel/asm/fields/fp6_mul.asm @@ -215,32 +215,33 @@ global mul_fp6: ADDFP254 // stack: E1_ = CD01_ + 9C2D2_ + C2D2 SWAP15 - + // E2_ // stack: d2, d1_, d1, d0_, d2_, c0, c0_, c1, c1_, c2, c2_, d0 SWAP7 MULFP254 - // stack: c1d1_, d1, d0_, d2_, c0, c0_, d2, c1_, c2, c2_, d0 + // stack: c1d1_, d1, d0_, d2_, c0, c0_, d2, c1_, c2, c2_, d0 SWAP7 MULFP254 - // stack: c1_d1, d0_, d2_, c0, c0_, d2, c1d1_, c2, c2_, d0 + // stack: c1_d1, d0_, d2_, c0, c0_, d2, c1d1_, c2, c2_, d0 SWAP7 MULFP254 - // stack: c2d0_, d2_, c0, c0_, d2, c1d1_, c1_d1, c2_, d0 + // stack: c2d0_, d2_, c0, c0_, d2, c1d1_, c1_d1, c2_, d0 SWAP2 MULFP254 - // stack: c0d2_, c2d0_, c0_, d2, c1d1_, c1_d1, c2_, d0 + // stack: c0d2_ , c2d0_, c0_, d2, c1d1_, c1_d1, c2_, d0 ADDFP254 - // stack: c0d2_ + c2d0_, c0_, d2, c1d1_, c1_d1, c2_, d0 + // stack: c0d2_ + c2d0_, c0_, d2, c1d1_, c1_d1, c2_, d0 SWAP2 MULFP254 - // stack: c0_d2, c0d2_ + c2d0_, c1d1_, c1_d1, c2_, d0 + // stack: c0_d2 , c0d2_ + c2d0_ , c1d1_ , c1_d1 , c2_, d0 ADDFP254 ADDFP254 ADDFP254 - // stack: c0_d2 + c0d2_ + c2d0_ + c1d1_ + c1_d1, c2_, d0 + // stack: c0_d2 + c0d2_ + c2d0_ + c1d1_ + c1_d1, c2_, d0 SWAP2 MULFP254 ADDFP254 + // stack: E2_ = c2_d0 + c0_d2 + c0d2_ + c2d0_ + c1d1_ + c1_d1 SWAP6 JUMP