* configure.ac: New switch for disabling -O2 (--disable-optimizations).
[cacao.git] / src / fdlibm / ieeefp.h
1 #ifndef __CLASSPATH_IEEEFP_H__
2 #define __CLASSPATH_IEEEFP_H__
3
4 #ifndef __IEEE_BIG_ENDIAN
5 #ifndef __IEEE_LITTLE_ENDIAN
6
7 #if defined(__alpha) || defined(__alpha__)
8 #define __IEEE_LITTLE_ENDIAN
9 #endif
10
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
29
30 #ifdef __hppa__
31 #define __IEEE_BIG_ENDIAN
32 #endif
33
34 #if defined (__sparc) || defined (__sparc__)
35 #define __IEEE_BIG_ENDIAN
36 #endif
37
38 #ifdef __m32r__
39 #ifdef __LITTLE_ENDIAN__
40 #define __IEEE_LITTLE_ENDIAN
41 #else
42 #define __IEEE_BIG_ENDIAN
43 #endif
44 #endif
45
46 #if defined(__m68k__) || defined(__mc68000__)
47 #define __IEEE_BIG_ENDIAN
48 #endif
49
50 #if defined (__H8300__) || defined (__H8300H__)
51 #define __IEEE_BIG_ENDIAN
52 #define __SMALL_BITFIELDS
53 #define _DOUBLE_IS_32BITS
54 #endif
55
56 #ifdef __H8500__
57 #define __IEEE_BIG_ENDIAN
58 #define __SMALL_BITFIELDS
59 #define _DOUBLE_IS_32BITS
60 #endif
61
62 #ifdef __sh__
63 #ifdef __LITTLE_ENDIAN__
64 #define __IEEE_LITTLE_ENDIAN
65 #else
66 #define __IEEE_BIG_ENDIAN
67 #endif
68
69 #ifdef __SH3E__
70 #define _DOUBLE_IS_32BITS
71 #endif
72 #endif
73
74 #ifdef _AM29K
75 #define __IEEE_BIG_ENDIAN
76 #endif
77
78 #if defined(__i386__) || defined(__i386)
79 #define __IEEE_LITTLE_ENDIAN
80 #endif
81
82 #ifdef __x86_64__
83 #define __IEEE_LITTLE_ENDIAN
84 #endif
85
86 #ifdef __i960__
87 #define __IEEE_LITTLE_ENDIAN
88 #endif
89
90 #ifdef __MIPSEL__
91 #define __IEEE_LITTLE_ENDIAN
92 #endif
93
94 #ifdef __MIPSEB__
95 #define __IEEE_BIG_ENDIAN
96 #endif
97
98 #ifdef __pj__
99 #ifdef __pjl__
100 #define __IEEE_LITTLE_ENDIAN
101 #else
102 #define __IEEE_BIG_ENDIAN
103 #endif
104 #endif
105
106 /* necv70 was __IEEE_LITTLE_ENDIAN. */
107
108 #ifdef __W65__
109 #define __IEEE_LITTLE_ENDIAN
110 #define __SMALL_BITFIELDS
111 #define _DOUBLE_IS_32BITS
112 #endif
113
114 #if defined(__Z8001__) || defined(__Z8002__)
115 #define __IEEE_BIG_ENDIAN
116 #endif
117
118 #ifdef __m88k__
119 #define __IEEE_BIG_ENDIAN
120 #endif
121
122 #ifdef __v800
123 #define __IEEE_LITTLE_ENDIAN
124 #endif
125
126 #if defined (__PPC__) || defined (__ppc__) || defined (__powerpc__) || defined (__ppc64__) || defined (_POWER) || defined (_IBMR2)
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
135
136 #ifdef __fr30__
137 #define __IEEE_BIG_ENDIAN
138 #endif
139
140 #ifdef __mcore__
141 #define __IEEE_BIG_ENDIAN
142 #endif
143
144
145 #ifdef __ia64__
146 #ifdef __BIG_ENDIAN__
147 #define __IEEE_BIG_ENDIAN
148 #else
149 #define __IEEE_LITTLE_ENDIAN
150 #endif
151 #endif
152
153 #ifdef __s390__
154 #define __IEEE_BIG_ENDIAN
155 #endif
156
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 */
162
163 #endif /* not __IEEE_LITTLE_ENDIAN */
164 #endif /* not __IEEE_BIG_ENDIAN */
165
166 #endif /* __CLASSPATH_IEEEFP_H__ */