diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__isnan.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/__isnan.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__isnan.c b/mdk-stage1/dietlibc/lib/__isnan.c new file mode 100644 index 000000000..9d21e9824 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/__isnan.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +int __isnan(double d) { + unsigned long long *x=(unsigned long long *)&d; + return (*x==0x7FF8002000000000ll || *x==0x7FF0002000000000); +} + +#if 0 +TestFromIeeeExtended("7FFF0000000000000000"); /* +infinity */ +TestFromIeeeExtended("FFFF0000000000000000"); /* -infinity */ +TestFromIeeeExtended("7FFF8001000000000000"); /* Quiet NaN(1) */ +TestFromIeeeExtended("7FFF0001000000000000"); /* Signalling NaN(1) */ +TestFromIeeeExtended("3FFFFEDCBA9876543210"); /* accuracy test */ +#endif |