mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-06 17:32:26 -04:00
Remove use of mwcc 1.3.2r compiler, inline funcs with a local static variable disable data/rodata respectively.
This commit is contained in:
+2
-40
@@ -1,9 +1,6 @@
|
||||
#ifndef W_MATH_H
|
||||
#define W_MATH_H
|
||||
#include "types.h"
|
||||
|
||||
/* this is needed to keep $localstatic$ variables out of the rel */
|
||||
#ifndef OPTIMIZED_SQRTF
|
||||
extern inline float sqrtf(float x) {
|
||||
static const double _half = .5;
|
||||
static const double _three = 3.0;
|
||||
@@ -18,41 +15,6 @@ extern inline float sqrtf(float x) {
|
||||
}
|
||||
return x;
|
||||
}
|
||||
#else
|
||||
extern inline float sqrtf(float x) {
|
||||
volatile float y;
|
||||
if (x > 0.0f) {
|
||||
double guess = __frsqrte((double)x); // returns an approximation to
|
||||
guess = .5 * guess * (3.0 - guess * guess * x); // now have 12 sig bits
|
||||
guess = .5 * guess * (3.0 - guess * guess * x); // now have 24 sig bits
|
||||
guess = .5 * guess * (3.0 - guess * guess * x); // now have 32 sig bits
|
||||
y = (float)(x * guess);
|
||||
return y;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
#endif
|
||||
|
||||
// hack to get some functions matching where the static const locals are needed
|
||||
// disabled until static const locals are resolved
|
||||
/*
|
||||
extern inline float sqrtf2(float x)
|
||||
{
|
||||
static const double _half=.5;
|
||||
static const double _three=3.0;
|
||||
volatile float y;
|
||||
if(x > 0.0f)
|
||||
{
|
||||
double guess = __frsqrte((double)x); // returns an approximation to
|
||||
guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits
|
||||
guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits
|
||||
guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits
|
||||
y=(float)(x*guess);
|
||||
return y;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
*/
|
||||
|
||||
extern inline double fabs(double x) {
|
||||
return __fabs(x);
|
||||
@@ -91,8 +53,8 @@ extern inline double sqrt(double x) {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
f64 atan2(f64, f64);
|
||||
f64 acos(f32);
|
||||
double atan2(double, double);
|
||||
double acos(float);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef TYPES_H
|
||||
#define TYPES_H
|
||||
|
||||
#include "MSL_C/w_math.h"
|
||||
|
||||
typedef signed char s8;
|
||||
typedef signed short s16;
|
||||
typedef signed long s32;
|
||||
|
||||
Reference in New Issue
Block a user