From 9ed12b76d76a1ff33a112e4da0b55668a5d42c17 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 21 Aug 2026 13:17:51 -0700 Subject: [PATCH] Reuse one ge for base point arithmetic. --- src/assembly/ge.ts | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/assembly/ge.ts b/src/assembly/ge.ts index 32dd7c5..d48c3ee 100644 --- a/src/assembly/ge.ts +++ b/src/assembly/ge.ts @@ -32,16 +32,7 @@ function ge_cmov (t: ge_precomp, u: ge_precomp, b: u8): void { } const ge_cmov8_minust: ge_precomp = new ge_precomp() -const ge_cmov8_precomp: StaticArray = StaticArray.fromArray([ - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), - new ge_precomp(), -]) +const ge_cmov8_precomp: ge_precomp = new ge_precomp() //@ts-expect-error @inline function ge_cmov8_base (t: ge_precomp, offset: i32, b: i8): void { @@ -52,10 +43,10 @@ function ge_cmov8_base (t: ge_precomp, offset: i32, b: i8): void { ge_precomp_0(t) for (let i = 0; i < 8; i++) { const ptr = base + offset + (i * 144) // 4 bytes * 12 values * 3 fields - memory.copy(changetype(ge_cmov8_precomp[i].yplusx), ptr, 48) - memory.copy(changetype(ge_cmov8_precomp[i].yminusx), ptr + 48, 48) - memory.copy(changetype(ge_cmov8_precomp[i].xy2d), ptr + 96, 48) - ge_cmov(t, ge_cmov8_precomp[i], equal(babs, i8(i + 1))) + memory.copy(changetype(ge_cmov8_precomp.yplusx), ptr, 48) + memory.copy(changetype(ge_cmov8_precomp.yminusx), ptr + 48, 48) + memory.copy(changetype(ge_cmov8_precomp.xy2d), ptr + 96, 48) + ge_cmov(t, ge_cmov8_precomp, equal(babs, i8(i + 1))) } fe_copy(minust.yplusx, t.yminusx) -- 2.52.0