1 // System dependent IEEE floating-point coprocessor initialization.
16 #include "cl_float_config.h"
18 #if (defined(linux) || defined(__linux)) && (defined(FAST_FLOAT) || defined(FAST_DOUBLE))
20 // Damit Division durch 0.0 ein NaN und kein SIGFPE liefert:
21 // Entweder mit -lieee linken,
22 // oder libc-linux/sysdeps/linux/{i386,m68k}/ieee.c kopieren:
24 #include <fpu_control.h>
26 #if 0 // Leider gibt das einen Error, wenn man zusätzlich mit -lieee linkt.
27 #if defined(HAVE_FPU_CONTROL_T)
28 fpu_control_t __fpu_control = _FPU_IEEE;
30 unsigned short __fpu_control = _FPU_IEEE;
33 AT_INITIALIZATION(ieee)
35 #if defined(HAVE_FPU_CONTROL_T)
36 extern fpu_control_t __fpu_control;
37 __fpu_control = _FPU_IEEE;
38 #elif defined(HAVE_SETFPUCW)
39 __setfpucw(_FPU_IEEE);
41 extern unsigned short __fpu_control;
42 __fpu_control = _FPU_IEEE;
49 // This dummy links in this module whenever some module needs IEEE floats.
52 CL_PROVIDE_END(cl_ieee)