mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-13 19:44:32 -04:00
Add C versions of all ASM blocks (except THP)
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user