From e59388836fc6e69046991957d97b56501e1379cc Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Tue, 29 Sep 2026 11:16:20 -0700 Subject: [PATCH] Finish eliminating temp buffer. --- src/assembly/ed25519/p.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/assembly/ed25519/p.ts b/src/assembly/ed25519/p.ts index f6ec9b2..f560275 100644 --- a/src/assembly/ed25519/p.ts +++ b/src/assembly/ed25519/p.ts @@ -310,7 +310,6 @@ export function ge_add_cached (r: ge_p1p1, p: ge_p3, q: ge_cached): void { v128.store_lane(rT_ptr, rT2, 0, 32) } -const ge_add_precomp_t0: FieldElement = fe() /** * r = p + q */ @@ -328,7 +327,6 @@ export function ge_add_precomp (r: ge_p1p1, p: ge_p3, q: ge_precomp): void { const pX0 = v128.load(pX_ptr), pX1 = v128.load(pX_ptr, 16), pX2 = v128.load(pX_ptr, 32) const pY0 = v128.load(pY_ptr), pY1 = v128.load(pY_ptr, 16), pY2 = v128.load(pY_ptr, 32) - const pZ0 = v128.load(pZ_ptr), pZ1 = v128.load(pZ_ptr, 16), pZ2 = v128.load(pZ_ptr, 32) // fe_add(r.X, p.Y, p.X) let rX0 = v128.add(pY0, pX0) @@ -362,9 +360,9 @@ export function ge_add_precomp (r: ge_p1p1, p: ge_p3, q: ge_precomp): void { let rT0 = v128.load(rT_ptr), rT1 = v128.load(rT_ptr, 16), rT2 = v128.load(rT_ptr, 32) // fe_dbl(t, p.Z) - const t0 = v128.shl(pZ0, 1) - const t1 = v128.shl(pZ1, 1) - const t2 = v128.shl(pZ2, 1) + const pZ0 = v128.shl(v128.load(pZ_ptr), 1) + const pZ1 = v128.shl(v128.load(pZ_ptr, 16), 1) + const pZ2 = v128.shl(v128.load(pZ_ptr, 32), 1) // fe_sub(r.X, r.Z, r.Y) rX0 = v128.sub(rZ0, rY0) @@ -377,14 +375,14 @@ export function ge_add_precomp (r: ge_p1p1, p: ge_p3, q: ge_precomp): void { rY2 = v128.add(rZ2, rY2) // fe_add(r.Z, t, r.T) - rZ0 = v128.add(t0, rT0) - rZ1 = v128.add(t1, rT1) - rZ2 = v128.add(t2, rT2) + rZ0 = v128.add(pZ0, rT0) + rZ1 = v128.add(pZ1, rT1) + rZ2 = v128.add(pZ2, rT2) // fe_sub(r.T, t, r.T) - rT0 = v128.sub(t0, rT0) - rT1 = v128.sub(t1, rT1) - rT2 = v128.sub(t2, rT2) + rT0 = v128.sub(pZ0, rT0) + rT1 = v128.sub(pZ1, rT1) + rT2 = v128.sub(pZ2, rT2) // store r.X v128.store(rX_ptr, rX0) -- 2.52.0