From: Chris Duncan Date: Fri, 21 Aug 2026 19:24:56 +0000 (-0700) Subject: Remove pointer arithmetic from base point entirely and put it in ge function. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=fe98b3236ce76827b7f6f8b36352e8ecb93953d7;p=nano25519.git Remove pointer arithmetic from base point entirely and put it in ge function. --- diff --git a/src/assembly/base.ts b/src/assembly/base.ts index 4508f59..de9cab4 100644 --- a/src/assembly/base.ts +++ b/src/assembly/base.ts @@ -1,12 +1,7 @@ //! SPDX-FileCopyrightText: 2013-2026 Frank Denis //! SPDX-License-Identifier: ISC -export function base (pos: i32): usize { - const start: usize = (pos << 10) + (pos << 7) // 1152 = 4 bytes * 12 values * 3 fe * 8 ge - return changetype(_base) + start -} - -const _base = StaticArray.fromArray([ +export const base = StaticArray.fromArray([ /* 0/31 */ // yplusx 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605, 0, 0, diff --git a/src/assembly/ge.ts b/src/assembly/ge.ts index f1c6a7e..3093e06 100644 --- a/src/assembly/ge.ts +++ b/src/assembly/ge.ts @@ -49,7 +49,8 @@ function ge_cmov8_base (t: ge_precomp, pos: i32, b: i8): void { const minust = ge_cmov8_minust const bnegative: u8 = negative(b) const babs: u8 = b - (((-bnegative) & b) * (i8(1) << 1)) - memory.copy(ge_cmov8_precomp_buffer, base(pos), 1152) + const offset = pos * 1152 // 4 bytes * 12 values * 3 fe * 8 ge + memory.copy(ge_cmov8_precomp_buffer, changetype(base) + offset, 1152) ge_precomp_0(t) for (let i = 0; i < 8; i++) {