summaryrefslogtreecommitdiff
path: root/include/JSystem/JMath
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2025-01-27 01:01:05 -0500
committerGitHub <noreply@github.com>2025-01-26 22:01:05 -0800
commitbf4053fefa301a307065a07ffc4c3f9f970f2638 (patch)
treeafc005dc11ce0d21654c5023349ab074683a1f30 /include/JSystem/JMath
parent5644936254b6617875c5a55caeae3e2526849d5a (diff)
Fix spurious differences when using `ninja diff` (#2294)
* Fix spurious differences when using ninja diff * Fix some clangd errors/warnings
Diffstat (limited to 'include/JSystem/JMath')
-rw-r--r--include/JSystem/JMath/JMath.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/JSystem/JMath/JMath.h b/include/JSystem/JMath/JMath.h
index e37460e115..0968feed00 100644
--- a/include/JSystem/JMath/JMath.h
+++ b/include/JSystem/JMath/JMath.h
@@ -2,6 +2,7 @@
#define JMATH_H
#include "dolphin/mtx.h"
+#include "math.h"
void JMAMTXApplyScale(const Mtx, Mtx, f32, f32, f32);
void JMAEulerToQuat(s16 param_0, s16 param_1, s16 param_2, Quaternion* param_3);
@@ -21,9 +22,11 @@ inline f32 JMAFastReciprocal(f32 value) {
inline float __frsqrtes(register double f) {
register float out;
// clang-format off
+#ifdef __MWERKS__
asm {
frsqrte out, f
}
+#endif
// clang-format on
return out;
}
@@ -31,9 +34,11 @@ inline float __frsqrtes(register double f) {
inline f32 JMAFastSqrt(register f32 input) {
if (input > 0.0f) {
register f32 out;
+#ifdef __MWERKS__
asm {
frsqrte out, input
}
+#endif
return out * input;
} else {
return input;
@@ -51,6 +56,7 @@ inline f32 JMAHermiteInterpolation(register f32 p1, register f32 p2, register f3
register f32 ff27;
register f32 ff26;
// clang-format off
+#ifdef __MWERKS__
asm {
fsubs ff31, p1, p2
fsubs ff30, p5, p2
@@ -67,6 +73,7 @@ inline f32 JMAHermiteInterpolation(register f32 p1, register f32 p2, register f3
fnmsubs ff25,ff31,ff25,ff26
}
+#endif
// clang-format on
return ff25;
}
@@ -80,18 +87,21 @@ inline f32 fastReciprocal(f32 value) {
inline void gekko_ps_copy3(register void* dst, register const void* src) {
register f32 src0;
register f32 src1;
+#ifdef __MWERKS__
asm {
psq_l src0, 0(src), 0, 0
lfs src1, 8(src)
psq_st src0, 0(dst), 0, 0
stfs src1, 8(dst)
};
+#endif
}
inline void gekko_ps_copy6(register void* dst, register const void* src) {
register f32 src0;
register f32 src1;
register f32 src2;
+#ifdef __MWERKS__
asm {
psq_l src0, 0(src), 0, 0
psq_l src1, 8(src), 0, 0
@@ -100,6 +110,7 @@ inline void gekko_ps_copy6(register void* dst, register const void* src) {
psq_st src1, 8(dst), 0, 0
psq_st src2, 16(dst), 0, 0
};
+#endif
}
inline void gekko_ps_copy12(register void* dst, register const void* src) {
@@ -109,6 +120,7 @@ inline void gekko_ps_copy12(register void* dst, register const void* src) {
register f32 src3;
register f32 src4;
register f32 src5;
+#ifdef __MWERKS__
asm {
psq_l src0, 0(src), 0, 0
psq_l src1, 8(src), 0, 0
@@ -123,6 +135,7 @@ inline void gekko_ps_copy12(register void* dst, register const void* src) {
psq_st src4, 32(dst), 0, 0
psq_st src5, 40(dst), 0, 0
};
+#endif
}
inline void gekko_ps_copy16(register void* dst, register const void* src) {
@@ -134,6 +147,7 @@ inline void gekko_ps_copy16(register void* dst, register const void* src) {
register f32 src5;
register f32 src6;
register f32 src7;
+#ifdef __MWERKS__
asm {
psq_l src0, 0(src), 0, 0
psq_l src1, 8(src), 0, 0
@@ -152,6 +166,7 @@ inline void gekko_ps_copy16(register void* dst, register const void* src) {
psq_st src6, 48(dst), 0, 0
psq_st src7, 56(dst), 0, 0
};
+#endif
}
}; // namespace JMath