diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2002-05-22 06:58:53 +0400 |
---|---|---|
committer | Danny Smith <dannysmith@users.sourceforge.net> | 2002-05-22 06:58:53 +0400 |
commit | 16176e9f86e8cd4e2761be7387d45d061ed00794 (patch) | |
tree | 638ead2b4623ff106e39d01a9f7136a2accb8b00 | |
parent | 05ddbdd62b8adc8b2fef1c15d176cfadcd4be627 (diff) |
* mingwex/isnanl.c: New file.
-rw-r--r-- | winsup/mingw/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/mingw/mingwex/isnanl.c | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index d627bf108..852e777a8 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,7 @@ +2002-05-22 Danny Smith <dannysmith@users.sourceforge.net> + + * mingwex/isnanl.c: New file. + 2002-05-21 Danny Smith <dannysmith@users.sourceforge.net> * include/stdint.h: Include stddef.h to get 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); |