diff options
Diffstat (limited to 'winsup/mingw/mingwex/isnanf.c')
-rw-r--r-- | winsup/mingw/mingwex/isnanf.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/winsup/mingw/mingwex/isnanf.c b/winsup/mingw/mingwex/isnanf.c new file mode 100644 index 000000000..73fe0eb02 --- /dev/null +++ b/winsup/mingw/mingwex/isnanf.c @@ -0,0 +1,12 @@ +#include <math.h> +int +__isnanf (float _x) +{ + unsigned short _sw; + __asm__ ("fxam;" + "fstsw %%ax": "=a" (_sw) : "t" (_x) ); + return (_sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) + == FP_NAN; +} + +int __attribute__ ((alias ("__isnanf"))) isnanf (float); |