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 4cbb6d22b7
commit bd8cf29176
10 changed files with 153 additions and 29 deletions
+25
View File
@@ -37,6 +37,8 @@ void JMAQuatLerp(__REGISTER const Quaternion* p, __REGISTER const Quaternion* q,
ps_sum0 dp, dp, dp, dp
}
#else
dp = p->x * q->x + p->y * q->y + p->z * q->z + p->w * q->w;
#endif // clang-format on
f32 local_78 = dp;
if (local_78 < 0.0) {
@@ -68,6 +70,12 @@ void JMAFastVECNormalize(__REGISTER const Vec* src, __REGISTER Vec* dst) {
fmuls vz, vz, length
stfs vz, dst->z
}
#else
f32 mag = src->x * src->x + src->y * src->y + src->z * src->z;
length = 1.0f / sqrtf(mag);
dst->x = src->x * length;
dst->y = src->y * length;
dst->z = src->z * length;
#endif // clang-format on
}
@@ -88,6 +96,10 @@ void JMAVECScaleAdd(__REGISTER const Vec* vec1, __REGISTER const Vec* vec2, __RE
ps_madds0 rz, v1z, scale, v2z
psq_st rz, 8(dst), 1, 0
}
#else
dst->x = vec1->x * scale + vec2->x;
dst->y = vec1->y * scale + vec2->y;
dst->z = vec1->z * scale + vec2->z;
#endif // clang-format on
}
@@ -122,5 +134,18 @@ void JMAMTXApplyScale(__REGISTER const Mtx src, __REGISTER Mtx dst, __REGISTER f
psq_st y, 24(dst), 0, 0
psq_st z, 40(dst), 0, 0
}
#else
dst[0][0] = src[0][0] * xScale;
dst[0][1] = src[0][1] * yScale;
dst[0][2] = src[0][2] * zScale;
dst[0][3] = src[0][3];
dst[1][0] = src[1][0] * xScale;
dst[1][1] = src[1][1] * yScale;
dst[1][2] = src[1][2] * zScale;
dst[1][3] = src[1][3];
dst[2][0] = src[2][0] * xScale;
dst[2][1] = src[2][1] * yScale;
dst[2][2] = src[2][2] * zScale;
dst[2][3] = src[2][3];
#endif // clang-format on
}