Add C versions of all ASM blocks (except THP)

This commit is contained in:
Luke Street
2026-02-28 18:10:14 -07:00
parent e29f1fabdc
commit 9853034e31
10 changed files with 153 additions and 29 deletions
+14
View File
@@ -151,6 +151,10 @@ inline void setTVec3f(const __REGISTER f32* vec_a, __REGISTER f32* vec_b) {
psq_st a_x, 0(vec_b), 0, 0
stfs b_x, 8(vec_b)
};
#else
vec_b[0] = vec_a[0];
vec_b[1] = vec_a[1];
vec_b[2] = vec_a[2];
#endif
}
@@ -163,6 +167,8 @@ inline float fsqrt_step(float mag) {
#ifdef __MWERKS__
f32 root = __frsqrte(mag);
return 0.5f * root * (3.0f - mag * (root * root));
#else
return 1.0f / sqrtf(mag);
#endif
}
@@ -182,6 +188,10 @@ inline void mulInternal(__REGISTER const f32* a, __REGISTER const f32* b, __REGI
psq_st x_y, 0(dst), 0, 0
};
dst[2] = a[2] * b[2];
#else
dst[0] = a[0] * b[0];
dst[1] = a[1] * b[1];
dst[2] = a[2] * b[2];
#endif
}
@@ -359,6 +369,10 @@ struct TVec3<f32> : public Vec {
fneg z, z
stfs z, 8(rdst)
};
#else
dst->x = -x;
dst->y = -y;
dst->z = -z;
#endif
}