2015-01-26 20:36:14 +00:00
|
|
|
diff -up mp-35060ba2a59f2b0f0fd622ed9df678f142f846ed/src/asl/solvers/fpinit.c.orig mp-35060ba2a59f2b0f0fd622ed9df678f142f846ed/src/asl/solvers/fpinit.c
|
2015-01-28 11:30:16 +00:00
|
|
|
--- mp-35060ba2a59f2b0f0fd622ed9df678f142f846ed/src/asl/solvers/fpinit.c.orig 2015-01-28 09:21:01.817927788 -0200
|
|
|
|
+++ mp-35060ba2a59f2b0f0fd622ed9df678f142f846ed/src/asl/solvers/fpinit.c 2015-01-28 09:24:21.273691331 -0200
|
|
|
|
@@ -125,14 +125,18 @@ fpinit_ASL(Void)
|
|
|
|
_FPU_GETCW(__fpu_control);
|
2015-01-26 20:36:14 +00:00
|
|
|
__fpu_control &= ~_FPU_EXTENDED; /* clear rounding precision bits */
|
|
|
|
__fpu_control |= _FPU_DOUBLE; /* set the ones we want set */
|
2015-01-28 11:30:16 +00:00
|
|
|
+ _FPU_SETCW(__fpu_control);
|
2015-01-26 20:36:14 +00:00
|
|
|
#else
|
|
|
|
-#ifdef _FPU_IEEE
|
|
|
|
+#if defined(_FPU_IEEE) && defined(_FPU_EXTENDED) && defined(_FPU_DOUBLE)
|
|
|
|
__fpu_control = _FPU_IEEE - _FPU_EXTENDED + _FPU_DOUBLE;
|
2015-01-28 11:30:16 +00:00
|
|
|
-#else
|
|
|
|
+ _FPU_SETCW(__fpu_control);
|
|
|
|
+#elif defined(__i386__) || defined(__x86_64__)
|
2015-01-26 20:36:14 +00:00
|
|
|
__fpu_control = 0x27f;
|
2015-01-28 11:30:16 +00:00
|
|
|
+ _FPU_SETCW(__fpu_control);
|
|
|
|
+#elif defined(FE_ALL_EXCEPT)
|
|
|
|
+ fedisableexcept(FE_ALL_EXCEPT);
|
|
|
|
#endif
|
|
|
|
#endif /* ASL_FPINIT_KEEP_TRAPBITS */
|
|
|
|
- _FPU_SETCW(__fpu_control);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
#endif /*} NO_fpu_control */
|