]> git.codecow.com Git - nano25519.git/commitdiff
Remove pointer arithmetic from base point entirely and put it in ge function.
authorChris Duncan <chris@codecow.com>
Fri, 21 Aug 2026 19:24:56 +0000 (12:24 -0700)
committerChris Duncan <chris@codecow.com>
Fri, 21 Aug 2026 19:24:56 +0000 (12:24 -0700)
src/assembly/base.ts
src/assembly/ge.ts

index 4508f59038bc4995c8f71e32ce548521632bba41..de9cab43f83a865a89c61950c2a176fba5cf8b42 100644 (file)
@@ -1,12 +1,7 @@
 //! SPDX-FileCopyrightText: 2013-2026 Frank Denis <j@pureftpd.org>
 //! 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<usize>(_base) + start
-}
-
-const _base = StaticArray.fromArray<i32>([
+export const base = StaticArray.fromArray<i32>([
        /* 0/31 */
        // yplusx
        25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605, 0, 0,
index f1c6a7e9203e4f6e41617a6a4ce66f60903bdd58..3093e069b1fcc1121097265b6620a77be23f467d 100644 (file)
@@ -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<usize>(base) + offset, 1152)
 
        ge_precomp_0(t)
        for (let i = 0; i < 8; i++) {