1 #ifndef __IEEE_BIG_ENDIAN 2 #ifndef __IEEE_LITTLE_ENDIAN 3 4 #if defined(__arm__) || defined(__thumb__) 5 /* ARM always has big-endian words. Within those words the byte ordering 6 appears to be big or little endian. Newlib doesn't seem to care about 7 the byte ordering within words. */ 8 #define __IEEE_BIG_ENDIAN 9 #endif 10 11 #ifdef __hppa__ 12 #define __IEEE_BIG_ENDIAN 13 #endif 14 15 #ifdef __sparc__ 16 #ifdef __LITTLE_ENDIAN_DATA__ 17 #define __IEEE_LITTLE_ENDIAN 18 #else 19 #define __IEEE_BIG_ENDIAN 20 #endif 21 #endif 22 23 #if defined(__m68k__) || defined(__mc68000__) 24 #define __IEEE_BIG_ENDIAN 25 #endif 26 27 #if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) 28 #define __IEEE_BIG_ENDIAN 29 #define __SMALL_BITFIELDS 30 #define _DOUBLE_IS_32BITS 31 #endif 32 33 #ifdef __H8500__ 34 #define __IEEE_BIG_ENDIAN 35 #define __SMALL_BITFIELDS 36 #define _DOUBLE_IS_32BITS 37 #endif 38 39 #ifdef __sh__ 40 #ifdef __LITTLE_ENDIAN__ 41 #define __IEEE_LITTLE_ENDIAN 42 #else 43 #define __IEEE_BIG_ENDIAN 44 #endif 45 #if defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) 46 #define _DOUBLE_IS_32BITS 47 #endif 48 #endif 49 50 #ifdef _AM29K 51 #define __IEEE_BIG_ENDIAN 52 #endif 53 54 #ifdef _WIN32 55 #define __IEEE_LITTLE_ENDIAN 56 #endif 57 58 #ifdef __i386__ 59 #define __IEEE_LITTLE_ENDIAN 60 #endif 61 62 #ifdef __i960__ 63 #define __IEEE_LITTLE_ENDIAN 64 #endif 65 66 #ifdef __M32R__ 67 #define __IEEE_BIG_ENDIAN 68 #endif 69 70 #ifdef __TIC80__ 71 #define __IEEE_LITTLE_ENDIAN 72 #endif 73 74 #ifdef __MIPSEL__ 75 #define __IEEE_LITTLE_ENDIAN 76 #endif 77 #ifdef __MIPSEB__ 78 #define __IEEE_BIG_ENDIAN 79 #endif 80 81 /* necv70 was __IEEE_LITTLE_ENDIAN. */ 82 83 #ifdef __W65__ 84 #define __IEEE_LITTLE_ENDIAN 85 #define __SMALL_BITFIELDS 86 #define _DOUBLE_IS_32BITS 87 #endif 88 89 #if defined(__Z8001__) || defined(__Z8002__) 90 #define __IEEE_BIG_ENDIAN 91 #endif 92 93 #ifdef __m88k__ 94 #define __IEEE_BIG_ENDIAN 95 #endif 96 97 #ifdef __mn10300__ 98 #define __IEEE_LITTLE_ENDIAN 99 #endif 100 101 #ifdef __mn10200__ 102 #define __IEEE_LITTLE_ENDIAN 103 #define __SMALL_BITFIELDS 104 #define _DOUBLE_IS_32BITS 105 #endif 106 107 #ifdef __v800 108 #define __IEEE_LITTLE_ENDIAN 109 #endif 110 111 #ifdef __v850 112 #define __IEEE_LITTLE_ENDIAN 113 #endif 114 115 #ifdef __D10V__ 116 #define __IEEE_BIG_ENDIAN 117 #define _DOUBLE_IS_32BITS 118 #define __SMALL_BITFIELDS 119 #endif 120 121 #ifdef __PPC__ 122 #if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) 123 #define __IEEE_BIG_ENDIAN 124 #else 125 #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) 126 #define __IEEE_LITTLE_ENDIAN 127 #endif 128 #endif 129 #endif 130 131 #ifdef __arc__ 132 #ifdef __big_endian__ 133 #define __IEEE_BIG_ENDIAN 134 #else 135 #define __IEEE_LITTLE_ENDIAN 136 #endif 137 #endif 138 139 #ifdef __fr30__ 140 #define __IEEE_BIG_ENDIAN 141 #endif 142 143 #ifdef __mcore__ 144 #define __IEEE_BIG_ENDIAN 145 #endif 146 147 #ifdef __ia64__ 148 #ifdef __BIG_ENDIAN__ 149 #define __IEEE_BIG_ENDIAN 150 #else 151 #define __IEEE_LITTLE_ENDIAN 152 #endif 153 #endif 154 155 #ifdef __AVR__ 156 #define __IEEE_LITTLE_ENDIAN 157 #define __SMALL_BITFIELDS 158 #define _DOUBLE_IS_32BITS 159 #endif 160 161 #if defined(__or32__) || defined(__or1k__) || defined(__or16__) 162 #define __IEEE_BIG_ENDIAN 163 #endif 164 165 166 #ifndef __IEEE_BIG_ENDIAN 167 #ifndef __IEEE_LITTLE_ENDIAN 168 #error Endianess not declared!! 169 #endif /* not __IEEE_LITTLE_ENDIAN */ 170 #endif /* not __IEEE_BIG_ENDIAN */ 171 172 #endif /* not __IEEE_LITTLE_ENDIAN */ 173 #endif /* not __IEEE_BIG_ENDIAN */ |