mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-07 03:58:32 -04:00
Match 4 functions in math_util, do some tidying up of imports for math_util (#144)
* Match func_802B5450, func_802B5F00, func_802B71CC * Match func_802B4FF8 Also do some import fixing Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
+14
-19
@@ -4,25 +4,7 @@
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
#include "types.h"
|
||||
|
||||
/*
|
||||
* The sine and cosine tables overlap, but "#define gCosineTable (gSineTable +
|
||||
* 0x400)" doesn't give expected codegen; gSineTable and gCosineTable need to
|
||||
* be different symbols for code to match. Most likely the tables were placed
|
||||
* adjacent to each other, and gSineTable cut short, such that reads overflow
|
||||
* into gCosineTable.
|
||||
*
|
||||
* These kinds of out of bounds reads are undefined behavior, and break on
|
||||
* e.g. GCC (which doesn't place the tables next to each other, and probably
|
||||
* exploits array sizes for range analysis-based optimizations as well).
|
||||
* Thus, for non-IDO compilers we use the standard-compliant version.
|
||||
*/
|
||||
extern f32 gSineTable[];
|
||||
#ifdef AVOID_UB
|
||||
#define gCosineTable (gSineTable + 0x400)
|
||||
#else
|
||||
extern f32 gCosineTable[];
|
||||
#endif
|
||||
#include "trig_tables.h"
|
||||
|
||||
//#define sins(x) gSineTable[(u16) (x) >> 4]
|
||||
//#define coss(x) gCosineTable[(u16) (x) >> 4]
|
||||
@@ -32,4 +14,17 @@ extern f32 gCosineTable[];
|
||||
|
||||
#define sqr(x) ((x) * (x))
|
||||
|
||||
s32 func_802B4FF8(Mat4, s32);
|
||||
void mtxf_identity(Mat4);
|
||||
void func_802B5398(Mat4, Mat4, s32);
|
||||
void func_802B5450(Mat4, Mat4, Mat4);
|
||||
void func_802B54EC(Mat4, Mat4, Mat4);
|
||||
void mtxf_translate(Mat4, Vec3f);
|
||||
void func_802B5F00(Mat4, f32);
|
||||
void func_802B71CC(Mat4, Mat4, Mat4);
|
||||
void func_802B75F8(Mtx*, Mat4);
|
||||
u32 func_802B7830(f32, f32);
|
||||
f32 sins(u16);
|
||||
f32 coss(u16);
|
||||
|
||||
#endif // MATH_UTIL_H
|
||||
|
||||
Reference in New Issue
Block a user