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