const minust = changetype<usize>(new StaticArray<i32>(36))
//@ts-expect-error
@inline
-function ge_cmov8_base (t: ge_precomp, offset: i32, b: i8): void {
+function ge_cmov8_base (t: ge_precomp, bp: usize, b: i8): void {
const bnegative: u8 = negative(b)
const babs: u8 = b - (((-bnegative) & b) * (i8(1) << 1))
ge_precomp_0(t)
- const base_ptr = base + offset
-
- // base pointer offset = 144n = (4 bytes * 12 values * 3 fields) * n
- ge_cmov(t, base_ptr, equal(babs, 1))
- ge_cmov(t, base_ptr + 144, equal(babs, 2))
- ge_cmov(t, base_ptr + 288, equal(babs, 3))
- ge_cmov(t, base_ptr + 432, equal(babs, 4))
- ge_cmov(t, base_ptr + 576, equal(babs, 5))
- ge_cmov(t, base_ptr + 720, equal(babs, 6))
- ge_cmov(t, base_ptr + 864, equal(babs, 7))
- ge_cmov(t, base_ptr + 1008, equal(babs, 8))
+
+ // base pointer offset += 144n = (4 bytes * 12 values * 3 fields) * n
+ ge_cmov(t, bp, equal(babs, 1))
+ ge_cmov(t, bp + 144, equal(babs, 2))
+ ge_cmov(t, bp + 288, equal(babs, 3))
+ ge_cmov(t, bp + 432, equal(babs, 4))
+ ge_cmov(t, bp + 576, equal(babs, 5))
+ ge_cmov(t, bp + 720, equal(babs, 6))
+ ge_cmov(t, bp + 864, equal(babs, 7))
+ ge_cmov(t, bp + 1008, equal(babs, 8))
fe_memcopy(minust, changetype<usize>(t.yminusx))
fe_memcopy(minust + 48, changetype<usize>(t.yplusx))
ge_p3_0(h)
- // base pointer = 4 bytes * 12 values * 3 fe * 8 ge = 1152 bytes
+ // base pointer offset = 4 bytes * 12 values * 3 fe * 8 ge = 1152 bytes
for (let i = 1, bp = 0; i < 64; i += 2, bp += 1152) {
- ge_cmov8_base(t, bp, e[i])
+ ge_cmov8_base(t, base + bp, e[i])
ge_add_precomp(r, h, t)
ge_p1p1_to_p3(h, r)
}
ge_p2_dbl(r, s)
ge_p1p1_to_p3(h, r)
- // base pointer = 4 bytes * 12 values * 3 fe * 8 ge = 1152 bytes
+ // base pointer offset = 4 bytes * 12 values * 3 fe * 8 ge = 1152 bytes
for (let i = 0, bp = 0; i < 64; i += 2, bp += 1152) {
- ge_cmov8_base(t, bp, e[i])
+ ge_cmov8_base(t, base + bp, e[i])
ge_add_precomp(r, h, t)
ge_p1p1_to_p3(h, r)
}