const babs: u8 = b - (((-bnegative) & b) * (i8(1) << 1))
ge_precomp_0(t)
- for (let i = 0; i < 8; i++) {
- const baseptr = base + offset + (i * 144) // 4 bytes * 12 values * 3 fields
- ge_cmov(t, baseptr, equal(babs, i8(i + 1)))
- }
+ 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))
fe_memcopy(minust, changetype<usize>(t.yminusx))
fe_memcopy(minust + 48, changetype<usize>(t.yplusx))