1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
\r
2 /* This Source Code Form is subject to the terms of the Mozilla Public
\r
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
\r
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
\r
7 * This file is used by not only Linux but also other glibc systems
\r
8 * such as GNU/Hurd and GNU/k*BSD.
\r
11 #ifndef nspr_cpucfg___
\r
12 #define nspr_cpucfg___
\r
18 #if !defined(LINUX) && defined(__linux__)
\r
22 #ifdef __FreeBSD_kernel__
\r
23 #define PR_AF_INET6 28 /* same as AF_INET6 */
\r
24 #elif defined(__GNU__)
\r
25 #define PR_AF_INET6 26 /* same as AF_INET6 */
\r
27 #define PR_AF_INET6 10 /* same as AF_INET6 */
\r
30 #ifdef __powerpc64__
\r
32 #ifdef __LITTLE_ENDIAN__
\r
33 #define IS_LITTLE_ENDIAN 1
\r
34 #undef IS_BIG_ENDIAN
\r
36 #undef IS_LITTLE_ENDIAN
\r
37 #define IS_BIG_ENDIAN 1
\r
41 #define PR_BYTES_PER_BYTE 1
\r
42 #define PR_BYTES_PER_SHORT 2
\r
43 #define PR_BYTES_PER_INT 4
\r
44 #define PR_BYTES_PER_INT64 8
\r
45 #define PR_BYTES_PER_LONG 8
\r
46 #define PR_BYTES_PER_FLOAT 4
\r
47 #define PR_BYTES_PER_DOUBLE 8
\r
48 #define PR_BYTES_PER_WORD 8
\r
49 #define PR_BYTES_PER_DWORD 8
\r
51 #define PR_BITS_PER_BYTE 8
\r
52 #define PR_BITS_PER_SHORT 16
\r
53 #define PR_BITS_PER_INT 32
\r
54 #define PR_BITS_PER_INT64 64
\r
55 #define PR_BITS_PER_LONG 64
\r
56 #define PR_BITS_PER_FLOAT 32
\r
57 #define PR_BITS_PER_DOUBLE 64
\r
58 #define PR_BITS_PER_WORD 64
\r
60 #define PR_BITS_PER_BYTE_LOG2 3
\r
61 #define PR_BITS_PER_SHORT_LOG2 4
\r
62 #define PR_BITS_PER_INT_LOG2 5
\r
63 #define PR_BITS_PER_INT64_LOG2 6
\r
64 #define PR_BITS_PER_LONG_LOG2 6
\r
65 #define PR_BITS_PER_FLOAT_LOG2 5
\r
66 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
67 #define PR_BITS_PER_WORD_LOG2 6
\r
69 #define PR_ALIGN_OF_SHORT 2
\r
70 #define PR_ALIGN_OF_INT 4
\r
71 #define PR_ALIGN_OF_LONG 8
\r
72 #define PR_ALIGN_OF_INT64 8
\r
73 #define PR_ALIGN_OF_FLOAT 4
\r
74 #define PR_ALIGN_OF_DOUBLE 8
\r
75 #define PR_ALIGN_OF_POINTER 8
\r
76 #define PR_ALIGN_OF_WORD 8
\r
78 #define PR_BYTES_PER_WORD_LOG2 3
\r
79 #define PR_BYTES_PER_DWORD_LOG2 3
\r
81 #elif defined(__powerpc__)
\r
83 #ifdef __LITTLE_ENDIAN__
\r
84 #define IS_LITTLE_ENDIAN 1
\r
85 #undef IS_BIG_ENDIAN
\r
87 #undef IS_LITTLE_ENDIAN
\r
88 #define IS_BIG_ENDIAN 1
\r
91 #define PR_BYTES_PER_BYTE 1
\r
92 #define PR_BYTES_PER_SHORT 2
\r
93 #define PR_BYTES_PER_INT 4
\r
94 #define PR_BYTES_PER_INT64 8
\r
95 #define PR_BYTES_PER_LONG 4
\r
96 #define PR_BYTES_PER_FLOAT 4
\r
97 #define PR_BYTES_PER_DOUBLE 8
\r
98 #define PR_BYTES_PER_WORD 4
\r
99 #define PR_BYTES_PER_DWORD 8
\r
101 #define PR_BITS_PER_BYTE 8
\r
102 #define PR_BITS_PER_SHORT 16
\r
103 #define PR_BITS_PER_INT 32
\r
104 #define PR_BITS_PER_INT64 64
\r
105 #define PR_BITS_PER_LONG 32
\r
106 #define PR_BITS_PER_FLOAT 32
\r
107 #define PR_BITS_PER_DOUBLE 64
\r
108 #define PR_BITS_PER_WORD 32
\r
110 #define PR_BITS_PER_BYTE_LOG2 3
\r
111 #define PR_BITS_PER_SHORT_LOG2 4
\r
112 #define PR_BITS_PER_INT_LOG2 5
\r
113 #define PR_BITS_PER_INT64_LOG2 6
\r
114 #define PR_BITS_PER_LONG_LOG2 5
\r
115 #define PR_BITS_PER_FLOAT_LOG2 5
\r
116 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
117 #define PR_BITS_PER_WORD_LOG2 5
\r
119 #define PR_ALIGN_OF_SHORT 2
\r
120 #define PR_ALIGN_OF_INT 4
\r
121 #define PR_ALIGN_OF_LONG 4
\r
122 #define PR_ALIGN_OF_INT64 8
\r
123 #define PR_ALIGN_OF_FLOAT 4
\r
124 #define PR_ALIGN_OF_DOUBLE 8
\r
125 #define PR_ALIGN_OF_POINTER 4
\r
126 #define PR_ALIGN_OF_WORD 4
\r
128 #define PR_BYTES_PER_WORD_LOG2 2
\r
129 #define PR_BYTES_PER_DWORD_LOG2 3
\r
131 #elif defined(__alpha)
\r
133 #define IS_LITTLE_ENDIAN 1
\r
134 #undef IS_BIG_ENDIAN
\r
137 #define PR_BYTES_PER_BYTE 1
\r
138 #define PR_BYTES_PER_SHORT 2
\r
139 #define PR_BYTES_PER_INT 4
\r
140 #define PR_BYTES_PER_INT64 8
\r
141 #define PR_BYTES_PER_LONG 8
\r
142 #define PR_BYTES_PER_FLOAT 4
\r
143 #define PR_BYTES_PER_DOUBLE 8
\r
144 #define PR_BYTES_PER_WORD 8
\r
145 #define PR_BYTES_PER_DWORD 8
\r
147 #define PR_BITS_PER_BYTE 8
\r
148 #define PR_BITS_PER_SHORT 16
\r
149 #define PR_BITS_PER_INT 32
\r
150 #define PR_BITS_PER_INT64 64
\r
151 #define PR_BITS_PER_LONG 64
\r
152 #define PR_BITS_PER_FLOAT 32
\r
153 #define PR_BITS_PER_DOUBLE 64
\r
154 #define PR_BITS_PER_WORD 64
\r
156 #define PR_BITS_PER_BYTE_LOG2 3
\r
157 #define PR_BITS_PER_SHORT_LOG2 4
\r
158 #define PR_BITS_PER_INT_LOG2 5
\r
159 #define PR_BITS_PER_INT64_LOG2 6
\r
160 #define PR_BITS_PER_LONG_LOG2 6
\r
161 #define PR_BITS_PER_FLOAT_LOG2 5
\r
162 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
163 #define PR_BITS_PER_WORD_LOG2 6
\r
165 #define PR_ALIGN_OF_SHORT 2
\r
166 #define PR_ALIGN_OF_INT 4
\r
167 #define PR_ALIGN_OF_LONG 8
\r
168 #define PR_ALIGN_OF_INT64 8
\r
169 #define PR_ALIGN_OF_FLOAT 4
\r
170 #define PR_ALIGN_OF_DOUBLE 8
\r
171 #define PR_ALIGN_OF_POINTER 8
\r
172 #define PR_ALIGN_OF_WORD 8
\r
174 #define PR_BYTES_PER_WORD_LOG2 3
\r
175 #define PR_BYTES_PER_DWORD_LOG2 3
\r
177 #elif defined(__ia64__)
\r
179 #define IS_LITTLE_ENDIAN 1
\r
180 #undef IS_BIG_ENDIAN
\r
183 #define PR_BYTES_PER_BYTE 1
\r
184 #define PR_BYTES_PER_SHORT 2
\r
185 #define PR_BYTES_PER_INT 4
\r
186 #define PR_BYTES_PER_INT64 8
\r
187 #define PR_BYTES_PER_LONG 8
\r
188 #define PR_BYTES_PER_FLOAT 4
\r
189 #define PR_BYTES_PER_DOUBLE 8
\r
190 #define PR_BYTES_PER_WORD 8
\r
191 #define PR_BYTES_PER_DWORD 8
\r
193 #define PR_BITS_PER_BYTE 8
\r
194 #define PR_BITS_PER_SHORT 16
\r
195 #define PR_BITS_PER_INT 32
\r
196 #define PR_BITS_PER_INT64 64
\r
197 #define PR_BITS_PER_LONG 64
\r
198 #define PR_BITS_PER_FLOAT 32
\r
199 #define PR_BITS_PER_DOUBLE 64
\r
200 #define PR_BITS_PER_WORD 64
\r
202 #define PR_BITS_PER_BYTE_LOG2 3
\r
203 #define PR_BITS_PER_SHORT_LOG2 4
\r
204 #define PR_BITS_PER_INT_LOG2 5
\r
205 #define PR_BITS_PER_INT64_LOG2 6
\r
206 #define PR_BITS_PER_LONG_LOG2 6
\r
207 #define PR_BITS_PER_FLOAT_LOG2 5
\r
208 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
209 #define PR_BITS_PER_WORD_LOG2 6
\r
211 #define PR_ALIGN_OF_SHORT 2
\r
212 #define PR_ALIGN_OF_INT 4
\r
213 #define PR_ALIGN_OF_LONG 8
\r
214 #define PR_ALIGN_OF_INT64 8
\r
215 #define PR_ALIGN_OF_FLOAT 4
\r
216 #define PR_ALIGN_OF_DOUBLE 8
\r
217 #define PR_ALIGN_OF_POINTER 8
\r
218 #define PR_ALIGN_OF_WORD 8
\r
220 #define PR_BYTES_PER_WORD_LOG2 3
\r
221 #define PR_BYTES_PER_DWORD_LOG2 3
\r
223 #elif defined(__x86_64__)
\r
227 #define IS_LITTLE_ENDIAN 1
\r
228 #undef IS_BIG_ENDIAN
\r
230 #define PR_BYTES_PER_BYTE 1
\r
231 #define PR_BYTES_PER_SHORT 2
\r
232 #define PR_BYTES_PER_INT 4
\r
233 #define PR_BYTES_PER_INT64 8
\r
234 #define PR_BYTES_PER_LONG 4
\r
235 #define PR_BYTES_PER_FLOAT 4
\r
236 #define PR_BYTES_PER_DOUBLE 8
\r
237 #define PR_BYTES_PER_WORD 4
\r
238 #define PR_BYTES_PER_DWORD 8
\r
240 #define PR_BITS_PER_BYTE 8
\r
241 #define PR_BITS_PER_SHORT 16
\r
242 #define PR_BITS_PER_INT 32
\r
243 #define PR_BITS_PER_INT64 64
\r
244 #define PR_BITS_PER_LONG 32
\r
245 #define PR_BITS_PER_FLOAT 32
\r
246 #define PR_BITS_PER_DOUBLE 64
\r
247 #define PR_BITS_PER_WORD 32
\r
249 #define PR_BITS_PER_BYTE_LOG2 3
\r
250 #define PR_BITS_PER_SHORT_LOG2 4
\r
251 #define PR_BITS_PER_INT_LOG2 5
\r
252 #define PR_BITS_PER_INT64_LOG2 6
\r
253 #define PR_BITS_PER_LONG_LOG2 5
\r
254 #define PR_BITS_PER_FLOAT_LOG2 5
\r
255 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
256 #define PR_BITS_PER_WORD_LOG2 5
\r
258 #define PR_ALIGN_OF_SHORT 2
\r
259 #define PR_ALIGN_OF_INT 4
\r
260 #define PR_ALIGN_OF_LONG 4
\r
261 #define PR_ALIGN_OF_INT64 8
\r
262 #define PR_ALIGN_OF_FLOAT 4
\r
263 #define PR_ALIGN_OF_DOUBLE 8
\r
264 #define PR_ALIGN_OF_POINTER 4
\r
265 #define PR_ALIGN_OF_WORD 4
\r
267 #define PR_BYTES_PER_WORD_LOG2 2
\r
268 #define PR_BYTES_PER_DWORD_LOG2 3
\r
272 #define IS_LITTLE_ENDIAN 1
\r
273 #undef IS_BIG_ENDIAN
\r
276 #define PR_BYTES_PER_BYTE 1
\r
277 #define PR_BYTES_PER_SHORT 2
\r
278 #define PR_BYTES_PER_INT 4
\r
279 #define PR_BYTES_PER_INT64 8
\r
280 #define PR_BYTES_PER_LONG 8
\r
281 #define PR_BYTES_PER_FLOAT 4
\r
282 #define PR_BYTES_PER_DOUBLE 8
\r
283 #define PR_BYTES_PER_WORD 8
\r
284 #define PR_BYTES_PER_DWORD 8
\r
286 #define PR_BITS_PER_BYTE 8
\r
287 #define PR_BITS_PER_SHORT 16
\r
288 #define PR_BITS_PER_INT 32
\r
289 #define PR_BITS_PER_INT64 64
\r
290 #define PR_BITS_PER_LONG 64
\r
291 #define PR_BITS_PER_FLOAT 32
\r
292 #define PR_BITS_PER_DOUBLE 64
\r
293 #define PR_BITS_PER_WORD 64
\r
295 #define PR_BITS_PER_BYTE_LOG2 3
\r
296 #define PR_BITS_PER_SHORT_LOG2 4
\r
297 #define PR_BITS_PER_INT_LOG2 5
\r
298 #define PR_BITS_PER_INT64_LOG2 6
\r
299 #define PR_BITS_PER_LONG_LOG2 6
\r
300 #define PR_BITS_PER_FLOAT_LOG2 5
\r
301 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
302 #define PR_BITS_PER_WORD_LOG2 6
\r
304 #define PR_ALIGN_OF_SHORT 2
\r
305 #define PR_ALIGN_OF_INT 4
\r
306 #define PR_ALIGN_OF_LONG 8
\r
307 #define PR_ALIGN_OF_INT64 8
\r
308 #define PR_ALIGN_OF_FLOAT 4
\r
309 #define PR_ALIGN_OF_DOUBLE 8
\r
310 #define PR_ALIGN_OF_POINTER 8
\r
311 #define PR_ALIGN_OF_WORD 8
\r
313 #define PR_BYTES_PER_WORD_LOG2 3
\r
314 #define PR_BYTES_PER_DWORD_LOG2 3
\r
318 #elif defined(__mc68000__)
\r
320 #undef IS_LITTLE_ENDIAN
\r
321 #define IS_BIG_ENDIAN 1
\r
323 #define PR_BYTES_PER_BYTE 1
\r
324 #define PR_BYTES_PER_SHORT 2
\r
325 #define PR_BYTES_PER_INT 4
\r
326 #define PR_BYTES_PER_INT64 8
\r
327 #define PR_BYTES_PER_LONG 4
\r
328 #define PR_BYTES_PER_FLOAT 4
\r
329 #define PR_BYTES_PER_DOUBLE 8
\r
330 #define PR_BYTES_PER_WORD 4
\r
331 #define PR_BYTES_PER_DWORD 8
\r
333 #define PR_BITS_PER_BYTE 8
\r
334 #define PR_BITS_PER_SHORT 16
\r
335 #define PR_BITS_PER_INT 32
\r
336 #define PR_BITS_PER_INT64 64
\r
337 #define PR_BITS_PER_LONG 32
\r
338 #define PR_BITS_PER_FLOAT 32
\r
339 #define PR_BITS_PER_DOUBLE 64
\r
340 #define PR_BITS_PER_WORD 32
\r
342 #define PR_BITS_PER_BYTE_LOG2 3
\r
343 #define PR_BITS_PER_SHORT_LOG2 4
\r
344 #define PR_BITS_PER_INT_LOG2 5
\r
345 #define PR_BITS_PER_INT64_LOG2 6
\r
346 #define PR_BITS_PER_LONG_LOG2 5
\r
347 #define PR_BITS_PER_FLOAT_LOG2 5
\r
348 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
349 #define PR_BITS_PER_WORD_LOG2 5
\r
351 #define PR_ALIGN_OF_SHORT 2
\r
352 #define PR_ALIGN_OF_INT 2
\r
353 #define PR_ALIGN_OF_LONG 2
\r
354 #define PR_ALIGN_OF_INT64 2
\r
355 #define PR_ALIGN_OF_FLOAT 2
\r
356 #define PR_ALIGN_OF_DOUBLE 2
\r
357 #define PR_ALIGN_OF_POINTER 2
\r
358 #define PR_ALIGN_OF_WORD 2
\r
360 #define PR_BYTES_PER_WORD_LOG2 2
\r
361 #define PR_BYTES_PER_DWORD_LOG2 3
\r
363 #elif defined(__sparc__) && defined (__arch64__)
\r
365 #undef IS_LITTLE_ENDIAN
\r
366 #define IS_BIG_ENDIAN 1
\r
369 #define PR_BYTES_PER_BYTE 1
\r
370 #define PR_BYTES_PER_SHORT 2
\r
371 #define PR_BYTES_PER_INT 4
\r
372 #define PR_BYTES_PER_INT64 8
\r
373 #define PR_BYTES_PER_LONG 8
\r
374 #define PR_BYTES_PER_FLOAT 4
\r
375 #define PR_BYTES_PER_DOUBLE 8
\r
376 #define PR_BYTES_PER_WORD 8
\r
377 #define PR_BYTES_PER_DWORD 8
\r
379 #define PR_BITS_PER_BYTE 8
\r
380 #define PR_BITS_PER_SHORT 16
\r
381 #define PR_BITS_PER_INT 32
\r
382 #define PR_BITS_PER_INT64 64
\r
383 #define PR_BITS_PER_LONG 64
\r
384 #define PR_BITS_PER_FLOAT 32
\r
385 #define PR_BITS_PER_DOUBLE 64
\r
386 #define PR_BITS_PER_WORD 64
\r
388 #define PR_BITS_PER_BYTE_LOG2 3
\r
389 #define PR_BITS_PER_SHORT_LOG2 4
\r
390 #define PR_BITS_PER_INT_LOG2 5
\r
391 #define PR_BITS_PER_INT64_LOG2 6
\r
392 #define PR_BITS_PER_LONG_LOG2 6
\r
393 #define PR_BITS_PER_FLOAT_LOG2 5
\r
394 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
395 #define PR_BITS_PER_WORD_LOG2 6
\r
397 #define PR_ALIGN_OF_SHORT 2
\r
398 #define PR_ALIGN_OF_INT 4
\r
399 #define PR_ALIGN_OF_INT64 8
\r
400 #define PR_ALIGN_OF_LONG 8
\r
401 #define PR_ALIGN_OF_FLOAT 4
\r
402 #define PR_ALIGN_OF_DOUBLE 8
\r
403 #define PR_ALIGN_OF_POINTER 8
\r
404 #define PR_ALIGN_OF_WORD 8
\r
406 #define PR_BYTES_PER_WORD_LOG2 3
\r
407 #define PR_BYTES_PER_DWORD_LOG2 3
\r
409 #elif defined(__sparc__)
\r
411 #undef IS_LITTLE_ENDIAN
\r
412 #define IS_BIG_ENDIAN 1
\r
414 #define PR_BYTES_PER_BYTE 1
\r
415 #define PR_BYTES_PER_SHORT 2
\r
416 #define PR_BYTES_PER_INT 4
\r
417 #define PR_BYTES_PER_INT64 8
\r
418 #define PR_BYTES_PER_LONG 4
\r
419 #define PR_BYTES_PER_FLOAT 4
\r
420 #define PR_BYTES_PER_DOUBLE 8
\r
421 #define PR_BYTES_PER_WORD 4
\r
422 #define PR_BYTES_PER_DWORD 8
\r
424 #define PR_BITS_PER_BYTE 8
\r
425 #define PR_BITS_PER_SHORT 16
\r
426 #define PR_BITS_PER_INT 32
\r
427 #define PR_BITS_PER_INT64 64
\r
428 #define PR_BITS_PER_LONG 32
\r
429 #define PR_BITS_PER_FLOAT 32
\r
430 #define PR_BITS_PER_DOUBLE 64
\r
431 #define PR_BITS_PER_WORD 32
\r
433 #define PR_BITS_PER_BYTE_LOG2 3
\r
434 #define PR_BITS_PER_SHORT_LOG2 4
\r
435 #define PR_BITS_PER_INT_LOG2 5
\r
436 #define PR_BITS_PER_INT64_LOG2 6
\r
437 #define PR_BITS_PER_LONG_LOG2 5
\r
438 #define PR_BITS_PER_FLOAT_LOG2 5
\r
439 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
440 #define PR_BITS_PER_WORD_LOG2 5
\r
442 #define PR_ALIGN_OF_SHORT 2
\r
443 #define PR_ALIGN_OF_INT 4
\r
444 #define PR_ALIGN_OF_LONG 4
\r
445 #define PR_ALIGN_OF_INT64 8
\r
446 #define PR_ALIGN_OF_FLOAT 4
\r
447 #define PR_ALIGN_OF_DOUBLE 8
\r
448 #define PR_ALIGN_OF_POINTER 4
\r
449 #define PR_ALIGN_OF_WORD 4
\r
451 #define PR_BYTES_PER_WORD_LOG2 2
\r
452 #define PR_BYTES_PER_DWORD_LOG2 3
\r
454 #elif defined(__i386__)
\r
456 #define IS_LITTLE_ENDIAN 1
\r
457 #undef IS_BIG_ENDIAN
\r
459 #define PR_BYTES_PER_BYTE 1
\r
460 #define PR_BYTES_PER_SHORT 2
\r
461 #define PR_BYTES_PER_INT 4
\r
462 #define PR_BYTES_PER_INT64 8
\r
463 #define PR_BYTES_PER_LONG 4
\r
464 #define PR_BYTES_PER_FLOAT 4
\r
465 #define PR_BYTES_PER_DOUBLE 8
\r
466 #define PR_BYTES_PER_WORD 4
\r
467 #define PR_BYTES_PER_DWORD 8
\r
469 #define PR_BITS_PER_BYTE 8
\r
470 #define PR_BITS_PER_SHORT 16
\r
471 #define PR_BITS_PER_INT 32
\r
472 #define PR_BITS_PER_INT64 64
\r
473 #define PR_BITS_PER_LONG 32
\r
474 #define PR_BITS_PER_FLOAT 32
\r
475 #define PR_BITS_PER_DOUBLE 64
\r
476 #define PR_BITS_PER_WORD 32
\r
478 #define PR_BITS_PER_BYTE_LOG2 3
\r
479 #define PR_BITS_PER_SHORT_LOG2 4
\r
480 #define PR_BITS_PER_INT_LOG2 5
\r
481 #define PR_BITS_PER_INT64_LOG2 6
\r
482 #define PR_BITS_PER_LONG_LOG2 5
\r
483 #define PR_BITS_PER_FLOAT_LOG2 5
\r
484 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
485 #define PR_BITS_PER_WORD_LOG2 5
\r
487 #define PR_ALIGN_OF_SHORT 2
\r
488 #define PR_ALIGN_OF_INT 4
\r
489 #define PR_ALIGN_OF_LONG 4
\r
490 #define PR_ALIGN_OF_INT64 4
\r
491 #define PR_ALIGN_OF_FLOAT 4
\r
492 #define PR_ALIGN_OF_DOUBLE 4
\r
493 #define PR_ALIGN_OF_POINTER 4
\r
494 #define PR_ALIGN_OF_WORD 4
\r
496 #define PR_BYTES_PER_WORD_LOG2 2
\r
497 #define PR_BYTES_PER_DWORD_LOG2 3
\r
499 #elif defined(__mips__)
\r
502 #include <sgidefs.h>
\r
505 #define IS_BIG_ENDIAN 1
\r
506 #undef IS_LITTLE_ENDIAN
\r
507 #elif defined(__MIPSEL__)
\r
508 #define IS_LITTLE_ENDIAN 1
\r
509 #undef IS_BIG_ENDIAN
\r
511 #error "Unknown MIPS endianness."
\r
514 #if _MIPS_SIM == _ABI64
\r
518 #define PR_BYTES_PER_BYTE 1
\r
519 #define PR_BYTES_PER_SHORT 2
\r
520 #define PR_BYTES_PER_INT 4
\r
521 #define PR_BYTES_PER_INT64 8
\r
522 #define PR_BYTES_PER_LONG 8
\r
523 #define PR_BYTES_PER_FLOAT 4
\r
524 #define PR_BYTES_PER_DOUBLE 8
\r
525 #define PR_BYTES_PER_WORD 8
\r
526 #define PR_BYTES_PER_DWORD 8
\r
528 #define PR_BITS_PER_BYTE 8
\r
529 #define PR_BITS_PER_SHORT 16
\r
530 #define PR_BITS_PER_INT 32
\r
531 #define PR_BITS_PER_INT64 64
\r
532 #define PR_BITS_PER_LONG 64
\r
533 #define PR_BITS_PER_FLOAT 32
\r
534 #define PR_BITS_PER_DOUBLE 64
\r
535 #define PR_BITS_PER_WORD 64
\r
537 #define PR_BITS_PER_BYTE_LOG2 3
\r
538 #define PR_BITS_PER_SHORT_LOG2 4
\r
539 #define PR_BITS_PER_INT_LOG2 5
\r
540 #define PR_BITS_PER_INT64_LOG2 6
\r
541 #define PR_BITS_PER_LONG_LOG2 6
\r
542 #define PR_BITS_PER_FLOAT_LOG2 5
\r
543 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
544 #define PR_BITS_PER_WORD_LOG2 6
\r
546 #define PR_ALIGN_OF_SHORT 2
\r
547 #define PR_ALIGN_OF_INT 4
\r
548 #define PR_ALIGN_OF_LONG 8
\r
549 #define PR_ALIGN_OF_INT64 8
\r
550 #define PR_ALIGN_OF_FLOAT 4
\r
551 #define PR_ALIGN_OF_DOUBLE 8
\r
552 #define PR_ALIGN_OF_POINTER 8
\r
553 #define PR_ALIGN_OF_WORD 8
\r
555 #define PR_BYTES_PER_WORD_LOG2 3
\r
556 #define PR_BYTES_PER_DWORD_LOG2 3
\r
560 #define PR_BYTES_PER_BYTE 1
\r
561 #define PR_BYTES_PER_SHORT 2
\r
562 #define PR_BYTES_PER_INT 4
\r
563 #define PR_BYTES_PER_INT64 8
\r
564 #define PR_BYTES_PER_LONG 4
\r
565 #define PR_BYTES_PER_FLOAT 4
\r
566 #define PR_BYTES_PER_DOUBLE 8
\r
567 #define PR_BYTES_PER_WORD 4
\r
568 #define PR_BYTES_PER_DWORD 8
\r
570 #define PR_BITS_PER_BYTE 8
\r
571 #define PR_BITS_PER_SHORT 16
\r
572 #define PR_BITS_PER_INT 32
\r
573 #define PR_BITS_PER_INT64 64
\r
574 #define PR_BITS_PER_LONG 32
\r
575 #define PR_BITS_PER_FLOAT 32
\r
576 #define PR_BITS_PER_DOUBLE 64
\r
577 #define PR_BITS_PER_WORD 32
\r
579 #define PR_BITS_PER_BYTE_LOG2 3
\r
580 #define PR_BITS_PER_SHORT_LOG2 4
\r
581 #define PR_BITS_PER_INT_LOG2 5
\r
582 #define PR_BITS_PER_INT64_LOG2 6
\r
583 #define PR_BITS_PER_LONG_LOG2 5
\r
584 #define PR_BITS_PER_FLOAT_LOG2 5
\r
585 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
586 #define PR_BITS_PER_WORD_LOG2 5
\r
588 #define PR_ALIGN_OF_SHORT 2
\r
589 #define PR_ALIGN_OF_INT 4
\r
590 #define PR_ALIGN_OF_LONG 4
\r
591 #define PR_ALIGN_OF_INT64 8
\r
592 #define PR_ALIGN_OF_FLOAT 4
\r
593 #define PR_ALIGN_OF_DOUBLE 8
\r
594 #define PR_ALIGN_OF_POINTER 4
\r
595 #define PR_ALIGN_OF_WORD 4
\r
597 #define PR_BYTES_PER_WORD_LOG2 2
\r
598 #define PR_BYTES_PER_DWORD_LOG2 3
\r
600 #endif /* _ABI64 */
\r
602 #elif defined(__arm__)
\r
605 #undef IS_LITTLE_ENDIAN
\r
606 #define IS_BIG_ENDIAN 1
\r
607 #elif defined(__ARMEL__)
\r
608 #define IS_LITTLE_ENDIAN 1
\r
609 #undef IS_BIG_ENDIAN
\r
611 #error "Unknown ARM endianness."
\r
614 #define PR_BYTES_PER_BYTE 1
\r
615 #define PR_BYTES_PER_SHORT 2
\r
616 #define PR_BYTES_PER_INT 4
\r
617 #define PR_BYTES_PER_INT64 8
\r
618 #define PR_BYTES_PER_LONG 4
\r
619 #define PR_BYTES_PER_FLOAT 4
\r
620 #define PR_BYTES_PER_DOUBLE 8
\r
621 #define PR_BYTES_PER_WORD 4
\r
622 #define PR_BYTES_PER_DWORD 8
\r
624 #define PR_BITS_PER_BYTE 8
\r
625 #define PR_BITS_PER_SHORT 16
\r
626 #define PR_BITS_PER_INT 32
\r
627 #define PR_BITS_PER_INT64 64
\r
628 #define PR_BITS_PER_LONG 32
\r
629 #define PR_BITS_PER_FLOAT 32
\r
630 #define PR_BITS_PER_DOUBLE 64
\r
631 #define PR_BITS_PER_WORD 32
\r
633 #define PR_BITS_PER_BYTE_LOG2 3
\r
634 #define PR_BITS_PER_SHORT_LOG2 4
\r
635 #define PR_BITS_PER_INT_LOG2 5
\r
636 #define PR_BITS_PER_INT64_LOG2 6
\r
637 #define PR_BITS_PER_LONG_LOG2 5
\r
638 #define PR_BITS_PER_FLOAT_LOG2 5
\r
639 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
640 #define PR_BITS_PER_WORD_LOG2 5
\r
642 #define PR_ALIGN_OF_SHORT 2
\r
643 #define PR_ALIGN_OF_INT 4
\r
644 #define PR_ALIGN_OF_LONG 4
\r
645 #define PR_ALIGN_OF_INT64 4
\r
646 #define PR_ALIGN_OF_FLOAT 4
\r
647 #define PR_ALIGN_OF_DOUBLE 4
\r
648 #define PR_ALIGN_OF_POINTER 4
\r
649 #define PR_ALIGN_OF_WORD 4
\r
651 #define PR_BYTES_PER_WORD_LOG2 2
\r
652 #define PR_BYTES_PER_DWORD_LOG2 3
\r
654 #elif defined(__aarch64__)
\r
656 #ifdef __AARCH64EB__
\r
657 #undef IS_LITTLE_ENDIAN
\r
658 #define IS_BIG_ENDIAN 1
\r
659 #elif defined(__AARCH64EL__)
\r
660 #define IS_LITTLE_ENDIAN 1
\r
661 #undef IS_BIG_ENDIAN
\r
663 #error "Unknown Aarch64 endianness."
\r
667 #define PR_BYTES_PER_BYTE 1
\r
668 #define PR_BYTES_PER_SHORT 2
\r
669 #define PR_BYTES_PER_INT 4
\r
670 #define PR_BYTES_PER_INT64 8
\r
671 #define PR_BYTES_PER_LONG 8
\r
672 #define PR_BYTES_PER_FLOAT 4
\r
673 #define PR_BYTES_PER_DOUBLE 8
\r
674 #define PR_BYTES_PER_WORD 8
\r
675 #define PR_BYTES_PER_DWORD 8
\r
677 #define PR_BITS_PER_BYTE 8
\r
678 #define PR_BITS_PER_SHORT 16
\r
679 #define PR_BITS_PER_INT 32
\r
680 #define PR_BITS_PER_INT64 64
\r
681 #define PR_BITS_PER_LONG 64
\r
682 #define PR_BITS_PER_FLOAT 32
\r
683 #define PR_BITS_PER_DOUBLE 64
\r
684 #define PR_BITS_PER_WORD 64
\r
686 #define PR_BITS_PER_BYTE_LOG2 3
\r
687 #define PR_BITS_PER_SHORT_LOG2 4
\r
688 #define PR_BITS_PER_INT_LOG2 5
\r
689 #define PR_BITS_PER_INT64_LOG2 6
\r
690 #define PR_BITS_PER_LONG_LOG2 6
\r
691 #define PR_BITS_PER_FLOAT_LOG2 5
\r
692 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
693 #define PR_BITS_PER_WORD_LOG2 6
\r
695 #define PR_ALIGN_OF_SHORT 2
\r
696 #define PR_ALIGN_OF_INT 4
\r
697 #define PR_ALIGN_OF_LONG 8
\r
698 #define PR_ALIGN_OF_INT64 8
\r
699 #define PR_ALIGN_OF_FLOAT 4
\r
700 #define PR_ALIGN_OF_DOUBLE 8
\r
701 #define PR_ALIGN_OF_POINTER 8
\r
702 #define PR_ALIGN_OF_WORD 8
\r
704 #define PR_BYTES_PER_WORD_LOG2 3
\r
705 #define PR_BYTES_PER_DWORD_LOG2 3
\r
707 #elif defined(__hppa__)
\r
709 #undef IS_LITTLE_ENDIAN
\r
710 #define IS_BIG_ENDIAN 1
\r
712 #define PR_BYTES_PER_BYTE 1
\r
713 #define PR_BYTES_PER_SHORT 2
\r
714 #define PR_BYTES_PER_INT 4
\r
715 #define PR_BYTES_PER_INT64 8
\r
716 #define PR_BYTES_PER_LONG 4
\r
717 #define PR_BYTES_PER_FLOAT 4
\r
718 #define PR_BYTES_PER_DOUBLE 8
\r
719 #define PR_BYTES_PER_WORD 4
\r
720 #define PR_BYTES_PER_DWORD 8
\r
722 #define PR_BITS_PER_BYTE 8
\r
723 #define PR_BITS_PER_SHORT 16
\r
724 #define PR_BITS_PER_INT 32
\r
725 #define PR_BITS_PER_INT64 64
\r
726 #define PR_BITS_PER_LONG 32
\r
727 #define PR_BITS_PER_FLOAT 32
\r
728 #define PR_BITS_PER_DOUBLE 64
\r
729 #define PR_BITS_PER_WORD 32
\r
731 #define PR_BITS_PER_BYTE_LOG2 3
\r
732 #define PR_BITS_PER_SHORT_LOG2 4
\r
733 #define PR_BITS_PER_INT_LOG2 5
\r
734 #define PR_BITS_PER_INT64_LOG2 6
\r
735 #define PR_BITS_PER_LONG_LOG2 5
\r
736 #define PR_BITS_PER_FLOAT_LOG2 5
\r
737 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
738 #define PR_BITS_PER_WORD_LOG2 5
\r
740 #define PR_ALIGN_OF_SHORT 2
\r
741 #define PR_ALIGN_OF_INT 4
\r
742 #define PR_ALIGN_OF_LONG 4
\r
743 #define PR_ALIGN_OF_INT64 8
\r
744 #define PR_ALIGN_OF_FLOAT 4
\r
745 #define PR_ALIGN_OF_DOUBLE 8
\r
746 #define PR_ALIGN_OF_POINTER 4
\r
747 #define PR_ALIGN_OF_WORD 4
\r
749 #define PR_BYTES_PER_WORD_LOG2 2
\r
750 #define PR_BYTES_PER_DWORD_LOG2 3
\r
752 #elif defined(__s390x__)
\r
754 #define IS_BIG_ENDIAN 1
\r
755 #undef IS_LITTLE_ENDIAN
\r
758 #define PR_BYTES_PER_BYTE 1
\r
759 #define PR_BYTES_PER_SHORT 2
\r
760 #define PR_BYTES_PER_INT 4
\r
761 #define PR_BYTES_PER_INT64 8
\r
762 #define PR_BYTES_PER_LONG 8
\r
763 #define PR_BYTES_PER_FLOAT 4
\r
764 #define PR_BYTES_PER_DOUBLE 8
\r
765 #define PR_BYTES_PER_WORD 8
\r
766 #define PR_BYTES_PER_DWORD 8
\r
768 #define PR_BITS_PER_BYTE 8
\r
769 #define PR_BITS_PER_SHORT 16
\r
770 #define PR_BITS_PER_INT 32
\r
771 #define PR_BITS_PER_INT64 64
\r
772 #define PR_BITS_PER_LONG 64
\r
773 #define PR_BITS_PER_FLOAT 32
\r
774 #define PR_BITS_PER_DOUBLE 64
\r
775 #define PR_BITS_PER_WORD 64
\r
777 #define PR_BITS_PER_BYTE_LOG2 3
\r
778 #define PR_BITS_PER_SHORT_LOG2 4
\r
779 #define PR_BITS_PER_INT_LOG2 5
\r
780 #define PR_BITS_PER_INT64_LOG2 6
\r
781 #define PR_BITS_PER_LONG_LOG2 6
\r
782 #define PR_BITS_PER_FLOAT_LOG2 5
\r
783 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
784 #define PR_BITS_PER_WORD_LOG2 6
\r
786 #define PR_ALIGN_OF_SHORT 2
\r
787 #define PR_ALIGN_OF_INT 4
\r
788 #define PR_ALIGN_OF_LONG 8
\r
789 #define PR_ALIGN_OF_INT64 8
\r
790 #define PR_ALIGN_OF_FLOAT 4
\r
791 #define PR_ALIGN_OF_DOUBLE 8
\r
792 #define PR_ALIGN_OF_POINTER 8
\r
793 #define PR_ALIGN_OF_WORD 8
\r
795 #define PR_BYTES_PER_WORD_LOG2 3
\r
796 #define PR_BYTES_PER_DWORD_LOG2 3
\r
798 #elif defined(__s390__)
\r
800 #define IS_BIG_ENDIAN 1
\r
801 #undef IS_LITTLE_ENDIAN
\r
803 #define PR_BYTES_PER_BYTE 1
\r
804 #define PR_BYTES_PER_SHORT 2
\r
805 #define PR_BYTES_PER_INT 4
\r
806 #define PR_BYTES_PER_INT64 8
\r
807 #define PR_BYTES_PER_LONG 4
\r
808 #define PR_BYTES_PER_FLOAT 4
\r
809 #define PR_BYTES_PER_DOUBLE 8
\r
810 #define PR_BYTES_PER_WORD 4
\r
811 #define PR_BYTES_PER_DWORD 8
\r
813 #define PR_BITS_PER_BYTE 8
\r
814 #define PR_BITS_PER_SHORT 16
\r
815 #define PR_BITS_PER_INT 32
\r
816 #define PR_BITS_PER_INT64 64
\r
817 #define PR_BITS_PER_LONG 32
\r
818 #define PR_BITS_PER_FLOAT 32
\r
819 #define PR_BITS_PER_DOUBLE 64
\r
820 #define PR_BITS_PER_WORD 32
\r
822 #define PR_BITS_PER_BYTE_LOG2 3
\r
823 #define PR_BITS_PER_SHORT_LOG2 4
\r
824 #define PR_BITS_PER_INT_LOG2 5
\r
825 #define PR_BITS_PER_INT64_LOG2 6
\r
826 #define PR_BITS_PER_LONG_LOG2 5
\r
827 #define PR_BITS_PER_FLOAT_LOG2 5
\r
828 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
829 #define PR_BITS_PER_WORD_LOG2 5
\r
831 #define PR_ALIGN_OF_SHORT 2
\r
832 #define PR_ALIGN_OF_INT 4
\r
833 #define PR_ALIGN_OF_LONG 4
\r
834 #define PR_ALIGN_OF_INT64 4
\r
835 #define PR_ALIGN_OF_FLOAT 4
\r
836 #define PR_ALIGN_OF_DOUBLE 4
\r
837 #define PR_ALIGN_OF_POINTER 4
\r
838 #define PR_ALIGN_OF_WORD 4
\r
840 #define PR_BYTES_PER_WORD_LOG2 2
\r
841 #define PR_BYTES_PER_DWORD_LOG2 3
\r
843 #elif defined(__sh__)
\r
845 #define IS_LITTLE_ENDIAN 1
\r
846 #undef IS_BIG_ENDIAN
\r
848 #define PR_BYTES_PER_BYTE 1
\r
849 #define PR_BYTES_PER_SHORT 2
\r
850 #define PR_BYTES_PER_INT 4
\r
851 #define PR_BYTES_PER_INT64 8
\r
852 #define PR_BYTES_PER_LONG 4
\r
853 #define PR_BYTES_PER_FLOAT 4
\r
854 #define PR_BYTES_PER_DOUBLE 8
\r
855 #define PR_BYTES_PER_WORD 4
\r
856 #define PR_BYTES_PER_DWORD 8
\r
858 #define PR_BITS_PER_BYTE 8
\r
859 #define PR_BITS_PER_SHORT 16
\r
860 #define PR_BITS_PER_INT 32
\r
861 #define PR_BITS_PER_INT64 64
\r
862 #define PR_BITS_PER_LONG 32
\r
863 #define PR_BITS_PER_FLOAT 32
\r
864 #define PR_BITS_PER_DOUBLE 64
\r
865 #define PR_BITS_PER_WORD 32
\r
867 #define PR_BITS_PER_BYTE_LOG2 3
\r
868 #define PR_BITS_PER_SHORT_LOG2 4
\r
869 #define PR_BITS_PER_INT_LOG2 5
\r
870 #define PR_BITS_PER_INT64_LOG2 6
\r
871 #define PR_BITS_PER_LONG_LOG2 5
\r
872 #define PR_BITS_PER_FLOAT_LOG2 5
\r
873 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
874 #define PR_BITS_PER_WORD_LOG2 5
\r
876 #define PR_ALIGN_OF_SHORT 2
\r
877 #define PR_ALIGN_OF_INT 4
\r
878 #define PR_ALIGN_OF_LONG 4
\r
879 #define PR_ALIGN_OF_INT64 4
\r
880 #define PR_ALIGN_OF_FLOAT 4
\r
881 #define PR_ALIGN_OF_DOUBLE 4
\r
882 #define PR_ALIGN_OF_POINTER 4
\r
883 #define PR_ALIGN_OF_WORD 4
\r
885 #define PR_BYTES_PER_WORD_LOG2 2
\r
886 #define PR_BYTES_PER_DWORD_LOG2 3
\r
888 #elif defined(__avr32__)
\r
890 #undef IS_LITTLE_ENDIAN
\r
891 #define IS_BIG_ENDIAN 1
\r
893 #define PR_BYTES_PER_BYTE 1
\r
894 #define PR_BYTES_PER_SHORT 2
\r
895 #define PR_BYTES_PER_INT 4
\r
896 #define PR_BYTES_PER_INT64 8
\r
897 #define PR_BYTES_PER_LONG 4
\r
898 #define PR_BYTES_PER_FLOAT 4
\r
899 #define PR_BYTES_PER_DOUBLE 8
\r
900 #define PR_BYTES_PER_WORD 4
\r
901 #define PR_BYTES_PER_DWORD 8
\r
903 #define PR_BITS_PER_BYTE 8
\r
904 #define PR_BITS_PER_SHORT 16
\r
905 #define PR_BITS_PER_INT 32
\r
906 #define PR_BITS_PER_INT64 64
\r
907 #define PR_BITS_PER_LONG 32
\r
908 #define PR_BITS_PER_FLOAT 32
\r
909 #define PR_BITS_PER_DOUBLE 64
\r
910 #define PR_BITS_PER_WORD 32
\r
912 #define PR_BITS_PER_BYTE_LOG2 3
\r
913 #define PR_BITS_PER_SHORT_LOG2 4
\r
914 #define PR_BITS_PER_INT_LOG2 5
\r
915 #define PR_BITS_PER_INT64_LOG2 6
\r
916 #define PR_BITS_PER_LONG_LOG2 5
\r
917 #define PR_BITS_PER_FLOAT_LOG2 5
\r
918 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
919 #define PR_BITS_PER_WORD_LOG2 5
\r
921 #define PR_ALIGN_OF_SHORT 2
\r
922 #define PR_ALIGN_OF_INT 4
\r
923 #define PR_ALIGN_OF_LONG 4
\r
924 #define PR_ALIGN_OF_INT64 4
\r
925 #define PR_ALIGN_OF_FLOAT 4
\r
926 #define PR_ALIGN_OF_DOUBLE 4
\r
927 #define PR_ALIGN_OF_POINTER 4
\r
928 #define PR_ALIGN_OF_WORD 4
\r
930 #define PR_BYTES_PER_WORD_LOG2 2
\r
931 #define PR_BYTES_PER_DWORD_LOG2 3
\r
933 #elif defined(__m32r__)
\r
935 #undef IS_LITTLE_ENDIAN
\r
936 #define IS_BIG_ENDIAN 1
\r
938 #define PR_BYTES_PER_BYTE 1
\r
939 #define PR_BYTES_PER_SHORT 2
\r
940 #define PR_BYTES_PER_INT 4
\r
941 #define PR_BYTES_PER_INT64 8
\r
942 #define PR_BYTES_PER_LONG 4
\r
943 #define PR_BYTES_PER_FLOAT 4
\r
944 #define PR_BYTES_PER_DOUBLE 8
\r
945 #define PR_BYTES_PER_WORD 4
\r
946 #define PR_BYTES_PER_DWORD 8
\r
948 #define PR_BITS_PER_BYTE 8
\r
949 #define PR_BITS_PER_SHORT 16
\r
950 #define PR_BITS_PER_INT 32
\r
951 #define PR_BITS_PER_INT64 64
\r
952 #define PR_BITS_PER_LONG 32
\r
953 #define PR_BITS_PER_FLOAT 32
\r
954 #define PR_BITS_PER_DOUBLE 64
\r
955 #define PR_BITS_PER_WORD 32
\r
957 #define PR_BITS_PER_BYTE_LOG2 3
\r
958 #define PR_BITS_PER_SHORT_LOG2 4
\r
959 #define PR_BITS_PER_INT_LOG2 5
\r
960 #define PR_BITS_PER_INT64_LOG2 6
\r
961 #define PR_BITS_PER_LONG_LOG2 5
\r
962 #define PR_BITS_PER_FLOAT_LOG2 5
\r
963 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
964 #define PR_BITS_PER_WORD_LOG2 5
\r
966 #define PR_ALIGN_OF_SHORT 2
\r
967 #define PR_ALIGN_OF_INT 4
\r
968 #define PR_ALIGN_OF_LONG 4
\r
969 #define PR_ALIGN_OF_INT64 4
\r
970 #define PR_ALIGN_OF_FLOAT 4
\r
971 #define PR_ALIGN_OF_DOUBLE 4
\r
972 #define PR_ALIGN_OF_POINTER 4
\r
973 #define PR_ALIGN_OF_WORD 4
\r
975 #define PR_BYTES_PER_WORD_LOG2 2
\r
976 #define PR_BYTES_PER_DWORD_LOG2 3
\r
978 #elif defined(__or1k__)
\r
980 #undef IS_LITTLE_ENDIAN
\r
981 #define IS_BIG_ENDIAN 1
\r
983 #define PR_BYTES_PER_BYTE 1
\r
984 #define PR_BYTES_PER_SHORT 2
\r
985 #define PR_BYTES_PER_INT 4
\r
986 #define PR_BYTES_PER_INT64 8
\r
987 #define PR_BYTES_PER_LONG 4
\r
988 #define PR_BYTES_PER_FLOAT 4
\r
989 #define PR_BYTES_PER_DOUBLE 8
\r
990 #define PR_BYTES_PER_WORD 4
\r
991 #define PR_BYTES_PER_DWORD 8
\r
993 #define PR_BITS_PER_BYTE 8
\r
994 #define PR_BITS_PER_SHORT 16
\r
995 #define PR_BITS_PER_INT 32
\r
996 #define PR_BITS_PER_INT64 64
\r
997 #define PR_BITS_PER_LONG 32
\r
998 #define PR_BITS_PER_FLOAT 32
\r
999 #define PR_BITS_PER_DOUBLE 64
\r
1000 #define PR_BITS_PER_WORD 32
\r
1002 #define PR_BITS_PER_BYTE_LOG2 3
\r
1003 #define PR_BITS_PER_SHORT_LOG2 4
\r
1004 #define PR_BITS_PER_INT_LOG2 5
\r
1005 #define PR_BITS_PER_INT64_LOG2 6
\r
1006 #define PR_BITS_PER_LONG_LOG2 5
\r
1007 #define PR_BITS_PER_FLOAT_LOG2 5
\r
1008 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
1009 #define PR_BITS_PER_WORD_LOG2 5
\r
1011 #define PR_ALIGN_OF_SHORT 2
\r
1012 #define PR_ALIGN_OF_INT 4
\r
1013 #define PR_ALIGN_OF_LONG 4
\r
1014 #define PR_ALIGN_OF_INT64 4
\r
1015 #define PR_ALIGN_OF_FLOAT 4
\r
1016 #define PR_ALIGN_OF_DOUBLE 4
\r
1017 #define PR_ALIGN_OF_POINTER 4
\r
1018 #define PR_ALIGN_OF_WORD 4
\r
1020 #define PR_BYTES_PER_WORD_LOG2 2
\r
1021 #define PR_BYTES_PER_DWORD_LOG2 3
\r
1023 #elif defined(__riscv) && (__riscv_xlen == 32)
\r
1025 #undef IS_BIG_ENDIAN
\r
1026 #define IS_LITTLE_ENDIAN 1
\r
1029 #define PR_BYTES_PER_BYTE 1
\r
1030 #define PR_BYTES_PER_SHORT 2
\r
1031 #define PR_BYTES_PER_INT 4
\r
1032 #define PR_BYTES_PER_INT64 8
\r
1033 #define PR_BYTES_PER_LONG 4
\r
1034 #define PR_BYTES_PER_FLOAT 4
\r
1035 #define PR_BYTES_PER_DOUBLE 8
\r
1036 #define PR_BYTES_PER_WORD 4
\r
1037 #define PR_BYTES_PER_DWORD 8
\r
1039 #define PR_BITS_PER_BYTE 8
\r
1040 #define PR_BITS_PER_SHORT 16
\r
1041 #define PR_BITS_PER_INT 32
\r
1042 #define PR_BITS_PER_INT64 64
\r
1043 #define PR_BITS_PER_LONG 32
\r
1044 #define PR_BITS_PER_FLOAT 32
\r
1045 #define PR_BITS_PER_DOUBLE 64
\r
1046 #define PR_BITS_PER_WORD 32
\r
1048 #define PR_BITS_PER_BYTE_LOG2 3
\r
1049 #define PR_BITS_PER_SHORT_LOG2 4
\r
1050 #define PR_BITS_PER_INT_LOG2 5
\r
1051 #define PR_BITS_PER_INT64_LOG2 6
\r
1052 #define PR_BITS_PER_LONG_LOG2 5
\r
1053 #define PR_BITS_PER_FLOAT_LOG2 5
\r
1054 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
1055 #define PR_BITS_PER_WORD_LOG2 5
\r
1057 #define PR_ALIGN_OF_SHORT 2
\r
1058 #define PR_ALIGN_OF_INT 4
\r
1059 #define PR_ALIGN_OF_LONG 4
\r
1060 #define PR_ALIGN_OF_INT64 8
\r
1061 #define PR_ALIGN_OF_FLOAT 4
\r
1062 #define PR_ALIGN_OF_DOUBLE 8
\r
1063 #define PR_ALIGN_OF_POINTER 4
\r
1064 #define PR_ALIGN_OF_WORD 4
\r
1066 #define PR_BYTES_PER_WORD_LOG2 2
\r
1067 #define PR_BYTES_PER_DWORD_LOG2 3
\r
1069 #elif defined(__riscv) && (__riscv_xlen == 64)
\r
1071 #undef IS_BIG_ENDIAN
\r
1072 #define IS_LITTLE_ENDIAN 1
\r
1075 #define PR_BYTES_PER_BYTE 1
\r
1076 #define PR_BYTES_PER_SHORT 2
\r
1077 #define PR_BYTES_PER_INT 4
\r
1078 #define PR_BYTES_PER_INT64 8
\r
1079 #define PR_BYTES_PER_LONG 8
\r
1080 #define PR_BYTES_PER_FLOAT 4
\r
1081 #define PR_BYTES_PER_DOUBLE 8
\r
1082 #define PR_BYTES_PER_WORD 8
\r
1083 #define PR_BYTES_PER_DWORD 8
\r
1085 #define PR_BITS_PER_BYTE 8
\r
1086 #define PR_BITS_PER_SHORT 16
\r
1087 #define PR_BITS_PER_INT 32
\r
1088 #define PR_BITS_PER_INT64 64
\r
1089 #define PR_BITS_PER_LONG 64
\r
1090 #define PR_BITS_PER_FLOAT 32
\r
1091 #define PR_BITS_PER_DOUBLE 64
\r
1092 #define PR_BITS_PER_WORD 64
\r
1094 #define PR_BITS_PER_BYTE_LOG2 3
\r
1095 #define PR_BITS_PER_SHORT_LOG2 4
\r
1096 #define PR_BITS_PER_INT_LOG2 5
\r
1097 #define PR_BITS_PER_INT64_LOG2 6
\r
1098 #define PR_BITS_PER_LONG_LOG2 6
\r
1099 #define PR_BITS_PER_FLOAT_LOG2 5
\r
1100 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
1101 #define PR_BITS_PER_WORD_LOG2 6
\r
1103 #define PR_ALIGN_OF_SHORT 2
\r
1104 #define PR_ALIGN_OF_INT 4
\r
1105 #define PR_ALIGN_OF_LONG 8
\r
1106 #define PR_ALIGN_OF_INT64 8
\r
1107 #define PR_ALIGN_OF_FLOAT 4
\r
1108 #define PR_ALIGN_OF_DOUBLE 8
\r
1109 #define PR_ALIGN_OF_POINTER 8
\r
1110 #define PR_ALIGN_OF_WORD 8
\r
1112 #define PR_BYTES_PER_WORD_LOG2 3
\r
1113 #define PR_BYTES_PER_DWORD_LOG2 3
\r
1115 #elif defined(__arc__)
\r
1117 #define IS_LITTLE_ENDIAN 1
\r
1118 #undef IS_BIG_ENDIAN
\r
1120 #define PR_BYTES_PER_BYTE 1
\r
1121 #define PR_BYTES_PER_SHORT 2
\r
1122 #define PR_BYTES_PER_INT 4
\r
1123 #define PR_BYTES_PER_INT64 8
\r
1124 #define PR_BYTES_PER_LONG 4
\r
1125 #define PR_BYTES_PER_FLOAT 4
\r
1126 #define PR_BYTES_PER_DOUBLE 8
\r
1127 #define PR_BYTES_PER_WORD 4
\r
1128 #define PR_BYTES_PER_DWORD 8
\r
1130 #define PR_BITS_PER_BYTE 8
\r
1131 #define PR_BITS_PER_SHORT 16
\r
1132 #define PR_BITS_PER_INT 32
\r
1133 #define PR_BITS_PER_INT64 64
\r
1134 #define PR_BITS_PER_LONG 32
\r
1135 #define PR_BITS_PER_FLOAT 32
\r
1136 #define PR_BITS_PER_DOUBLE 64
\r
1137 #define PR_BITS_PER_WORD 32
\r
1139 #define PR_BITS_PER_BYTE_LOG2 3
\r
1140 #define PR_BITS_PER_SHORT_LOG2 4
\r
1141 #define PR_BITS_PER_INT_LOG2 5
\r
1142 #define PR_BITS_PER_INT64_LOG2 6
\r
1143 #define PR_BITS_PER_LONG_LOG2 5
\r
1144 #define PR_BITS_PER_FLOAT_LOG2 5
\r
1145 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
1146 #define PR_BITS_PER_WORD_LOG2 5
\r
1148 #define PR_ALIGN_OF_SHORT 2
\r
1149 #define PR_ALIGN_OF_INT 4
\r
1150 #define PR_ALIGN_OF_LONG 4
\r
1151 #define PR_ALIGN_OF_INT64 4
\r
1152 #define PR_ALIGN_OF_FLOAT 4
\r
1153 #define PR_ALIGN_OF_DOUBLE 4
\r
1154 #define PR_ALIGN_OF_POINTER 4
\r
1155 #define PR_ALIGN_OF_WORD 4
\r
1157 #define PR_BYTES_PER_WORD_LOG2 2
\r
1158 #define PR_BYTES_PER_DWORD_LOG2 3
\r
1160 #elif defined(__nios2__) || defined(__microblaze__) || defined(__nds32__) || \
\r
1161 defined(__xtensa__)
\r
1163 #if defined(__microblaze__) && defined(__BIG_ENDIAN__)
\r
1164 #define IS_BIG_ENDIAN 1
\r
1165 #undef IS_LITTLE_ENDIAN
\r
1167 #define IS_LITTLE_ENDIAN 1
\r
1168 #undef IS_BIG_ENDIAN
\r
1171 #define PR_BYTES_PER_BYTE 1
\r
1172 #define PR_BYTES_PER_SHORT 2
\r
1173 #define PR_BYTES_PER_INT 4
\r
1174 #define PR_BYTES_PER_INT64 8
\r
1175 #define PR_BYTES_PER_LONG 4
\r
1176 #define PR_BYTES_PER_FLOAT 4
\r
1177 #define PR_BYTES_PER_DOUBLE 8
\r
1178 #define PR_BYTES_PER_WORD 4
\r
1179 #define PR_BYTES_PER_DWORD 8
\r
1181 #define PR_BITS_PER_BYTE 8
\r
1182 #define PR_BITS_PER_SHORT 16
\r
1183 #define PR_BITS_PER_INT 32
\r
1184 #define PR_BITS_PER_INT64 64
\r
1185 #define PR_BITS_PER_LONG 32
\r
1186 #define PR_BITS_PER_FLOAT 32
\r
1187 #define PR_BITS_PER_DOUBLE 64
\r
1188 #define PR_BITS_PER_WORD 32
\r
1190 #define PR_BITS_PER_BYTE_LOG2 3
\r
1191 #define PR_BITS_PER_SHORT_LOG2 4
\r
1192 #define PR_BITS_PER_INT_LOG2 5
\r
1193 #define PR_BITS_PER_INT64_LOG2 6
\r
1194 #define PR_BITS_PER_LONG_LOG2 5
\r
1195 #define PR_BITS_PER_FLOAT_LOG2 5
\r
1196 #define PR_BITS_PER_DOUBLE_LOG2 6
\r
1197 #define PR_BITS_PER_WORD_LOG2 5
\r
1199 #define PR_ALIGN_OF_SHORT 2
\r
1200 #define PR_ALIGN_OF_INT 4
\r
1201 #define PR_ALIGN_OF_LONG 4
\r
1202 #define PR_ALIGN_OF_INT64 4
\r
1203 #define PR_ALIGN_OF_FLOAT 4
\r
1204 #define PR_ALIGN_OF_DOUBLE 4
\r
1205 #define PR_ALIGN_OF_POINTER 4
\r
1206 #define PR_ALIGN_OF_WORD 4
\r
1208 #define PR_BYTES_PER_WORD_LOG2 2
\r
1209 #define PR_BYTES_PER_DWORD_LOG2 3
\r
1213 #error "Unknown CPU architecture"
\r
1217 #ifndef HAVE_LONG_LONG
\r
1218 #define HAVE_LONG_LONG
\r
1220 #if PR_ALIGN_OF_DOUBLE == 8
\r
1221 #define HAVE_ALIGNED_DOUBLES
\r
1223 #if PR_ALIGN_OF_INT64 == 8
\r
1224 #define HAVE_ALIGNED_LONGLONGS
\r
1227 #ifndef NO_NSPR_10_SUPPORT
\r
1229 #define BYTES_PER_BYTE PR_BYTES_PER_BYTE
\r
1230 #define BYTES_PER_SHORT PR_BYTES_PER_SHORT
\r
1231 #define BYTES_PER_INT PR_BYTES_PER_INT
\r
1232 #define BYTES_PER_INT64 PR_BYTES_PER_INT64
\r
1233 #define BYTES_PER_LONG PR_BYTES_PER_LONG
\r
1234 #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
\r
1235 #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
\r
1236 #define BYTES_PER_WORD PR_BYTES_PER_WORD
\r
1237 #define BYTES_PER_DWORD PR_BYTES_PER_DWORD
\r
1239 #define BITS_PER_BYTE PR_BITS_PER_BYTE
\r
1240 #define BITS_PER_SHORT PR_BITS_PER_SHORT
\r
1241 #define BITS_PER_INT PR_BITS_PER_INT
\r
1242 #define BITS_PER_INT64 PR_BITS_PER_INT64
\r
1243 #define BITS_PER_LONG PR_BITS_PER_LONG
\r
1244 #define BITS_PER_FLOAT PR_BITS_PER_FLOAT
\r
1245 #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
\r
1246 #define BITS_PER_WORD PR_BITS_PER_WORD
\r
1248 #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
\r
1249 #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
\r
1250 #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
\r
1251 #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
\r
1252 #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
\r
1253 #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
\r
1254 #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
\r
1255 #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
\r
1257 #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
\r
1258 #define ALIGN_OF_INT PR_ALIGN_OF_INT
\r
1259 #define ALIGN_OF_LONG PR_ALIGN_OF_LONG
\r
1260 #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
\r
1261 #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
\r
1262 #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
\r
1263 #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
\r
1264 #define ALIGN_OF_WORD PR_ALIGN_OF_WORD
\r
1266 #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
\r
1267 #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
\r
1268 #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
\r
1270 #endif /* NO_NSPR_10_SUPPORT */
\r
1272 #endif /* nspr_cpucfg___ */
\r