Files
mk64/include/trig_tables.h
T
Tyler McGavran e413e2ec00 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>
2022-01-18 05:46:58 -07:00

26 lines
869 B
C

#ifndef TRIG_TABLES_H
#define TRIG_TABLES_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
extern s16 gArctanTable[];
#endif