Create embedded-5_0-branch branch for development on ARM embedded cores.
[official-gcc.git] / embedded-5_0-branch / libjava / classpath / native / fdlibm / ieeefp.h
blob7ef2ae7e8b70e68fe0e13e33bd63b72b58d82d90
1 #ifndef __CLASSPATH_IEEEFP_H__
2 #define __CLASSPATH_IEEEFP_H__
4 #ifndef __IEEE_BIG_ENDIAN
5 #ifndef __IEEE_LITTLE_ENDIAN
7 #ifdef __aarch64__
8 #ifdef __AARCH64EB__
9 #define __IEEE_BIG_ENDIAN
10 #else
11 #define __IEEE_LITTLE_ENDIAN
12 #endif
13 #endif
15 #ifdef __alpha__
16 #define __IEEE_LITTLE_ENDIAN
17 #endif
19 #if defined(__arm__) || defined(__thumb__)
20 /* ARM traditionally used big-endian words; and within those words the
21 byte ordering was big or little endian depending upon the target.
22 Modern floating-point formats are naturally ordered; in this case
23 __VFP_FP__ will be defined, even if soft-float. */
24 #ifdef __VFP_FP__
25 #ifdef __ARMEL__
26 #define __IEEE_LITTLE_ENDIAN
27 #else
28 #define __IEEE_BIG_ENDIAN
29 #endif
30 #else
31 #define __IEEE_BIG_ENDIAN
32 #ifdef __ARMEL__
33 #define __IEEE_BYTES_LITTLE_ENDIAN
34 #endif
35 #endif
36 #endif
38 #ifdef __hppa__
39 #define __IEEE_BIG_ENDIAN
40 #endif
42 #if defined (__sparc) || defined (__sparc__)
43 #define __IEEE_BIG_ENDIAN
44 #endif
46 #ifdef __m32r__
47 #ifdef __LITTLE_ENDIAN__
48 #define __IEEE_LITTLE_ENDIAN
49 #else
50 #define __IEEE_BIG_ENDIAN
51 #endif
52 #endif
54 #if defined(__m68k__) || defined(__mc68000__)
55 #define __IEEE_BIG_ENDIAN
56 #endif
58 #if defined (__H8300__) || defined (__H8300H__)
59 #define __IEEE_BIG_ENDIAN
60 #define __SMALL_BITFIELDS
61 #define _DOUBLE_IS_32BITS
62 #endif
64 #ifdef __H8500__
65 #define __IEEE_BIG_ENDIAN
66 #define __SMALL_BITFIELDS
67 #define _DOUBLE_IS_32BITS
68 #endif
70 #ifdef __sh__
71 #ifdef __LITTLE_ENDIAN__
72 #define __IEEE_LITTLE_ENDIAN
73 #else
74 #define __IEEE_BIG_ENDIAN
75 #endif
77 #ifdef __SH3E__
78 #define _DOUBLE_IS_32BITS
79 #endif
80 #endif
82 #ifdef _AM29K
83 #define __IEEE_BIG_ENDIAN
84 #endif
86 #ifdef __i386__
87 #define __IEEE_LITTLE_ENDIAN
88 #endif
90 #ifdef __x86_64__
91 #define __IEEE_LITTLE_ENDIAN
92 #endif
94 #ifdef __i960__
95 #define __IEEE_LITTLE_ENDIAN
96 #endif
98 #ifdef __AVR32__
99 #define __IEEE_BIG_ENDIAN
100 #endif
102 #ifdef __MIPSEL__
103 #define __IEEE_LITTLE_ENDIAN
104 #endif
106 #ifdef __MIPSEB__
107 #define __IEEE_BIG_ENDIAN
108 #endif
110 #ifdef __pj__
111 #ifdef __pjl__
112 #define __IEEE_LITTLE_ENDIAN
113 #else
114 #define __IEEE_BIG_ENDIAN
115 #endif
116 #endif
118 /* necv70 was __IEEE_LITTLE_ENDIAN. */
120 #ifdef __W65__
121 #define __IEEE_LITTLE_ENDIAN
122 #define __SMALL_BITFIELDS
123 #define _DOUBLE_IS_32BITS
124 #endif
126 #if defined(__Z8001__) || defined(__Z8002__)
127 #define __IEEE_BIG_ENDIAN
128 #endif
130 #ifdef __m88k__
131 #define __IEEE_BIG_ENDIAN
132 #endif
134 #ifdef __v800
135 #define __IEEE_LITTLE_ENDIAN
136 #endif
138 #if defined (__PPC__) || defined (__ppc__) || defined (__powerpc__) || defined (__ppc64__) || defined (_POWER) || defined (_IBMR2)
139 #if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) || defined (__BIG_ENDIAN__)|| defined (__APPLE__)
140 #define __IEEE_BIG_ENDIAN
141 #else
142 #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(__WIN32__) && __WIN32__)
143 #define __IEEE_LITTLE_ENDIAN
144 #endif
145 #endif
146 #endif
148 #ifdef __fr30__
149 #define __IEEE_BIG_ENDIAN
150 #endif
152 #ifdef __mcore__
153 #define __IEEE_BIG_ENDIAN
154 #endif
157 #ifdef __ia64__
158 #ifdef __BIG_ENDIAN__
159 #define __IEEE_BIG_ENDIAN
160 #else
161 #define __IEEE_LITTLE_ENDIAN
162 #endif
163 #endif
165 #ifdef __s390__
166 #define __IEEE_BIG_ENDIAN
167 #endif
169 #ifndef __IEEE_BIG_ENDIAN
170 #ifndef __IEEE_LITTLE_ENDIAN
171 #error Endianess not declared!!
172 #endif /* not __IEEE_LITTLE_ENDIAN */
173 #endif /* not __IEEE_BIG_ENDIAN */
175 #endif /* not __IEEE_LITTLE_ENDIAN */
176 #endif /* not __IEEE_BIG_ENDIAN */
178 #endif /* __CLASSPATH_IEEEFP_H__ */