diff options
Diffstat (limited to 'winsup/mingw/mingwex/isnanl.c')
-rw-r--r-- | winsup/mingw/mingwex/isnanl.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/winsup/mingw/mingwex/isnanl.c b/winsup/mingw/mingwex/isnanl.c new file mode 100644 index 000000000..86d0088b4 --- /dev/null +++ b/winsup/mingw/mingwex/isnanl.c @@ -0,0 +1,13 @@ +#include <math.h> + +int +__isnanl (long double _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 ("__isnanl"))) isnanl (long double); |