Improving compatibility with standard cpp compiler (#2920)

* Improving compatibility with standard cpp compiler

* Add __REGISTER macro for non mwcc compatibility

* Fix for PR comments

* fix missing define for revolution

* Simplifying cSAngle conversion
This commit is contained in:
kipcode66
2025-12-07 00:08:05 -05:00
committed by GitHub
parent 7ac2c38caf
commit fc31053cb6
68 changed files with 1417 additions and 1399 deletions
+6 -6
View File
@@ -4,13 +4,13 @@
#include "JSystem/J3DGraphBase/J3DSys.h"
// matches debug
inline f32 J3DCalcZValue(register MtxP m, register Vec v) {
inline f32 J3DCalcZValue(__REGISTER MtxP m, __REGISTER Vec v) {
#ifdef __MWERKS__
register f32 temp_f4;
register f32 out;
register f32 temp_f0;
register f32 temp_f2;
register f32 temp_f1 = 1.0f;
__REGISTER f32 temp_f4;
__REGISTER f32 out;
__REGISTER f32 temp_f0;
__REGISTER f32 temp_f2;
__REGISTER f32 temp_f1 = 1.0f;
// clang-format off
asm {
+3 -3
View File
@@ -54,9 +54,9 @@ struct J3DTextureSRTInfo {
inline void operator=(J3DTextureSRTInfo const& other) {
#ifdef __MWERKS__
register const f32* src = &other.mScaleX;
register f32* dst = &mScaleX;
register f32 xy;
__REGISTER const f32* src = &other.mScaleX;
__REGISTER f32* dst = &mScaleX;
__REGISTER f32 xy;
asm {
psq_l xy, 0(src), 0, 0
psq_st xy, 0(dst), 0, 0
+21 -21
View File
@@ -23,10 +23,10 @@ struct J3DTransformInfo {
} */
#ifdef __MWERKS__
inline J3DTransformInfo& operator=(const register J3DTransformInfo& b) {
register const J3DTransformInfo& var_r31 = b;
register J3DTransformInfo& var_r30 = *this;
register f32 var_f31;
inline J3DTransformInfo& operator=(const __REGISTER J3DTransformInfo& b) {
__REGISTER const J3DTransformInfo& var_r31 = b;
__REGISTER J3DTransformInfo& var_r30 = *this;
__REGISTER f32 var_f31;
asm {
psq_l var_f31, J3DTransformInfo.mScale(var_r31), 0, 0
psq_st var_f31, J3DTransformInfo.mScale(var_r30), 0, 0
@@ -64,13 +64,13 @@ void J3DScaleNrmMtx33(f32 (*)[3], const Vec&);
void J3DMtxProjConcat(f32 (*)[4], f32 (*)[4], f32 (*)[4]);
void J3DPSMtxArrayConcat(f32 (*)[4], f32 (*)[4], f32 (*)[4], u32);
inline void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst) {
inline void J3DPSMtx33Copy(__REGISTER Mtx3P src, __REGISTER Mtx3P dst) {
#ifdef __MWERKS__
register f32 fr4;
register f32 fr3;
register f32 fr2;
register f32 fr1;
register f32 fr0;
__REGISTER f32 fr4;
__REGISTER f32 fr3;
__REGISTER f32 fr2;
__REGISTER f32 fr1;
__REGISTER f32 fr0;
asm {
psq_l fr4, 0(src), 0, 0
@@ -87,14 +87,14 @@ inline void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst) {
#endif
}
inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
inline void J3DPSMtx33CopyFrom34(__REGISTER MtxP src, __REGISTER Mtx3P dst) {
#ifdef __MWERKS__
register f32 x_y1;
register f32 z1;
register f32 x_y2;
register f32 z2;
register f32 x_y3;
register f32 z3;
__REGISTER f32 x_y1;
__REGISTER f32 z1;
__REGISTER f32 x_y2;
__REGISTER f32 z2;
__REGISTER f32 x_y3;
__REGISTER f32 z3;
asm {
psq_l x_y1, 0(src), 0, 0
lfs z1, 8(src)
@@ -112,7 +112,7 @@ inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
#endif
}
inline void J3DPSMulMtxVec(register MtxP mtx, register Vec* vec, register Vec* dst) {
inline void J3DPSMulMtxVec(__REGISTER MtxP mtx, __REGISTER Vec* vec, __REGISTER Vec* dst) {
#ifdef __MWERKS__
asm {
psq_l f0, 0(vec), 0, 0
@@ -139,7 +139,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register Vec* vec, register Vec* d
#endif
}
inline void J3DPSMulMtxVec(register MtxP mtx, register S16Vec* vec, register S16Vec* dst) {
inline void J3DPSMulMtxVec(__REGISTER MtxP mtx, __REGISTER S16Vec* vec, __REGISTER S16Vec* dst) {
#ifdef __MWERKS__
asm {
psq_l f0, 0(vec), 0, 7
@@ -166,7 +166,7 @@ inline void J3DPSMulMtxVec(register MtxP mtx, register S16Vec* vec, register S16
#endif
}
inline void J3DPSMulMtxVec(register Mtx3P mtx, register Vec* vec, register Vec* dst) {
inline void J3DPSMulMtxVec(__REGISTER Mtx3P mtx, __REGISTER Vec* vec, __REGISTER Vec* dst) {
#ifdef __MWERKS__
asm {
lis r6, PSMulUnit01@ha
@@ -197,7 +197,7 @@ inline void J3DPSMulMtxVec(register Mtx3P mtx, register Vec* vec, register Vec*
#endif
}
inline void J3DPSMulMtxVec(register Mtx3P mtx, register S16Vec* vec, register S16Vec* dst) {
inline void J3DPSMulMtxVec(__REGISTER Mtx3P mtx, __REGISTER S16Vec* vec, __REGISTER S16Vec* dst) {
#ifdef __MWERKS__
asm {
lis r6, PSMulUnit01@ha