summaryrefslogtreecommitdiffstats
path: root/lib/libc/ia64/gen/infinity.c
diff options
context:
space:
mode:
authormike <mike@FreeBSD.org>2003-02-26 16:04:34 +0000
committermike <mike@FreeBSD.org>2003-02-26 16:04:34 +0000
commit39b6d14ab492b391ff4eee3737dd03a2ddbb33fa (patch)
treecd87c888cf7fce15baf29bb4d3650c69a6f4be10 /lib/libc/ia64/gen/infinity.c
parentc65b6d4325cbd6ac51155406331d8f9895f2f058 (diff)
downloadFreeBSD-src-39b6d14ab492b391ff4eee3737dd03a2ddbb33fa.zip
FreeBSD-src-39b6d14ab492b391ff4eee3737dd03a2ddbb33fa.tar.gz
ia64 actually uses 80-bit long doubles and must support big and little
endian at compile-time. Reviewed by: das
Diffstat (limited to 'lib/libc/ia64/gen/infinity.c')
-rw-r--r--lib/libc/ia64/gen/infinity.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/libc/ia64/gen/infinity.c b/lib/libc/ia64/gen/infinity.c
index ac7fc38..1ae92a8 100644
--- a/lib/libc/ia64/gen/infinity.c
+++ b/lib/libc/ia64/gen/infinity.c
@@ -30,10 +30,19 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <sys/endian.h>
#include <math.h>
/* bytes for +Infinity on an ia64 (IEEE double format) */
+#if _BYTE_ORDER == _LITTLE_ENDIAN
const union __infinity_un __infinity = { { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } };
+#else /* _BIG_ENDIAN */
+const union __infinity_un __infinity = { { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } };
+#endif
/* bytes for NaN */
+#if _BYTE_ORDER == _LITTLE_ENDIAN
const union __nan_un __nan = { { 0, 0, 0xc0, 0xff } };
+#else /* _BIG_ENDIAN */
+const union __nan_un __nan = { { 0xff, 0xc0, 0, 0 } };
+#endif
OpenPOWER on IntegriCloud