From e9c7f3a0d2b6d08d05af732d30849b7d2d864fa7 Mon Sep 17 00:00:00 2001 From: Nassim Amar Date: Sun, 1 Feb 2015 14:32:37 -0800 Subject: [PATCH] Fixed macro's to detect 64bit --- src/LinearMath/btScalar.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/LinearMath/btScalar.h b/src/LinearMath/btScalar.h index 356dda71c..abed6cbdd 100644 --- a/src/LinearMath/btScalar.h +++ b/src/LinearMath/btScalar.h @@ -418,7 +418,17 @@ SIMD_FORCE_INLINE btScalar btFmod(btScalar x,btScalar y) { return fmod(x,y); } SIMD_FORCE_INLINE btScalar btSqrt(btScalar y) { #ifdef USE_APPROXIMATION -#ifdef __arm__ +#ifdef __LP64__ + float xhalf = 0.5f*y; + int i = *(int*)&y; + i = 0x5f375a86 - (i>>1); + y = *(float*)&i; + y = y*(1.5f - xhalf*y*y); + y = y*(1.5f - xhalf*y*y); + y = y*(1.5f - xhalf*y*y); + y=1/y; + return y; +#else double x, z, tempf; unsigned long *tfptr = ((unsigned long *)&tempf) + 1; tempf = y; @@ -431,19 +441,9 @@ SIMD_FORCE_INLINE btScalar btSqrt(btScalar y) x = (btScalar(1.5)*x)-(x*x)*(x*z); x = (btScalar(1.5)*x)-(x*x)*(x*z); return x*y; -#elif __arm64__ - float xhalf = 0.5f*y; - int i = *(int*)&y; - i = 0x5f375a86 - (i>>1); - y = *(float*)&i; - y = y*(1.5f - xhalf*y*y); - y = y*(1.5f - xhalf*y*y); - y = y*(1.5f - xhalf*y*y); - y=1/y; - return y; #endif #else - return sqrtf(y); + return sqrtf(y); #endif } SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabsf(x); }