summaryrefslogtreecommitdiff
path: root/libm/fp_private.h
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2005-12-14 02:33:36 +0000
committerEric Andersen <andersen@codepoet.org>2005-12-14 02:33:36 +0000
commit7635b30f9d62e33b057d830780a937c6c1d140f5 (patch)
tree9991bb6bc9f6233ed784521c588cf9e90c8520b3 /libm/fp_private.h
parentf32600208f4e9db972eb47f7d4959994b31199e6 (diff)
Fixup byte order handling. Not all architectures define __BIG_ENDIAN__ so i.e.
on big endian mips the code is compiled as little-endian and the wrong half of the 64-bit point value is examined to check for NaN, etc. This bug also broke fpclassify(), isfinite(), isnormal(), isinf(), finite(), and signbit().
Diffstat (limited to 'libm/fp_private.h')
-rw-r--r--libm/fp_private.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libm/fp_private.h b/libm/fp_private.h
index 505400e33..0ddb616c4 100644
--- a/libm/fp_private.h
+++ b/libm/fp_private.h
@@ -70,10 +70,11 @@
*******************************************************************************/
#include <stdint.h>
+#include <endian.h>
typedef struct /* Hex representation of a double. */
{
-#if defined(__BIG_ENDIAN__)
+#if (__BYTE_ORDER == __BIG_ENDIAN)
uint32_t high;
uint32_t low;
#else