1 #ifndef __IEEE_BIG_ENDIAN 2 #ifndef __IEEE_LITTLE_ENDIAN 3 4 #ifdef __alpha__ 5 #define __IEEE_LITTLE_ENDIAN 6 #endif 7 8 #if defined(__arm__) || defined(__thumb__) 9 /* ARM traditionally used big-endian words; and within those words the 10 byte ordering was big or little endian depending upon the target. 11 Modern floating-point formats are naturally ordered; in this case 12 __VFP_FP__ will be defined, even if soft-float. */ 13 #ifdef __VFP_FP__ 14 #ifdef __ARMEL__ 15 #define __IEEE_LITTLE_ENDIAN 16 #else 17 #define __IEEE_BIG_ENDIAN 18 #endif 19 #else 20 #define __IEEE_BIG_ENDIAN 21 #ifdef __ARMEL__ 22 #define __IEEE_BYTES_LITTLE_ENDIAN 23 #endif 24 #endif 25 #endif 26 27 #ifdef __hppa__ 28 #define __IEEE_BIG_ENDIAN 29 #endif 30 31 #if defined (__sparc) || defined (__sparc__) 32 #define __IEEE_BIG_ENDIAN 33 #endif 34 35 #if defined(__m68k__) || defined(__mc68000__) 36 #define __IEEE_BIG_ENDIAN 37 #endif 38 39 #if defined (__H8300__) || defined (__H8300H__) 40 #define __IEEE_BIG_ENDIAN 41 #define __SMALL_BITFIELDS 42 #define _DOUBLE_IS_32BITS 43 #endif 44 45 #ifdef __H8500__ 46 #define __IEEE_BIG_ENDIAN 47 #define __SMALL_BITFIELDS 48 #define _DOUBLE_IS_32BITS 49 #endif 50 51 #ifdef __sh__ 52 #ifdef __LITTLE_ENDIAN__ 53 #define __IEEE_LITTLE_ENDIAN 54 #else 55 #define __IEEE_BIG_ENDIAN 56 #endif 57 58 #ifdef __SH3E__ 59 #define _DOUBLE_IS_32BITS 60 #endif 61 #endif 62 63 #ifdef _AM29K 64 #define __IEEE_BIG_ENDIAN 65 #endif 66 67 #ifdef __i386__ 68 #define __IEEE_LITTLE_ENDIAN 69 #endif 70 71 #ifdef __x86_64__ 72 #define __IEEE_LITTLE_ENDIAN 73 #endif 74 75 #ifdef __i960__ 76 #define __IEEE_LITTLE_ENDIAN 77 #endif 78 79 #ifdef __MIPSEL__ 80 #define __IEEE_LITTLE_ENDIAN 81 #endif 82 83 #ifdef __MIPSEB__ 84 #define __IEEE_BIG_ENDIAN 85 #endif 86 87 #ifdef __pj__ 88 #ifdef __pjl__ 89 #define __IEEE_LITTLE_ENDIAN 90 #else 91 #define __IEEE_BIG_ENDIAN 92 #endif 93 #endif 94 95 /* necv70 was __IEEE_LITTLE_ENDIAN. */ 96 97 #ifdef __W65__ 98 #define __IEEE_LITTLE_ENDIAN 99 #define __SMALL_BITFIELDS 100 #define _DOUBLE_IS_32BITS 101 #endif 102 103 #if defined(__Z8001__) || defined(__Z8002__) 104 #define __IEEE_BIG_ENDIAN 105 #endif 106 107 #ifdef __m88k__ 108 #define __IEEE_BIG_ENDIAN 109 #endif 110 111 #ifdef __v800 112 #define __IEEE_LITTLE_ENDIAN 113 #endif 114 115 #if defined (__PPC__) || defined (__ppc__) 116 #if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) \ 117 || defined (__APPLE__) 118 #define __IEEE_BIG_ENDIAN 119 #else 120 #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(__WIN32__) && __WIN32__) 121 #define __IEEE_LITTLE_ENDIAN 122 #endif 123 #endif 124 #endif 125 126 #ifdef __fr30__ 127 #define __IEEE_BIG_ENDIAN 128 #endif 129 130 #ifdef __mcore__ 131 #define __IEEE_BIG_ENDIAN 132 #endif 133 134 135 #ifdef __ia64__ 136 #ifdef __BIG_ENDIAN__ 137 #define __IEEE_BIG_ENDIAN 138 #else 139 #define __IEEE_LITTLE_ENDIAN 140 #endif 141 #endif 142 143 #ifdef __s390__ 144 #define __IEEE_BIG_ENDIAN 145 #endif 146 147 #ifndef __IEEE_BIG_ENDIAN 148 #ifndef __IEEE_LITTLE_ENDIAN 149 #error Endianess not declared!! 150 #endif /* not __IEEE_LITTLE_ENDIAN */ 151 #endif /* not __IEEE_BIG_ENDIAN */ 152 153 #endif /* not __IEEE_LITTLE_ENDIAN */ 154 #endif /* not __IEEE_BIG_ENDIAN */ 155 156