Merge from mainline
[official-gcc.git] / libjava / classpath / native / fdlibm / ieeefp.h
blob1dda99b3280807126a6b3c73b1493c1af722b8b0
1 #ifndef __CLASSPATH_IEEEFP_H__
2 #define __CLASSPATH_IEEEFP_H__
4 #ifndef __IEEE_BIG_ENDIAN
5 #ifndef __IEEE_LITTLE_ENDIAN
7 #ifdef __alpha__
8 #define __IEEE_LITTLE_ENDIAN
9 #endif
11 #if defined(__arm__) || defined(__thumb__)
12 /* ARM traditionally used big-endian words; and within those words the
13 byte ordering was big or little endian depending upon the target.
14 Modern floating-point formats are naturally ordered; in this case
15 __VFP_FP__ will be defined, even if soft-float. */
16 #ifdef __VFP_FP__
17 #ifdef __ARMEL__
18 #define __IEEE_LITTLE_ENDIAN
19 #else
20 #define __IEEE_BIG_ENDIAN
21 #endif
22 #else
23 #define __IEEE_BIG_ENDIAN
24 #ifdef __ARMEL__
25 #define __IEEE_BYTES_LITTLE_ENDIAN
26 #endif
27 #endif
28 #endif
30 #ifdef __hppa__
31 #define __IEEE_BIG_ENDIAN
32 #endif
34 #if defined (__sparc) || defined (__sparc__)
35 #define __IEEE_BIG_ENDIAN
36 #endif
38 #ifdef __m32r__
39 #ifdef __LITTLE_ENDIAN__
40 #define __IEEE_LITTLE_ENDIAN
41 #else
42 #define __IEEE_BIG_ENDIAN
43 #endif
44 #endif
46 #if defined(__m68k__) || defined(__mc68000__)
47 #define __IEEE_BIG_ENDIAN
48 #endif
50 #if defined (__H8300__) || defined (__H8300H__)
51 #define __IEEE_BIG_ENDIAN
52 #define __SMALL_BITFIELDS
53 #define _DOUBLE_IS_32BITS
54 #endif
56 #ifdef __H8500__
57 #define __IEEE_BIG_ENDIAN
58 #define __SMALL_BITFIELDS
59 #define _DOUBLE_IS_32BITS
60 #endif
62 #ifdef __sh__
63 #ifdef __LITTLE_ENDIAN__
64 #define __IEEE_LITTLE_ENDIAN
65 #else
66 #define __IEEE_BIG_ENDIAN
67 #endif
69 #ifdef __SH3E__
70 #define _DOUBLE_IS_32BITS
71 #endif
72 #endif
74 #ifdef _AM29K
75 #define __IEEE_BIG_ENDIAN
76 #endif
78 #ifdef __i386__
79 #define __IEEE_LITTLE_ENDIAN
80 #endif
82 #ifdef __x86_64__
83 #define __IEEE_LITTLE_ENDIAN
84 #endif
86 #ifdef __i960__
87 #define __IEEE_LITTLE_ENDIAN
88 #endif
90 #ifdef __MIPSEL__
91 #define __IEEE_LITTLE_ENDIAN
92 #endif
94 #ifdef __MIPSEB__
95 #define __IEEE_BIG_ENDIAN
96 #endif
98 #ifdef __pj__
99 #ifdef __pjl__
100 #define __IEEE_LITTLE_ENDIAN
101 #else
102 #define __IEEE_BIG_ENDIAN
103 #endif
104 #endif
106 /* necv70 was __IEEE_LITTLE_ENDIAN. */
108 #ifdef __W65__
109 #define __IEEE_LITTLE_ENDIAN
110 #define __SMALL_BITFIELDS
111 #define _DOUBLE_IS_32BITS
112 #endif
114 #if defined(__Z8001__) || defined(__Z8002__)
115 #define __IEEE_BIG_ENDIAN
116 #endif
118 #ifdef __m88k__
119 #define __IEEE_BIG_ENDIAN
120 #endif
122 #ifdef __v800
123 #define __IEEE_LITTLE_ENDIAN
124 #endif
126 #if defined (__PPC__) || defined (__ppc__) || defined (__powerpc__) || defined (__ppc64__)
127 #if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) || defined (__BIG_ENDIAN__)|| defined (__APPLE__)
128 #define __IEEE_BIG_ENDIAN
129 #else
130 #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(__WIN32__) && __WIN32__)
131 #define __IEEE_LITTLE_ENDIAN
132 #endif
133 #endif
134 #endif
136 #ifdef __fr30__
137 #define __IEEE_BIG_ENDIAN
138 #endif
140 #ifdef __mcore__
141 #define __IEEE_BIG_ENDIAN
142 #endif
145 #ifdef __ia64__
146 #ifdef __BIG_ENDIAN__
147 #define __IEEE_BIG_ENDIAN
148 #else
149 #define __IEEE_LITTLE_ENDIAN
150 #endif
151 #endif
153 #ifdef __s390__
154 #define __IEEE_BIG_ENDIAN
155 #endif
157 #ifndef __IEEE_BIG_ENDIAN
158 #ifndef __IEEE_LITTLE_ENDIAN
159 #error Endianess not declared!!
160 #endif /* not __IEEE_LITTLE_ENDIAN */
161 #endif /* not __IEEE_BIG_ENDIAN */
163 #endif /* not __IEEE_LITTLE_ENDIAN */
164 #endif /* not __IEEE_BIG_ENDIAN */
166 #endif /* __CLASSPATH_IEEEFP_H__ */