summaryrefslogtreecommitdiff
path: root/include/JSystem
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
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')
-rw-r--r--include/JSystem/J2DGraph/J2DAnimation.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DSkinDeform.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h4
-rw-r--r--include/JSystem/J3DGraphBase/J3DTevs.h4
-rw-r--r--include/JSystem/J3DGraphBase/J3DTransform.h12
-rw-r--r--include/JSystem/JAudio2/JASDSPInterface.h2
-rw-r--r--include/JSystem/JAudio2/JASHeapCtrl.h12
-rw-r--r--include/JSystem/JGeometry.h16
-rw-r--r--include/JSystem/JMath/JMath.h15
-rw-r--r--include/JSystem/JMessage/resource.h2
10 files changed, 60 insertions, 11 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h
index cba04c924f..1b4f5c2038 100644
--- a/include/JSystem/J2DGraph/J2DAnimation.h
+++ b/include/JSystem/J2DGraph/J2DAnimation.h
@@ -495,6 +495,7 @@ inline f32 J2DHermiteInterpolation<s16>(register f32 pp1, register s16* pp2, reg
register s16* p6 = pp6;
register s16* p7 = pp7;
// clang-format off
+#ifdef __MWERKS__
asm {
psq_l ff2, 0(p2), 0x1, 5
psq_l ff0, 0(p5), 0x1, 5
@@ -517,6 +518,7 @@ inline f32 J2DHermiteInterpolation<s16>(register f32 pp1, register s16* pp2, reg
fmadds fout, ff4, ff2, fout
fsubs fout, fout, ff0
}
+#endif
// clang-format on
return fout;
}
diff --git a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h
index 2cb33d1393..5e03122ce3 100644
--- a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h
+++ b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h
@@ -101,6 +101,7 @@ public:
}; // Size: 0x14
inline void J3DFillZero32B(register void* param_0, register u32 param_1) {
+#ifdef __MWERKS__
asm {
srwi param_1, param_1, 5
mtctr param_1
@@ -109,6 +110,7 @@ inline void J3DFillZero32B(register void* param_0, register u32 param_1) {
addi param_0, param_0, 0x20
bdnz lbl_8032D948
}
+#endif
}
#endif /* J3DSKINDEFORM_H */
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index 80f1cdabe1..29fd75b208 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -56,18 +56,22 @@ struct J3DTextureSRTInfo {
register const f32* src = &other.mScaleX;
register f32* dst = &mScaleX;
register f32 xy;
+#ifdef __MWERKS__
asm {
psq_l xy, 0(src), 0, 0
psq_st xy, 0(dst), 0, 0
};
+#endif
// Unclear why there's a 4 byte copy here.
*(u32*)&mRotation = *(u32*)&other.mRotation;
src = &other.mTranslationX;
dst = &mTranslationX;
+#ifdef __MWERKS__
asm {
psq_l xy, 0(src), 0, 0
psq_st xy, 0(dst), 0, 0
};
+#endif
}
}; // Size: 0x14
diff --git a/include/JSystem/J3DGraphBase/J3DTevs.h b/include/JSystem/J3DGraphBase/J3DTevs.h
index 136df1f7a5..f25c0a1a11 100644
--- a/include/JSystem/J3DGraphBase/J3DTevs.h
+++ b/include/JSystem/J3DGraphBase/J3DTevs.h
@@ -240,14 +240,14 @@ struct J3DTevOrder : public J3DTevOrderInfo {
};
extern u8 j3dTevSwapTableTable[1024];
-extern u8 const data_804563F8;
+extern u8 const j3dDefaultTevSwapTableID;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevSwapModeTable {
- /* 8000E134 */ J3DTevSwapModeTable() { mIdx = data_804563F8; }
+ /* 8000E134 */ J3DTevSwapModeTable() { mIdx = j3dDefaultTevSwapTableID; }
J3DTevSwapModeTable(J3DTevSwapModeTableInfo const& info) {
mIdx = calcTevSwapTableID(info.field_0x0, info.field_0x1, info.field_0x2, info.field_0x3);
}
diff --git a/include/JSystem/J3DGraphBase/J3DTransform.h b/include/JSystem/J3DGraphBase/J3DTransform.h
index 9225c44605..28b79d8a9a 100644
--- a/include/JSystem/J3DGraphBase/J3DTransform.h
+++ b/include/JSystem/J3DGraphBase/J3DTransform.h
@@ -76,6 +76,7 @@ inline void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst) {
register f32 fr2;
register f32 fr1;
register f32 fr0;
+#ifdef __MWERKS__
asm {
psq_l fr4, 0(src), 0, 0
psq_l fr3, 8(src), 0, 0
@@ -88,6 +89,7 @@ inline void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst) {
psq_st fr1, 0x18(dst), 0, 0
stfs fr0, 0x20(dst)
}
+#endif
}
inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
@@ -97,6 +99,7 @@ inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
register f32 z2;
register f32 x_y3;
register f32 z3;
+#ifdef __MWERKS__
asm {
psq_l x_y1, 0(src), 0, 0
lfs z1, 8(src)
@@ -111,6 +114,7 @@ inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
psq_st x_y3, 24(dst), 0, 0
stfs z3, 0x20(dst)
}
+#endif
}
// regalloc issues
@@ -131,6 +135,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register Vec* vec, register Vec* d
register f32 fra2;
register f32 fr01;
register f32 fr00;
+#ifdef __MWERKS__
asm {
psq_l fr00, 0(vec), 0, 0
psq_l fr2, 0(mtx), 0, 0
@@ -153,6 +158,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register Vec* vec, register Vec* d
ps_sum0 fra6, fra5, fra6, fra5
psq_st fra6, 8(dst), 1, 0
}
+#endif
}
// regalloc issues
@@ -173,6 +179,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register SVec* vec, register SVec*
register f32 fra2;
register f32 fr01;
register f32 fr00;
+#ifdef __MWERKS__
asm {
psq_l fr00, 0(vec), 0, 7
psq_l fr2, 0(mtx), 0, 0
@@ -195,6 +202,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register SVec* vec, register SVec*
ps_sum0 fra6, fra5, fra6, fra5
psq_st fra6, 4(dst), 1, 7
}
+#endif
}
// regalloc issues
@@ -213,6 +221,7 @@ inline void J3DPSMulMtxVec(register Mtx3P mtx, register Vec* vec, register Vec*
register f32 fr2;
register f32 fr01;
register f32 fr00;
+#ifdef __MWERKS__
asm {
lis punit, PSMulUnit01@ha
psq_l fr00, 0(vec), 0, 0
@@ -239,6 +248,7 @@ inline void J3DPSMulMtxVec(register Mtx3P mtx, register Vec* vec, register Vec*
ps_sum0 fr6, fr5, fr6, fr5
psq_st fr6, 8(dst), 1, 0
}
+#endif
}
// regalloc issues
@@ -252,6 +262,7 @@ inline void J3DPSMulMtxVec(register Mtx3P mtx, register SVec* vec, register SVec
register f32 fr2;
register f32 fr01;
register f32 fr00;
+#ifdef __MWERKS__
asm {
lis punit, PSMulUnit01@ha
psq_l fr00, 0(vec), 0, 7
@@ -278,6 +289,7 @@ inline void J3DPSMulMtxVec(register Mtx3P mtx, register SVec* vec, register SVec
ps_sum0 fr6, fr5, fr6, fr5
psq_st fr6, 4(dst), 1, 7
}
+#endif
}
#endif /* J3DTRANSFORM_H */
diff --git a/include/JSystem/JAudio2/JASDSPInterface.h b/include/JSystem/JAudio2/JASDSPInterface.h
index 996053975b..370fe738e4 100644
--- a/include/JSystem/JAudio2/JASDSPInterface.h
+++ b/include/JSystem/JAudio2/JASDSPInterface.h
@@ -114,7 +114,7 @@ namespace JASDsp {
extern u8 const DSPADPCM_FILTER[64];
extern u32 const DSPRES_FILTER[320];
- extern u16 SEND_TABLE[12 + 12 /* padding */];
+ extern u16 SEND_TABLE[];
extern TChannel* CH_BUF;
extern FxBuf* FX_BUF;
extern f32 sDSPVolume;
diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h
index 9c174511ae..5eae318da5 100644
--- a/include/JSystem/JAudio2/JASHeapCtrl.h
+++ b/include/JSystem/JAudio2/JASHeapCtrl.h
@@ -99,6 +99,8 @@ public:
void free(void* ptr, u32 n) { JASGenericMemPool::free(ptr, n); }
};
+namespace JASKernel { JKRHeap* getSystemHeap(); };
+
/**
* @ingroup jsystem-jaudio
*
@@ -183,7 +185,7 @@ public:
}
void* alloc(u32 size) {
- T::Lock lock(&mMutex);
+ typename T::Lock lock(&mMutex);
if (field_0x18->getFreeSize() < size) {
if (ChunkSize < size) {
return NULL;
@@ -196,7 +198,7 @@ public:
}
void free(void* ptr) {
- T::Lock lock(&mMutex);
+ typename T::Lock lock(&mMutex);
MemoryChunk* chunk = field_0x18;
MemoryChunk* prevChunk = NULL;
while (chunk != NULL) {
@@ -269,17 +271,17 @@ template <typename T>
class JASMemPool_MultiThreaded : public JASGenericMemPool {
public:
void newMemPool(int param_0) {
- JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
+ typename JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
JASGenericMemPool::newMemPool(sizeof(T), param_0);
}
void* alloc(size_t count) {
- JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
+ typename JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
return JASGenericMemPool::alloc(count);
}
void free(void* ptr, u32 param_1) {
- JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
+ typename JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
JASGenericMemPool::free(ptr, param_1);
}
};
diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h
index 141b672366..281f7d5b40 100644
--- a/include/JSystem/JGeometry.h
+++ b/include/JSystem/JGeometry.h
@@ -117,12 +117,14 @@ inline void setTVec3f(const f32* vec_a, f32* vec_b) {
register f32 a_x;
register f32 b_x;
+#ifdef __MWERKS__
asm {
psq_l a_x, 0(v_a), 0, 0
lfs b_x, 8(v_a)
psq_st a_x, 0(v_b), 0, 0
stfs b_x, 8(v_b)
};
+#endif
}
// Until we figure out TVec3 ctors
@@ -188,6 +190,7 @@ struct TVec3<f32> : public Vec {
register f32 za;
register f32 zb;
register f32 z;
+#ifdef __MWERKS__
asm {
psq_l a_x_y, 0(srca), 0, 0
psq_l b_x_y, 0(srcb), 0, 0
@@ -198,6 +201,7 @@ struct TVec3<f32> : public Vec {
fmuls z, za, zb
stfs z, 8(dst)
};
+#endif
}
inline void mul(const TVec3<f32>& a) {
@@ -273,6 +277,7 @@ struct TVec3<f32> : public Vec {
register f32 x_y;
register f32* dst = &x;
register f32 zres;
+#ifdef __MWERKS__
asm {
psq_l x_y, 0(dst), 0, 0
psq_l z, 8(dst), 1, 0
@@ -281,6 +286,7 @@ struct TVec3<f32> : public Vec {
ps_muls0 zres, z, sc
psq_st zres, 8(dst), 1, 0
};
+#endif
}
void scale(register f32 sc, const TVec3<f32>& other) {
@@ -289,6 +295,7 @@ struct TVec3<f32> : public Vec {
register f32 x_y;
register f32* dst = &x;
register f32 zres;
+#ifdef __MWERKS__
asm {
psq_l x_y, 0(src), 0, 0
psq_l z, 8(src), 1, 0
@@ -297,6 +304,7 @@ struct TVec3<f32> : public Vec {
ps_muls0 zres, z, sc
psq_st zres, 8(dst), 1, 0
};
+#endif
}
void scaleAdd(register f32 sc, const TVec3<f32>& a, const TVec3<f32>& b) {
@@ -308,6 +316,7 @@ struct TVec3<f32> : public Vec {
const register f32* src = &x;
register f32 x_y;
register f32 z;
+#ifdef __MWERKS__
asm {
psq_l x_y, 0(src), 0, 0
ps_neg x_y, x_y
@@ -316,6 +325,7 @@ struct TVec3<f32> : public Vec {
fneg z, z
stfs z, 8(rdst)
};
+#endif
}
void negate() {
@@ -371,6 +381,7 @@ struct TVec3<f32> : public Vec {
register f32 otheryz;
register f32 otherxy;
register f32 thisxy;
+#ifdef __MWERKS__
asm {
psq_l thisyz, 4(pThis), 0, 0
psq_l otheryz, 4(pOther), 0, 0
@@ -380,6 +391,7 @@ struct TVec3<f32> : public Vec {
ps_madd otheryz, thisxy, otherxy, thisyz
ps_sum0 res, otheryz, thisyz, thisyz
};
+#endif
return res;
}
@@ -462,7 +474,7 @@ struct TVec2 {
template <class T>
struct TBox {
TBox() : i(), f() {}
- TBox(const TBox& other) : i(other.f), f(other.y) {}
+ TBox(const TBox& other) : i(other.i), f(other.f) {}
T i, f;
};
@@ -510,7 +522,7 @@ struct TBox2 : TBox<TVec2<T> > {
void set(const TBox2& other) { set(other.i, other.f); }
void set(const TVec2<f32>& i, const TVec2<f32>& f) { this->i.set(i), this->f.set(f); }
- void set(f32 x0, f32 y0, f32 x1, f32 y1) { i.set(x0, y0); f.set(x1, y1); }
+ void set(f32 x0, f32 y0, f32 x1, f32 y1) { this->i.set(x0, y0); this->f.set(x1, y1); }
};
// clang-format on
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
diff --git a/include/JSystem/JMessage/resource.h b/include/JSystem/JMessage/resource.h
index a322c5b952..4a4b990dc3 100644
--- a/include/JSystem/JMessage/resource.h
+++ b/include/JSystem/JMessage/resource.h
@@ -114,7 +114,7 @@ struct TResourceContainer {
static JMessage::locale::parseCharacter_function sapfnParseCharacter_[5];
/* 0x00 */ u8 mEncodingType;
- /* 0x04 */ int (*pfnParseCharacter_)(const char** string) const;
+ /* 0x04 */ int (*pfnParseCharacter_)(const char** string);
/* 0x08 */ TCResource resContainer_;
/* 0x18 */ TResource_color resColor_;
};