From 6451190d764979a1398f2b57d7bde72cf6237862 Mon Sep 17 00:00:00 2001 From: Dmitry Vagner Date: Tue, 18 Oct 2022 12:47:31 -0400 Subject: [PATCH] replace mul_const --- evm/src/cpu/kernel/asm/fields/fp12.asm | 18 ++++++------- evm/src/cpu/kernel/asm/fields/fp6.asm | 36 ++++++++++++++------------ 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/evm/src/cpu/kernel/asm/fields/fp12.asm b/evm/src/cpu/kernel/asm/fields/fp12.asm index c2173b55..1e13d48b 100644 --- a/evm/src/cpu/kernel/asm/fields/fp12.asm +++ b/evm/src/cpu/kernel/asm/fields/fp12.asm @@ -17,15 +17,15 @@ return_on_stack: /// macro | num | ops | cost /// ------------------------- -/// load | 8 | 40 | 320 -/// store | 5 | 40 | 200 -/// dup | 5 | 6 | 30 -/// swap | 4 | 16 | 64 -/// add | 3 | 16 | 48 -/// sub | 2 | 17 | 34 -/// mul | 3 | 156 | 468 -/// i9 | 1 | 9 | 9 -/// jump | 1 | 1 | 1 +/// load | 8 | 40 | 320 +/// store | 5 | 40 | 200 +/// dup | 5 | 6 | 30 +/// swap | 4 | 16 | 64 +/// add | 3 | 16 | 48 +/// sub | 2 | 17 | 34 +/// mul | 3 | 156 | 468 +/// i9 | 1 | 9 | 9 +/// jump | 1 | 1 | 1 /// /// TOTAL: 1174 diff --git a/evm/src/cpu/kernel/asm/fields/fp6.asm b/evm/src/cpu/kernel/asm/fields/fp6.asm index 92bca5c8..a6e93a71 100644 --- a/evm/src/cpu/kernel/asm/fields/fp6.asm +++ b/evm/src/cpu/kernel/asm/fields/fp6.asm @@ -84,6 +84,24 @@ // stack: %endmacro +// cost: 9; note this returns y, x for x + yi +%macro i9 + // stack: a , b + DUP2 + DUP2 + // stack: a , b, a , b + PUSH 9 + MULFP254 + SUBFP254 + // stack: 9a - b, a , b + SWAP2 + // stack: b , a, 9a - b + PUSH 9 + MULFP254 + ADDFP254 + // stack: 9b + a, 9a - b +%endmacro + // cost: 6 %macro dup1_fp6 // stack: f: 6 @@ -190,22 +208,6 @@ // stack: h0, h1, h2, h3, h4, h5 %endmacro -// cost: 9; note this returns y, x for x + yi -%macro i9 - // stack: a , b - DUP2 - DUP2 - // stack: a , b, a , b - %mul_const(9) - SUBFP254 - // stack: 9a - b, a , b - SWAP2 - // stack: b , a, 9a - b - %mul_const(9) - ADDFP254 - // stack: 9b + a, 9a - b -%endmacro - // cost: 156 %macro mul_fp6 /// E = E0 + E1t + E2t^2 = CD @@ -379,7 +381,7 @@ ADDFP254 ADDFP254 SWAP13 - + /// E2 = C0D2 + C1D1 + C2D0 /// /// C0D2 = (c0d2 - c0_d2_) + (c0d2_ + c0_d2)i