aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386/fpu_control.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/fpu_control.h')
-rw-r--r--sysdeps/unix/sysv/linux/i386/fpu_control.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/fpu_control.h b/sysdeps/unix/sysv/linux/i386/fpu_control.h
index 56f42cd8e6..ed56d83943 100644
--- a/sysdeps/unix/sysv/linux/i386/fpu_control.h
+++ b/sysdeps/unix/sysv/linux/i386/fpu_control.h
@@ -63,8 +63,8 @@ Boston, MA 02111-1307, USA. */
#define _FPU_MASK_PM 0x20
/* precision control */
-#define _FPU_EXTENDED 0x300 /* RECOMMENDED */
-#define _FPU_DOUBLE 0x200
+#define _FPU_EXTENDED 0x300
+#define _FPU_DOUBLE 0x200 /* fdlibm requires double precision */
#define _FPU_SINGLE 0x0 /* DO NOT USE */
/* rounding control */
@@ -76,16 +76,13 @@ Boston, MA 02111-1307, USA. */
#define _FPU_RESERVED 0xF0C0 /* Reserved bits in cw */
-/* Now two recommended cw */
+/* The fdlibm code requires strict IEEE double precision arithmetic,
+ and no interrupts for exceptions, rounding to nearest. */
-/* Linux default:
- - extended precision
- - rounding to nearest
- - exceptions on overflow, zero divide and NaN */
-#define _FPU_DEFAULT 0x1372
+#define _FPU_DEFAULT 0x127f
/* IEEE: same as above, but exceptions */
-#define _FPU_IEEE 0x137f
+#define _FPU_IEEE 0x127f
/* Type of the control word. */
typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__)));