From 4b44d059530c643284498d9aebb5a107c219a7b8 Mon Sep 17 00:00:00 2001 From: Carsten Larsen Date: Fri, 14 Jul 2017 10:53:37 +0200 Subject: [PATCH] Improve endianness detection --- src/real/prim.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/real/prim.h b/src/real/prim.h index 76fe7f87..9c844a78 100644 --- a/src/real/prim.h +++ b/src/real/prim.h @@ -52,6 +52,20 @@ double __kernel_sin(double x, double y, int iy); double __kernel_tan(double x, double y, int iy); int __kernel_rem_pio2(double* x, double* y, int e0, int nx, int prec, const int* ipio2); +/* Detect LE CPUs using compiler macro */ +#if !defined(__IEEE_LITTLE_ENDIAN) && !defined(__IEEE_BIG_ENDIAN) +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define __IEEE_LITTLE_ENDIAN +#endif +#endif + +/* Detect BE CPUs using compiler macro */ +#if !defined(__IEEE_LITTLE_ENDIAN) && !defined(__IEEE_BIG_ENDIAN) +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define __IEEE_BIG_ENDIAN +#endif +#endif + /* Detect ARM CPUs */ #if !defined(__IEEE_LITTLE_ENDIAN) && !defined(__IEEE_BIG_ENDIAN) #if defined(__arm__) || defined(__ARM_ARCH_2__) || \ @@ -106,7 +120,8 @@ int __kernel_rem_pio2(double* x, double* y, int e0, int nx, int prec, const int* /* Detect other BE CPUs */ #if !defined(__IEEE_LITTLE_ENDIAN) && !defined(__IEEE_BIG_ENDIAN) #if defined(PPCCPU) || defined(__PPC__) || \ - defined(__powerpc__) || defined(__powerpc64__) + defined(__powerpc__) || defined(__powerpc64__) \ + defined(__mips__) || defined(__mips) #define __IEEE_BIG_ENDIAN #endif #endif