_linux.cfg (35681B)
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 /* 7 * This file is used by not only Linux but also other glibc systems 8 * such as GNU/Hurd and GNU/k*BSD. 9 */ 10 11 #ifndef nspr_cpucfg___ 12 #define nspr_cpucfg___ 13 14 #ifndef XP_UNIX 15 #define XP_UNIX 16 #endif 17 18 #if !defined(LINUX) && defined(__linux__) 19 #define LINUX 20 #endif 21 22 #ifdef __FreeBSD_kernel__ 23 #define PR_AF_INET6 28 /* same as AF_INET6 */ 24 #elif defined(__GNU__) 25 #define PR_AF_INET6 26 /* same as AF_INET6 */ 26 #else 27 #define PR_AF_INET6 10 /* same as AF_INET6 */ 28 #endif 29 30 #ifdef __powerpc64__ 31 32 #ifdef __LITTLE_ENDIAN__ 33 #define IS_LITTLE_ENDIAN 1 34 #undef IS_BIG_ENDIAN 35 #else 36 #undef IS_LITTLE_ENDIAN 37 #define IS_BIG_ENDIAN 1 38 #endif 39 #define IS_64 40 41 #define PR_BYTES_PER_BYTE 1 42 #define PR_BYTES_PER_SHORT 2 43 #define PR_BYTES_PER_INT 4 44 #define PR_BYTES_PER_INT64 8 45 #define PR_BYTES_PER_LONG 8 46 #define PR_BYTES_PER_FLOAT 4 47 #define PR_BYTES_PER_DOUBLE 8 48 #define PR_BYTES_PER_WORD 8 49 #define PR_BYTES_PER_DWORD 8 50 51 #define PR_BITS_PER_BYTE 8 52 #define PR_BITS_PER_SHORT 16 53 #define PR_BITS_PER_INT 32 54 #define PR_BITS_PER_INT64 64 55 #define PR_BITS_PER_LONG 64 56 #define PR_BITS_PER_FLOAT 32 57 #define PR_BITS_PER_DOUBLE 64 58 #define PR_BITS_PER_WORD 64 59 60 #define PR_BITS_PER_BYTE_LOG2 3 61 #define PR_BITS_PER_SHORT_LOG2 4 62 #define PR_BITS_PER_INT_LOG2 5 63 #define PR_BITS_PER_INT64_LOG2 6 64 #define PR_BITS_PER_LONG_LOG2 6 65 #define PR_BITS_PER_FLOAT_LOG2 5 66 #define PR_BITS_PER_DOUBLE_LOG2 6 67 #define PR_BITS_PER_WORD_LOG2 6 68 69 #define PR_ALIGN_OF_SHORT 2 70 #define PR_ALIGN_OF_INT 4 71 #define PR_ALIGN_OF_LONG 8 72 #define PR_ALIGN_OF_INT64 8 73 #define PR_ALIGN_OF_FLOAT 4 74 #define PR_ALIGN_OF_DOUBLE 8 75 #define PR_ALIGN_OF_POINTER 8 76 #define PR_ALIGN_OF_WORD 8 77 78 #define PR_BYTES_PER_WORD_LOG2 3 79 #define PR_BYTES_PER_DWORD_LOG2 3 80 81 #elif defined(__powerpc__) 82 83 #ifdef __LITTLE_ENDIAN__ 84 #define IS_LITTLE_ENDIAN 1 85 #undef IS_BIG_ENDIAN 86 #else 87 #undef IS_LITTLE_ENDIAN 88 #define IS_BIG_ENDIAN 1 89 #endif 90 91 #define PR_BYTES_PER_BYTE 1 92 #define PR_BYTES_PER_SHORT 2 93 #define PR_BYTES_PER_INT 4 94 #define PR_BYTES_PER_INT64 8 95 #define PR_BYTES_PER_LONG 4 96 #define PR_BYTES_PER_FLOAT 4 97 #define PR_BYTES_PER_DOUBLE 8 98 #define PR_BYTES_PER_WORD 4 99 #define PR_BYTES_PER_DWORD 8 100 101 #define PR_BITS_PER_BYTE 8 102 #define PR_BITS_PER_SHORT 16 103 #define PR_BITS_PER_INT 32 104 #define PR_BITS_PER_INT64 64 105 #define PR_BITS_PER_LONG 32 106 #define PR_BITS_PER_FLOAT 32 107 #define PR_BITS_PER_DOUBLE 64 108 #define PR_BITS_PER_WORD 32 109 110 #define PR_BITS_PER_BYTE_LOG2 3 111 #define PR_BITS_PER_SHORT_LOG2 4 112 #define PR_BITS_PER_INT_LOG2 5 113 #define PR_BITS_PER_INT64_LOG2 6 114 #define PR_BITS_PER_LONG_LOG2 5 115 #define PR_BITS_PER_FLOAT_LOG2 5 116 #define PR_BITS_PER_DOUBLE_LOG2 6 117 #define PR_BITS_PER_WORD_LOG2 5 118 119 #define PR_ALIGN_OF_SHORT 2 120 #define PR_ALIGN_OF_INT 4 121 #define PR_ALIGN_OF_LONG 4 122 #define PR_ALIGN_OF_INT64 8 123 #define PR_ALIGN_OF_FLOAT 4 124 #define PR_ALIGN_OF_DOUBLE 8 125 #define PR_ALIGN_OF_POINTER 4 126 #define PR_ALIGN_OF_WORD 4 127 128 #define PR_BYTES_PER_WORD_LOG2 2 129 #define PR_BYTES_PER_DWORD_LOG2 3 130 131 #elif defined(__alpha) 132 133 #define IS_LITTLE_ENDIAN 1 134 #undef IS_BIG_ENDIAN 135 #define IS_64 136 137 #define PR_BYTES_PER_BYTE 1 138 #define PR_BYTES_PER_SHORT 2 139 #define PR_BYTES_PER_INT 4 140 #define PR_BYTES_PER_INT64 8 141 #define PR_BYTES_PER_LONG 8 142 #define PR_BYTES_PER_FLOAT 4 143 #define PR_BYTES_PER_DOUBLE 8 144 #define PR_BYTES_PER_WORD 8 145 #define PR_BYTES_PER_DWORD 8 146 147 #define PR_BITS_PER_BYTE 8 148 #define PR_BITS_PER_SHORT 16 149 #define PR_BITS_PER_INT 32 150 #define PR_BITS_PER_INT64 64 151 #define PR_BITS_PER_LONG 64 152 #define PR_BITS_PER_FLOAT 32 153 #define PR_BITS_PER_DOUBLE 64 154 #define PR_BITS_PER_WORD 64 155 156 #define PR_BITS_PER_BYTE_LOG2 3 157 #define PR_BITS_PER_SHORT_LOG2 4 158 #define PR_BITS_PER_INT_LOG2 5 159 #define PR_BITS_PER_INT64_LOG2 6 160 #define PR_BITS_PER_LONG_LOG2 6 161 #define PR_BITS_PER_FLOAT_LOG2 5 162 #define PR_BITS_PER_DOUBLE_LOG2 6 163 #define PR_BITS_PER_WORD_LOG2 6 164 165 #define PR_ALIGN_OF_SHORT 2 166 #define PR_ALIGN_OF_INT 4 167 #define PR_ALIGN_OF_LONG 8 168 #define PR_ALIGN_OF_INT64 8 169 #define PR_ALIGN_OF_FLOAT 4 170 #define PR_ALIGN_OF_DOUBLE 8 171 #define PR_ALIGN_OF_POINTER 8 172 #define PR_ALIGN_OF_WORD 8 173 174 #define PR_BYTES_PER_WORD_LOG2 3 175 #define PR_BYTES_PER_DWORD_LOG2 3 176 177 #elif defined(__ia64__) 178 179 #define IS_LITTLE_ENDIAN 1 180 #undef IS_BIG_ENDIAN 181 #define IS_64 182 183 #define PR_BYTES_PER_BYTE 1 184 #define PR_BYTES_PER_SHORT 2 185 #define PR_BYTES_PER_INT 4 186 #define PR_BYTES_PER_INT64 8 187 #define PR_BYTES_PER_LONG 8 188 #define PR_BYTES_PER_FLOAT 4 189 #define PR_BYTES_PER_DOUBLE 8 190 #define PR_BYTES_PER_WORD 8 191 #define PR_BYTES_PER_DWORD 8 192 193 #define PR_BITS_PER_BYTE 8 194 #define PR_BITS_PER_SHORT 16 195 #define PR_BITS_PER_INT 32 196 #define PR_BITS_PER_INT64 64 197 #define PR_BITS_PER_LONG 64 198 #define PR_BITS_PER_FLOAT 32 199 #define PR_BITS_PER_DOUBLE 64 200 #define PR_BITS_PER_WORD 64 201 202 #define PR_BITS_PER_BYTE_LOG2 3 203 #define PR_BITS_PER_SHORT_LOG2 4 204 #define PR_BITS_PER_INT_LOG2 5 205 #define PR_BITS_PER_INT64_LOG2 6 206 #define PR_BITS_PER_LONG_LOG2 6 207 #define PR_BITS_PER_FLOAT_LOG2 5 208 #define PR_BITS_PER_DOUBLE_LOG2 6 209 #define PR_BITS_PER_WORD_LOG2 6 210 211 #define PR_ALIGN_OF_SHORT 2 212 #define PR_ALIGN_OF_INT 4 213 #define PR_ALIGN_OF_LONG 8 214 #define PR_ALIGN_OF_INT64 8 215 #define PR_ALIGN_OF_FLOAT 4 216 #define PR_ALIGN_OF_DOUBLE 8 217 #define PR_ALIGN_OF_POINTER 8 218 #define PR_ALIGN_OF_WORD 8 219 220 #define PR_BYTES_PER_WORD_LOG2 3 221 #define PR_BYTES_PER_DWORD_LOG2 3 222 223 #elif defined(__x86_64__) 224 225 #ifdef __ILP32__ 226 227 #define IS_LITTLE_ENDIAN 1 228 #undef IS_BIG_ENDIAN 229 230 #define PR_BYTES_PER_BYTE 1 231 #define PR_BYTES_PER_SHORT 2 232 #define PR_BYTES_PER_INT 4 233 #define PR_BYTES_PER_INT64 8 234 #define PR_BYTES_PER_LONG 4 235 #define PR_BYTES_PER_FLOAT 4 236 #define PR_BYTES_PER_DOUBLE 8 237 #define PR_BYTES_PER_WORD 4 238 #define PR_BYTES_PER_DWORD 8 239 240 #define PR_BITS_PER_BYTE 8 241 #define PR_BITS_PER_SHORT 16 242 #define PR_BITS_PER_INT 32 243 #define PR_BITS_PER_INT64 64 244 #define PR_BITS_PER_LONG 32 245 #define PR_BITS_PER_FLOAT 32 246 #define PR_BITS_PER_DOUBLE 64 247 #define PR_BITS_PER_WORD 32 248 249 #define PR_BITS_PER_BYTE_LOG2 3 250 #define PR_BITS_PER_SHORT_LOG2 4 251 #define PR_BITS_PER_INT_LOG2 5 252 #define PR_BITS_PER_INT64_LOG2 6 253 #define PR_BITS_PER_LONG_LOG2 5 254 #define PR_BITS_PER_FLOAT_LOG2 5 255 #define PR_BITS_PER_DOUBLE_LOG2 6 256 #define PR_BITS_PER_WORD_LOG2 5 257 258 #define PR_ALIGN_OF_SHORT 2 259 #define PR_ALIGN_OF_INT 4 260 #define PR_ALIGN_OF_LONG 4 261 #define PR_ALIGN_OF_INT64 8 262 #define PR_ALIGN_OF_FLOAT 4 263 #define PR_ALIGN_OF_DOUBLE 8 264 #define PR_ALIGN_OF_POINTER 4 265 #define PR_ALIGN_OF_WORD 4 266 267 #define PR_BYTES_PER_WORD_LOG2 2 268 #define PR_BYTES_PER_DWORD_LOG2 3 269 270 #else 271 272 #define IS_LITTLE_ENDIAN 1 273 #undef IS_BIG_ENDIAN 274 #define IS_64 275 276 #define PR_BYTES_PER_BYTE 1 277 #define PR_BYTES_PER_SHORT 2 278 #define PR_BYTES_PER_INT 4 279 #define PR_BYTES_PER_INT64 8 280 #define PR_BYTES_PER_LONG 8 281 #define PR_BYTES_PER_FLOAT 4 282 #define PR_BYTES_PER_DOUBLE 8 283 #define PR_BYTES_PER_WORD 8 284 #define PR_BYTES_PER_DWORD 8 285 286 #define PR_BITS_PER_BYTE 8 287 #define PR_BITS_PER_SHORT 16 288 #define PR_BITS_PER_INT 32 289 #define PR_BITS_PER_INT64 64 290 #define PR_BITS_PER_LONG 64 291 #define PR_BITS_PER_FLOAT 32 292 #define PR_BITS_PER_DOUBLE 64 293 #define PR_BITS_PER_WORD 64 294 295 #define PR_BITS_PER_BYTE_LOG2 3 296 #define PR_BITS_PER_SHORT_LOG2 4 297 #define PR_BITS_PER_INT_LOG2 5 298 #define PR_BITS_PER_INT64_LOG2 6 299 #define PR_BITS_PER_LONG_LOG2 6 300 #define PR_BITS_PER_FLOAT_LOG2 5 301 #define PR_BITS_PER_DOUBLE_LOG2 6 302 #define PR_BITS_PER_WORD_LOG2 6 303 304 #define PR_ALIGN_OF_SHORT 2 305 #define PR_ALIGN_OF_INT 4 306 #define PR_ALIGN_OF_LONG 8 307 #define PR_ALIGN_OF_INT64 8 308 #define PR_ALIGN_OF_FLOAT 4 309 #define PR_ALIGN_OF_DOUBLE 8 310 #define PR_ALIGN_OF_POINTER 8 311 #define PR_ALIGN_OF_WORD 8 312 313 #define PR_BYTES_PER_WORD_LOG2 3 314 #define PR_BYTES_PER_DWORD_LOG2 3 315 316 #endif 317 318 #elif defined(__mc68000__) 319 320 #undef IS_LITTLE_ENDIAN 321 #define IS_BIG_ENDIAN 1 322 323 #define PR_BYTES_PER_BYTE 1 324 #define PR_BYTES_PER_SHORT 2 325 #define PR_BYTES_PER_INT 4 326 #define PR_BYTES_PER_INT64 8 327 #define PR_BYTES_PER_LONG 4 328 #define PR_BYTES_PER_FLOAT 4 329 #define PR_BYTES_PER_DOUBLE 8 330 #define PR_BYTES_PER_WORD 4 331 #define PR_BYTES_PER_DWORD 8 332 333 #define PR_BITS_PER_BYTE 8 334 #define PR_BITS_PER_SHORT 16 335 #define PR_BITS_PER_INT 32 336 #define PR_BITS_PER_INT64 64 337 #define PR_BITS_PER_LONG 32 338 #define PR_BITS_PER_FLOAT 32 339 #define PR_BITS_PER_DOUBLE 64 340 #define PR_BITS_PER_WORD 32 341 342 #define PR_BITS_PER_BYTE_LOG2 3 343 #define PR_BITS_PER_SHORT_LOG2 4 344 #define PR_BITS_PER_INT_LOG2 5 345 #define PR_BITS_PER_INT64_LOG2 6 346 #define PR_BITS_PER_LONG_LOG2 5 347 #define PR_BITS_PER_FLOAT_LOG2 5 348 #define PR_BITS_PER_DOUBLE_LOG2 6 349 #define PR_BITS_PER_WORD_LOG2 5 350 351 #define PR_ALIGN_OF_SHORT 2 352 #define PR_ALIGN_OF_INT 2 353 #define PR_ALIGN_OF_LONG 2 354 #define PR_ALIGN_OF_INT64 2 355 #define PR_ALIGN_OF_FLOAT 2 356 #define PR_ALIGN_OF_DOUBLE 2 357 #define PR_ALIGN_OF_POINTER 2 358 #define PR_ALIGN_OF_WORD 2 359 360 #define PR_BYTES_PER_WORD_LOG2 2 361 #define PR_BYTES_PER_DWORD_LOG2 3 362 363 #elif defined(__sparc__) && defined (__arch64__) 364 365 #undef IS_LITTLE_ENDIAN 366 #define IS_BIG_ENDIAN 1 367 #define IS_64 368 369 #define PR_BYTES_PER_BYTE 1 370 #define PR_BYTES_PER_SHORT 2 371 #define PR_BYTES_PER_INT 4 372 #define PR_BYTES_PER_INT64 8 373 #define PR_BYTES_PER_LONG 8 374 #define PR_BYTES_PER_FLOAT 4 375 #define PR_BYTES_PER_DOUBLE 8 376 #define PR_BYTES_PER_WORD 8 377 #define PR_BYTES_PER_DWORD 8 378 379 #define PR_BITS_PER_BYTE 8 380 #define PR_BITS_PER_SHORT 16 381 #define PR_BITS_PER_INT 32 382 #define PR_BITS_PER_INT64 64 383 #define PR_BITS_PER_LONG 64 384 #define PR_BITS_PER_FLOAT 32 385 #define PR_BITS_PER_DOUBLE 64 386 #define PR_BITS_PER_WORD 64 387 388 #define PR_BITS_PER_BYTE_LOG2 3 389 #define PR_BITS_PER_SHORT_LOG2 4 390 #define PR_BITS_PER_INT_LOG2 5 391 #define PR_BITS_PER_INT64_LOG2 6 392 #define PR_BITS_PER_LONG_LOG2 6 393 #define PR_BITS_PER_FLOAT_LOG2 5 394 #define PR_BITS_PER_DOUBLE_LOG2 6 395 #define PR_BITS_PER_WORD_LOG2 6 396 397 #define PR_ALIGN_OF_SHORT 2 398 #define PR_ALIGN_OF_INT 4 399 #define PR_ALIGN_OF_INT64 8 400 #define PR_ALIGN_OF_LONG 8 401 #define PR_ALIGN_OF_FLOAT 4 402 #define PR_ALIGN_OF_DOUBLE 8 403 #define PR_ALIGN_OF_POINTER 8 404 #define PR_ALIGN_OF_WORD 8 405 406 #define PR_BYTES_PER_WORD_LOG2 3 407 #define PR_BYTES_PER_DWORD_LOG2 3 408 409 #elif defined(__sparc__) 410 411 #undef IS_LITTLE_ENDIAN 412 #define IS_BIG_ENDIAN 1 413 414 #define PR_BYTES_PER_BYTE 1 415 #define PR_BYTES_PER_SHORT 2 416 #define PR_BYTES_PER_INT 4 417 #define PR_BYTES_PER_INT64 8 418 #define PR_BYTES_PER_LONG 4 419 #define PR_BYTES_PER_FLOAT 4 420 #define PR_BYTES_PER_DOUBLE 8 421 #define PR_BYTES_PER_WORD 4 422 #define PR_BYTES_PER_DWORD 8 423 424 #define PR_BITS_PER_BYTE 8 425 #define PR_BITS_PER_SHORT 16 426 #define PR_BITS_PER_INT 32 427 #define PR_BITS_PER_INT64 64 428 #define PR_BITS_PER_LONG 32 429 #define PR_BITS_PER_FLOAT 32 430 #define PR_BITS_PER_DOUBLE 64 431 #define PR_BITS_PER_WORD 32 432 433 #define PR_BITS_PER_BYTE_LOG2 3 434 #define PR_BITS_PER_SHORT_LOG2 4 435 #define PR_BITS_PER_INT_LOG2 5 436 #define PR_BITS_PER_INT64_LOG2 6 437 #define PR_BITS_PER_LONG_LOG2 5 438 #define PR_BITS_PER_FLOAT_LOG2 5 439 #define PR_BITS_PER_DOUBLE_LOG2 6 440 #define PR_BITS_PER_WORD_LOG2 5 441 442 #define PR_ALIGN_OF_SHORT 2 443 #define PR_ALIGN_OF_INT 4 444 #define PR_ALIGN_OF_LONG 4 445 #define PR_ALIGN_OF_INT64 8 446 #define PR_ALIGN_OF_FLOAT 4 447 #define PR_ALIGN_OF_DOUBLE 8 448 #define PR_ALIGN_OF_POINTER 4 449 #define PR_ALIGN_OF_WORD 4 450 451 #define PR_BYTES_PER_WORD_LOG2 2 452 #define PR_BYTES_PER_DWORD_LOG2 3 453 454 #elif defined(__i386__) 455 456 #define IS_LITTLE_ENDIAN 1 457 #undef IS_BIG_ENDIAN 458 459 #define PR_BYTES_PER_BYTE 1 460 #define PR_BYTES_PER_SHORT 2 461 #define PR_BYTES_PER_INT 4 462 #define PR_BYTES_PER_INT64 8 463 #define PR_BYTES_PER_LONG 4 464 #define PR_BYTES_PER_FLOAT 4 465 #define PR_BYTES_PER_DOUBLE 8 466 #define PR_BYTES_PER_WORD 4 467 #define PR_BYTES_PER_DWORD 8 468 469 #define PR_BITS_PER_BYTE 8 470 #define PR_BITS_PER_SHORT 16 471 #define PR_BITS_PER_INT 32 472 #define PR_BITS_PER_INT64 64 473 #define PR_BITS_PER_LONG 32 474 #define PR_BITS_PER_FLOAT 32 475 #define PR_BITS_PER_DOUBLE 64 476 #define PR_BITS_PER_WORD 32 477 478 #define PR_BITS_PER_BYTE_LOG2 3 479 #define PR_BITS_PER_SHORT_LOG2 4 480 #define PR_BITS_PER_INT_LOG2 5 481 #define PR_BITS_PER_INT64_LOG2 6 482 #define PR_BITS_PER_LONG_LOG2 5 483 #define PR_BITS_PER_FLOAT_LOG2 5 484 #define PR_BITS_PER_DOUBLE_LOG2 6 485 #define PR_BITS_PER_WORD_LOG2 5 486 487 #define PR_ALIGN_OF_SHORT 2 488 #define PR_ALIGN_OF_INT 4 489 #define PR_ALIGN_OF_LONG 4 490 #define PR_ALIGN_OF_INT64 4 491 #define PR_ALIGN_OF_FLOAT 4 492 #define PR_ALIGN_OF_DOUBLE 4 493 #define PR_ALIGN_OF_POINTER 4 494 #define PR_ALIGN_OF_WORD 4 495 496 #define PR_BYTES_PER_WORD_LOG2 2 497 #define PR_BYTES_PER_DWORD_LOG2 3 498 499 #elif defined(__mips__) 500 501 /* For _ABI64 */ 502 #if defined(__GLIBC__) || defined(__UCLIBC__) 503 #include <sgidefs.h> 504 #else 505 #include <asm/sgidefs.h> 506 #endif 507 508 #ifdef __MIPSEB__ 509 #define IS_BIG_ENDIAN 1 510 #undef IS_LITTLE_ENDIAN 511 #elif defined(__MIPSEL__) 512 #define IS_LITTLE_ENDIAN 1 513 #undef IS_BIG_ENDIAN 514 #else 515 #error "Unknown MIPS endianness." 516 #endif 517 518 #if _MIPS_SIM == _ABI64 519 520 #define IS_64 521 522 #define PR_BYTES_PER_BYTE 1 523 #define PR_BYTES_PER_SHORT 2 524 #define PR_BYTES_PER_INT 4 525 #define PR_BYTES_PER_INT64 8 526 #define PR_BYTES_PER_LONG 8 527 #define PR_BYTES_PER_FLOAT 4 528 #define PR_BYTES_PER_DOUBLE 8 529 #define PR_BYTES_PER_WORD 8 530 #define PR_BYTES_PER_DWORD 8 531 532 #define PR_BITS_PER_BYTE 8 533 #define PR_BITS_PER_SHORT 16 534 #define PR_BITS_PER_INT 32 535 #define PR_BITS_PER_INT64 64 536 #define PR_BITS_PER_LONG 64 537 #define PR_BITS_PER_FLOAT 32 538 #define PR_BITS_PER_DOUBLE 64 539 #define PR_BITS_PER_WORD 64 540 541 #define PR_BITS_PER_BYTE_LOG2 3 542 #define PR_BITS_PER_SHORT_LOG2 4 543 #define PR_BITS_PER_INT_LOG2 5 544 #define PR_BITS_PER_INT64_LOG2 6 545 #define PR_BITS_PER_LONG_LOG2 6 546 #define PR_BITS_PER_FLOAT_LOG2 5 547 #define PR_BITS_PER_DOUBLE_LOG2 6 548 #define PR_BITS_PER_WORD_LOG2 6 549 550 #define PR_ALIGN_OF_SHORT 2 551 #define PR_ALIGN_OF_INT 4 552 #define PR_ALIGN_OF_LONG 8 553 #define PR_ALIGN_OF_INT64 8 554 #define PR_ALIGN_OF_FLOAT 4 555 #define PR_ALIGN_OF_DOUBLE 8 556 #define PR_ALIGN_OF_POINTER 8 557 #define PR_ALIGN_OF_WORD 8 558 559 #define PR_BYTES_PER_WORD_LOG2 3 560 #define PR_BYTES_PER_DWORD_LOG2 3 561 562 #else /* _ABI64 */ 563 564 #define PR_BYTES_PER_BYTE 1 565 #define PR_BYTES_PER_SHORT 2 566 #define PR_BYTES_PER_INT 4 567 #define PR_BYTES_PER_INT64 8 568 #define PR_BYTES_PER_LONG 4 569 #define PR_BYTES_PER_FLOAT 4 570 #define PR_BYTES_PER_DOUBLE 8 571 #define PR_BYTES_PER_WORD 4 572 #define PR_BYTES_PER_DWORD 8 573 574 #define PR_BITS_PER_BYTE 8 575 #define PR_BITS_PER_SHORT 16 576 #define PR_BITS_PER_INT 32 577 #define PR_BITS_PER_INT64 64 578 #define PR_BITS_PER_LONG 32 579 #define PR_BITS_PER_FLOAT 32 580 #define PR_BITS_PER_DOUBLE 64 581 #define PR_BITS_PER_WORD 32 582 583 #define PR_BITS_PER_BYTE_LOG2 3 584 #define PR_BITS_PER_SHORT_LOG2 4 585 #define PR_BITS_PER_INT_LOG2 5 586 #define PR_BITS_PER_INT64_LOG2 6 587 #define PR_BITS_PER_LONG_LOG2 5 588 #define PR_BITS_PER_FLOAT_LOG2 5 589 #define PR_BITS_PER_DOUBLE_LOG2 6 590 #define PR_BITS_PER_WORD_LOG2 5 591 592 #define PR_ALIGN_OF_SHORT 2 593 #define PR_ALIGN_OF_INT 4 594 #define PR_ALIGN_OF_LONG 4 595 #define PR_ALIGN_OF_INT64 8 596 #define PR_ALIGN_OF_FLOAT 4 597 #define PR_ALIGN_OF_DOUBLE 8 598 #define PR_ALIGN_OF_POINTER 4 599 #define PR_ALIGN_OF_WORD 4 600 601 #define PR_BYTES_PER_WORD_LOG2 2 602 #define PR_BYTES_PER_DWORD_LOG2 3 603 604 #endif /* _ABI64 */ 605 606 #elif defined(__arm__) 607 608 #ifdef __ARMEB__ 609 #undef IS_LITTLE_ENDIAN 610 #define IS_BIG_ENDIAN 1 611 #elif defined(__ARMEL__) 612 #define IS_LITTLE_ENDIAN 1 613 #undef IS_BIG_ENDIAN 614 #else 615 #error "Unknown ARM endianness." 616 #endif 617 618 #define PR_BYTES_PER_BYTE 1 619 #define PR_BYTES_PER_SHORT 2 620 #define PR_BYTES_PER_INT 4 621 #define PR_BYTES_PER_INT64 8 622 #define PR_BYTES_PER_LONG 4 623 #define PR_BYTES_PER_FLOAT 4 624 #define PR_BYTES_PER_DOUBLE 8 625 #define PR_BYTES_PER_WORD 4 626 #define PR_BYTES_PER_DWORD 8 627 628 #define PR_BITS_PER_BYTE 8 629 #define PR_BITS_PER_SHORT 16 630 #define PR_BITS_PER_INT 32 631 #define PR_BITS_PER_INT64 64 632 #define PR_BITS_PER_LONG 32 633 #define PR_BITS_PER_FLOAT 32 634 #define PR_BITS_PER_DOUBLE 64 635 #define PR_BITS_PER_WORD 32 636 637 #define PR_BITS_PER_BYTE_LOG2 3 638 #define PR_BITS_PER_SHORT_LOG2 4 639 #define PR_BITS_PER_INT_LOG2 5 640 #define PR_BITS_PER_INT64_LOG2 6 641 #define PR_BITS_PER_LONG_LOG2 5 642 #define PR_BITS_PER_FLOAT_LOG2 5 643 #define PR_BITS_PER_DOUBLE_LOG2 6 644 #define PR_BITS_PER_WORD_LOG2 5 645 646 #define PR_ALIGN_OF_SHORT 2 647 #define PR_ALIGN_OF_INT 4 648 #define PR_ALIGN_OF_LONG 4 649 #define PR_ALIGN_OF_INT64 4 650 #define PR_ALIGN_OF_FLOAT 4 651 #define PR_ALIGN_OF_DOUBLE 4 652 #define PR_ALIGN_OF_POINTER 4 653 #define PR_ALIGN_OF_WORD 4 654 655 #define PR_BYTES_PER_WORD_LOG2 2 656 #define PR_BYTES_PER_DWORD_LOG2 3 657 658 #elif defined(__aarch64__) 659 660 #ifdef __AARCH64EB__ 661 #undef IS_LITTLE_ENDIAN 662 #define IS_BIG_ENDIAN 1 663 #elif defined(__AARCH64EL__) 664 #define IS_LITTLE_ENDIAN 1 665 #undef IS_BIG_ENDIAN 666 #else 667 #error "Unknown Aarch64 endianness." 668 #endif 669 #define IS_64 670 671 #define PR_BYTES_PER_BYTE 1 672 #define PR_BYTES_PER_SHORT 2 673 #define PR_BYTES_PER_INT 4 674 #define PR_BYTES_PER_INT64 8 675 #define PR_BYTES_PER_LONG 8 676 #define PR_BYTES_PER_FLOAT 4 677 #define PR_BYTES_PER_DOUBLE 8 678 #define PR_BYTES_PER_WORD 8 679 #define PR_BYTES_PER_DWORD 8 680 681 #define PR_BITS_PER_BYTE 8 682 #define PR_BITS_PER_SHORT 16 683 #define PR_BITS_PER_INT 32 684 #define PR_BITS_PER_INT64 64 685 #define PR_BITS_PER_LONG 64 686 #define PR_BITS_PER_FLOAT 32 687 #define PR_BITS_PER_DOUBLE 64 688 #define PR_BITS_PER_WORD 64 689 690 #define PR_BITS_PER_BYTE_LOG2 3 691 #define PR_BITS_PER_SHORT_LOG2 4 692 #define PR_BITS_PER_INT_LOG2 5 693 #define PR_BITS_PER_INT64_LOG2 6 694 #define PR_BITS_PER_LONG_LOG2 6 695 #define PR_BITS_PER_FLOAT_LOG2 5 696 #define PR_BITS_PER_DOUBLE_LOG2 6 697 #define PR_BITS_PER_WORD_LOG2 6 698 699 #define PR_ALIGN_OF_SHORT 2 700 #define PR_ALIGN_OF_INT 4 701 #define PR_ALIGN_OF_LONG 8 702 #define PR_ALIGN_OF_INT64 8 703 #define PR_ALIGN_OF_FLOAT 4 704 #define PR_ALIGN_OF_DOUBLE 8 705 #define PR_ALIGN_OF_POINTER 8 706 #define PR_ALIGN_OF_WORD 8 707 708 #define PR_BYTES_PER_WORD_LOG2 3 709 #define PR_BYTES_PER_DWORD_LOG2 3 710 711 #elif defined(__hppa__) 712 713 #undef IS_LITTLE_ENDIAN 714 #define IS_BIG_ENDIAN 1 715 716 #define PR_BYTES_PER_BYTE 1 717 #define PR_BYTES_PER_SHORT 2 718 #define PR_BYTES_PER_INT 4 719 #define PR_BYTES_PER_INT64 8 720 #define PR_BYTES_PER_LONG 4 721 #define PR_BYTES_PER_FLOAT 4 722 #define PR_BYTES_PER_DOUBLE 8 723 #define PR_BYTES_PER_WORD 4 724 #define PR_BYTES_PER_DWORD 8 725 726 #define PR_BITS_PER_BYTE 8 727 #define PR_BITS_PER_SHORT 16 728 #define PR_BITS_PER_INT 32 729 #define PR_BITS_PER_INT64 64 730 #define PR_BITS_PER_LONG 32 731 #define PR_BITS_PER_FLOAT 32 732 #define PR_BITS_PER_DOUBLE 64 733 #define PR_BITS_PER_WORD 32 734 735 #define PR_BITS_PER_BYTE_LOG2 3 736 #define PR_BITS_PER_SHORT_LOG2 4 737 #define PR_BITS_PER_INT_LOG2 5 738 #define PR_BITS_PER_INT64_LOG2 6 739 #define PR_BITS_PER_LONG_LOG2 5 740 #define PR_BITS_PER_FLOAT_LOG2 5 741 #define PR_BITS_PER_DOUBLE_LOG2 6 742 #define PR_BITS_PER_WORD_LOG2 5 743 744 #define PR_ALIGN_OF_SHORT 2 745 #define PR_ALIGN_OF_INT 4 746 #define PR_ALIGN_OF_LONG 4 747 #define PR_ALIGN_OF_INT64 8 748 #define PR_ALIGN_OF_FLOAT 4 749 #define PR_ALIGN_OF_DOUBLE 8 750 #define PR_ALIGN_OF_POINTER 4 751 #define PR_ALIGN_OF_WORD 4 752 753 #define PR_BYTES_PER_WORD_LOG2 2 754 #define PR_BYTES_PER_DWORD_LOG2 3 755 756 #elif defined(__s390x__) 757 758 #define IS_BIG_ENDIAN 1 759 #undef IS_LITTLE_ENDIAN 760 #define IS_64 761 762 #define PR_BYTES_PER_BYTE 1 763 #define PR_BYTES_PER_SHORT 2 764 #define PR_BYTES_PER_INT 4 765 #define PR_BYTES_PER_INT64 8 766 #define PR_BYTES_PER_LONG 8 767 #define PR_BYTES_PER_FLOAT 4 768 #define PR_BYTES_PER_DOUBLE 8 769 #define PR_BYTES_PER_WORD 8 770 #define PR_BYTES_PER_DWORD 8 771 772 #define PR_BITS_PER_BYTE 8 773 #define PR_BITS_PER_SHORT 16 774 #define PR_BITS_PER_INT 32 775 #define PR_BITS_PER_INT64 64 776 #define PR_BITS_PER_LONG 64 777 #define PR_BITS_PER_FLOAT 32 778 #define PR_BITS_PER_DOUBLE 64 779 #define PR_BITS_PER_WORD 64 780 781 #define PR_BITS_PER_BYTE_LOG2 3 782 #define PR_BITS_PER_SHORT_LOG2 4 783 #define PR_BITS_PER_INT_LOG2 5 784 #define PR_BITS_PER_INT64_LOG2 6 785 #define PR_BITS_PER_LONG_LOG2 6 786 #define PR_BITS_PER_FLOAT_LOG2 5 787 #define PR_BITS_PER_DOUBLE_LOG2 6 788 #define PR_BITS_PER_WORD_LOG2 6 789 790 #define PR_ALIGN_OF_SHORT 2 791 #define PR_ALIGN_OF_INT 4 792 #define PR_ALIGN_OF_LONG 8 793 #define PR_ALIGN_OF_INT64 8 794 #define PR_ALIGN_OF_FLOAT 4 795 #define PR_ALIGN_OF_DOUBLE 8 796 #define PR_ALIGN_OF_POINTER 8 797 #define PR_ALIGN_OF_WORD 8 798 799 #define PR_BYTES_PER_WORD_LOG2 3 800 #define PR_BYTES_PER_DWORD_LOG2 3 801 802 #elif defined(__s390__) 803 804 #define IS_BIG_ENDIAN 1 805 #undef IS_LITTLE_ENDIAN 806 807 #define PR_BYTES_PER_BYTE 1 808 #define PR_BYTES_PER_SHORT 2 809 #define PR_BYTES_PER_INT 4 810 #define PR_BYTES_PER_INT64 8 811 #define PR_BYTES_PER_LONG 4 812 #define PR_BYTES_PER_FLOAT 4 813 #define PR_BYTES_PER_DOUBLE 8 814 #define PR_BYTES_PER_WORD 4 815 #define PR_BYTES_PER_DWORD 8 816 817 #define PR_BITS_PER_BYTE 8 818 #define PR_BITS_PER_SHORT 16 819 #define PR_BITS_PER_INT 32 820 #define PR_BITS_PER_INT64 64 821 #define PR_BITS_PER_LONG 32 822 #define PR_BITS_PER_FLOAT 32 823 #define PR_BITS_PER_DOUBLE 64 824 #define PR_BITS_PER_WORD 32 825 826 #define PR_BITS_PER_BYTE_LOG2 3 827 #define PR_BITS_PER_SHORT_LOG2 4 828 #define PR_BITS_PER_INT_LOG2 5 829 #define PR_BITS_PER_INT64_LOG2 6 830 #define PR_BITS_PER_LONG_LOG2 5 831 #define PR_BITS_PER_FLOAT_LOG2 5 832 #define PR_BITS_PER_DOUBLE_LOG2 6 833 #define PR_BITS_PER_WORD_LOG2 5 834 835 #define PR_ALIGN_OF_SHORT 2 836 #define PR_ALIGN_OF_INT 4 837 #define PR_ALIGN_OF_LONG 4 838 #define PR_ALIGN_OF_INT64 4 839 #define PR_ALIGN_OF_FLOAT 4 840 #define PR_ALIGN_OF_DOUBLE 4 841 #define PR_ALIGN_OF_POINTER 4 842 #define PR_ALIGN_OF_WORD 4 843 844 #define PR_BYTES_PER_WORD_LOG2 2 845 #define PR_BYTES_PER_DWORD_LOG2 3 846 847 #elif defined(__sh__) 848 849 #define IS_LITTLE_ENDIAN 1 850 #undef IS_BIG_ENDIAN 851 852 #define PR_BYTES_PER_BYTE 1 853 #define PR_BYTES_PER_SHORT 2 854 #define PR_BYTES_PER_INT 4 855 #define PR_BYTES_PER_INT64 8 856 #define PR_BYTES_PER_LONG 4 857 #define PR_BYTES_PER_FLOAT 4 858 #define PR_BYTES_PER_DOUBLE 8 859 #define PR_BYTES_PER_WORD 4 860 #define PR_BYTES_PER_DWORD 8 861 862 #define PR_BITS_PER_BYTE 8 863 #define PR_BITS_PER_SHORT 16 864 #define PR_BITS_PER_INT 32 865 #define PR_BITS_PER_INT64 64 866 #define PR_BITS_PER_LONG 32 867 #define PR_BITS_PER_FLOAT 32 868 #define PR_BITS_PER_DOUBLE 64 869 #define PR_BITS_PER_WORD 32 870 871 #define PR_BITS_PER_BYTE_LOG2 3 872 #define PR_BITS_PER_SHORT_LOG2 4 873 #define PR_BITS_PER_INT_LOG2 5 874 #define PR_BITS_PER_INT64_LOG2 6 875 #define PR_BITS_PER_LONG_LOG2 5 876 #define PR_BITS_PER_FLOAT_LOG2 5 877 #define PR_BITS_PER_DOUBLE_LOG2 6 878 #define PR_BITS_PER_WORD_LOG2 5 879 880 #define PR_ALIGN_OF_SHORT 2 881 #define PR_ALIGN_OF_INT 4 882 #define PR_ALIGN_OF_LONG 4 883 #define PR_ALIGN_OF_INT64 4 884 #define PR_ALIGN_OF_FLOAT 4 885 #define PR_ALIGN_OF_DOUBLE 4 886 #define PR_ALIGN_OF_POINTER 4 887 #define PR_ALIGN_OF_WORD 4 888 889 #define PR_BYTES_PER_WORD_LOG2 2 890 #define PR_BYTES_PER_DWORD_LOG2 3 891 892 #elif defined(__avr32__) 893 894 #undef IS_LITTLE_ENDIAN 895 #define IS_BIG_ENDIAN 1 896 897 #define PR_BYTES_PER_BYTE 1 898 #define PR_BYTES_PER_SHORT 2 899 #define PR_BYTES_PER_INT 4 900 #define PR_BYTES_PER_INT64 8 901 #define PR_BYTES_PER_LONG 4 902 #define PR_BYTES_PER_FLOAT 4 903 #define PR_BYTES_PER_DOUBLE 8 904 #define PR_BYTES_PER_WORD 4 905 #define PR_BYTES_PER_DWORD 8 906 907 #define PR_BITS_PER_BYTE 8 908 #define PR_BITS_PER_SHORT 16 909 #define PR_BITS_PER_INT 32 910 #define PR_BITS_PER_INT64 64 911 #define PR_BITS_PER_LONG 32 912 #define PR_BITS_PER_FLOAT 32 913 #define PR_BITS_PER_DOUBLE 64 914 #define PR_BITS_PER_WORD 32 915 916 #define PR_BITS_PER_BYTE_LOG2 3 917 #define PR_BITS_PER_SHORT_LOG2 4 918 #define PR_BITS_PER_INT_LOG2 5 919 #define PR_BITS_PER_INT64_LOG2 6 920 #define PR_BITS_PER_LONG_LOG2 5 921 #define PR_BITS_PER_FLOAT_LOG2 5 922 #define PR_BITS_PER_DOUBLE_LOG2 6 923 #define PR_BITS_PER_WORD_LOG2 5 924 925 #define PR_ALIGN_OF_SHORT 2 926 #define PR_ALIGN_OF_INT 4 927 #define PR_ALIGN_OF_LONG 4 928 #define PR_ALIGN_OF_INT64 4 929 #define PR_ALIGN_OF_FLOAT 4 930 #define PR_ALIGN_OF_DOUBLE 4 931 #define PR_ALIGN_OF_POINTER 4 932 #define PR_ALIGN_OF_WORD 4 933 934 #define PR_BYTES_PER_WORD_LOG2 2 935 #define PR_BYTES_PER_DWORD_LOG2 3 936 937 #elif defined(__m32r__) 938 939 #undef IS_LITTLE_ENDIAN 940 #define IS_BIG_ENDIAN 1 941 942 #define PR_BYTES_PER_BYTE 1 943 #define PR_BYTES_PER_SHORT 2 944 #define PR_BYTES_PER_INT 4 945 #define PR_BYTES_PER_INT64 8 946 #define PR_BYTES_PER_LONG 4 947 #define PR_BYTES_PER_FLOAT 4 948 #define PR_BYTES_PER_DOUBLE 8 949 #define PR_BYTES_PER_WORD 4 950 #define PR_BYTES_PER_DWORD 8 951 952 #define PR_BITS_PER_BYTE 8 953 #define PR_BITS_PER_SHORT 16 954 #define PR_BITS_PER_INT 32 955 #define PR_BITS_PER_INT64 64 956 #define PR_BITS_PER_LONG 32 957 #define PR_BITS_PER_FLOAT 32 958 #define PR_BITS_PER_DOUBLE 64 959 #define PR_BITS_PER_WORD 32 960 961 #define PR_BITS_PER_BYTE_LOG2 3 962 #define PR_BITS_PER_SHORT_LOG2 4 963 #define PR_BITS_PER_INT_LOG2 5 964 #define PR_BITS_PER_INT64_LOG2 6 965 #define PR_BITS_PER_LONG_LOG2 5 966 #define PR_BITS_PER_FLOAT_LOG2 5 967 #define PR_BITS_PER_DOUBLE_LOG2 6 968 #define PR_BITS_PER_WORD_LOG2 5 969 970 #define PR_ALIGN_OF_SHORT 2 971 #define PR_ALIGN_OF_INT 4 972 #define PR_ALIGN_OF_LONG 4 973 #define PR_ALIGN_OF_INT64 4 974 #define PR_ALIGN_OF_FLOAT 4 975 #define PR_ALIGN_OF_DOUBLE 4 976 #define PR_ALIGN_OF_POINTER 4 977 #define PR_ALIGN_OF_WORD 4 978 979 #define PR_BYTES_PER_WORD_LOG2 2 980 #define PR_BYTES_PER_DWORD_LOG2 3 981 982 #elif defined(__or1k__) 983 984 #undef IS_LITTLE_ENDIAN 985 #define IS_BIG_ENDIAN 1 986 987 #define PR_BYTES_PER_BYTE 1 988 #define PR_BYTES_PER_SHORT 2 989 #define PR_BYTES_PER_INT 4 990 #define PR_BYTES_PER_INT64 8 991 #define PR_BYTES_PER_LONG 4 992 #define PR_BYTES_PER_FLOAT 4 993 #define PR_BYTES_PER_DOUBLE 8 994 #define PR_BYTES_PER_WORD 4 995 #define PR_BYTES_PER_DWORD 8 996 997 #define PR_BITS_PER_BYTE 8 998 #define PR_BITS_PER_SHORT 16 999 #define PR_BITS_PER_INT 32 1000 #define PR_BITS_PER_INT64 64 1001 #define PR_BITS_PER_LONG 32 1002 #define PR_BITS_PER_FLOAT 32 1003 #define PR_BITS_PER_DOUBLE 64 1004 #define PR_BITS_PER_WORD 32 1005 1006 #define PR_BITS_PER_BYTE_LOG2 3 1007 #define PR_BITS_PER_SHORT_LOG2 4 1008 #define PR_BITS_PER_INT_LOG2 5 1009 #define PR_BITS_PER_INT64_LOG2 6 1010 #define PR_BITS_PER_LONG_LOG2 5 1011 #define PR_BITS_PER_FLOAT_LOG2 5 1012 #define PR_BITS_PER_DOUBLE_LOG2 6 1013 #define PR_BITS_PER_WORD_LOG2 5 1014 1015 #define PR_ALIGN_OF_SHORT 2 1016 #define PR_ALIGN_OF_INT 4 1017 #define PR_ALIGN_OF_LONG 4 1018 #define PR_ALIGN_OF_INT64 4 1019 #define PR_ALIGN_OF_FLOAT 4 1020 #define PR_ALIGN_OF_DOUBLE 4 1021 #define PR_ALIGN_OF_POINTER 4 1022 #define PR_ALIGN_OF_WORD 4 1023 1024 #define PR_BYTES_PER_WORD_LOG2 2 1025 #define PR_BYTES_PER_DWORD_LOG2 3 1026 1027 #elif defined(__riscv) && (__riscv_xlen == 32) 1028 1029 #undef IS_BIG_ENDIAN 1030 #define IS_LITTLE_ENDIAN 1 1031 #undef IS_64 1032 1033 #define PR_BYTES_PER_BYTE 1 1034 #define PR_BYTES_PER_SHORT 2 1035 #define PR_BYTES_PER_INT 4 1036 #define PR_BYTES_PER_INT64 8 1037 #define PR_BYTES_PER_LONG 4 1038 #define PR_BYTES_PER_FLOAT 4 1039 #define PR_BYTES_PER_DOUBLE 8 1040 #define PR_BYTES_PER_WORD 4 1041 #define PR_BYTES_PER_DWORD 8 1042 1043 #define PR_BITS_PER_BYTE 8 1044 #define PR_BITS_PER_SHORT 16 1045 #define PR_BITS_PER_INT 32 1046 #define PR_BITS_PER_INT64 64 1047 #define PR_BITS_PER_LONG 32 1048 #define PR_BITS_PER_FLOAT 32 1049 #define PR_BITS_PER_DOUBLE 64 1050 #define PR_BITS_PER_WORD 32 1051 1052 #define PR_BITS_PER_BYTE_LOG2 3 1053 #define PR_BITS_PER_SHORT_LOG2 4 1054 #define PR_BITS_PER_INT_LOG2 5 1055 #define PR_BITS_PER_INT64_LOG2 6 1056 #define PR_BITS_PER_LONG_LOG2 5 1057 #define PR_BITS_PER_FLOAT_LOG2 5 1058 #define PR_BITS_PER_DOUBLE_LOG2 6 1059 #define PR_BITS_PER_WORD_LOG2 5 1060 1061 #define PR_ALIGN_OF_SHORT 2 1062 #define PR_ALIGN_OF_INT 4 1063 #define PR_ALIGN_OF_LONG 4 1064 #define PR_ALIGN_OF_INT64 8 1065 #define PR_ALIGN_OF_FLOAT 4 1066 #define PR_ALIGN_OF_DOUBLE 8 1067 #define PR_ALIGN_OF_POINTER 4 1068 #define PR_ALIGN_OF_WORD 4 1069 1070 #define PR_BYTES_PER_WORD_LOG2 2 1071 #define PR_BYTES_PER_DWORD_LOG2 3 1072 1073 #elif defined(__riscv) && (__riscv_xlen == 64) 1074 1075 #undef IS_BIG_ENDIAN 1076 #define IS_LITTLE_ENDIAN 1 1077 #define IS_64 1078 1079 #define PR_BYTES_PER_BYTE 1 1080 #define PR_BYTES_PER_SHORT 2 1081 #define PR_BYTES_PER_INT 4 1082 #define PR_BYTES_PER_INT64 8 1083 #define PR_BYTES_PER_LONG 8 1084 #define PR_BYTES_PER_FLOAT 4 1085 #define PR_BYTES_PER_DOUBLE 8 1086 #define PR_BYTES_PER_WORD 8 1087 #define PR_BYTES_PER_DWORD 8 1088 1089 #define PR_BITS_PER_BYTE 8 1090 #define PR_BITS_PER_SHORT 16 1091 #define PR_BITS_PER_INT 32 1092 #define PR_BITS_PER_INT64 64 1093 #define PR_BITS_PER_LONG 64 1094 #define PR_BITS_PER_FLOAT 32 1095 #define PR_BITS_PER_DOUBLE 64 1096 #define PR_BITS_PER_WORD 64 1097 1098 #define PR_BITS_PER_BYTE_LOG2 3 1099 #define PR_BITS_PER_SHORT_LOG2 4 1100 #define PR_BITS_PER_INT_LOG2 5 1101 #define PR_BITS_PER_INT64_LOG2 6 1102 #define PR_BITS_PER_LONG_LOG2 6 1103 #define PR_BITS_PER_FLOAT_LOG2 5 1104 #define PR_BITS_PER_DOUBLE_LOG2 6 1105 #define PR_BITS_PER_WORD_LOG2 6 1106 1107 #define PR_ALIGN_OF_SHORT 2 1108 #define PR_ALIGN_OF_INT 4 1109 #define PR_ALIGN_OF_LONG 8 1110 #define PR_ALIGN_OF_INT64 8 1111 #define PR_ALIGN_OF_FLOAT 4 1112 #define PR_ALIGN_OF_DOUBLE 8 1113 #define PR_ALIGN_OF_POINTER 8 1114 #define PR_ALIGN_OF_WORD 8 1115 1116 #define PR_BYTES_PER_WORD_LOG2 3 1117 #define PR_BYTES_PER_DWORD_LOG2 3 1118 1119 #elif defined(__arc__) 1120 1121 #define IS_LITTLE_ENDIAN 1 1122 #undef IS_BIG_ENDIAN 1123 1124 #define PR_BYTES_PER_BYTE 1 1125 #define PR_BYTES_PER_SHORT 2 1126 #define PR_BYTES_PER_INT 4 1127 #define PR_BYTES_PER_INT64 8 1128 #define PR_BYTES_PER_LONG 4 1129 #define PR_BYTES_PER_FLOAT 4 1130 #define PR_BYTES_PER_DOUBLE 8 1131 #define PR_BYTES_PER_WORD 4 1132 #define PR_BYTES_PER_DWORD 8 1133 1134 #define PR_BITS_PER_BYTE 8 1135 #define PR_BITS_PER_SHORT 16 1136 #define PR_BITS_PER_INT 32 1137 #define PR_BITS_PER_INT64 64 1138 #define PR_BITS_PER_LONG 32 1139 #define PR_BITS_PER_FLOAT 32 1140 #define PR_BITS_PER_DOUBLE 64 1141 #define PR_BITS_PER_WORD 32 1142 1143 #define PR_BITS_PER_BYTE_LOG2 3 1144 #define PR_BITS_PER_SHORT_LOG2 4 1145 #define PR_BITS_PER_INT_LOG2 5 1146 #define PR_BITS_PER_INT64_LOG2 6 1147 #define PR_BITS_PER_LONG_LOG2 5 1148 #define PR_BITS_PER_FLOAT_LOG2 5 1149 #define PR_BITS_PER_DOUBLE_LOG2 6 1150 #define PR_BITS_PER_WORD_LOG2 5 1151 1152 #define PR_ALIGN_OF_SHORT 2 1153 #define PR_ALIGN_OF_INT 4 1154 #define PR_ALIGN_OF_LONG 4 1155 #define PR_ALIGN_OF_INT64 4 1156 #define PR_ALIGN_OF_FLOAT 4 1157 #define PR_ALIGN_OF_DOUBLE 4 1158 #define PR_ALIGN_OF_POINTER 4 1159 #define PR_ALIGN_OF_WORD 4 1160 1161 #define PR_BYTES_PER_WORD_LOG2 2 1162 #define PR_BYTES_PER_DWORD_LOG2 3 1163 1164 #elif defined(__nios2__) || defined(__microblaze__) || defined(__nds32__) || \ 1165 defined(__xtensa__) 1166 1167 #if defined(__microblaze__) && defined(__BIG_ENDIAN__) 1168 #define IS_BIG_ENDIAN 1 1169 #undef IS_LITTLE_ENDIAN 1170 #else 1171 #define IS_LITTLE_ENDIAN 1 1172 #undef IS_BIG_ENDIAN 1173 #endif 1174 1175 #define PR_BYTES_PER_BYTE 1 1176 #define PR_BYTES_PER_SHORT 2 1177 #define PR_BYTES_PER_INT 4 1178 #define PR_BYTES_PER_INT64 8 1179 #define PR_BYTES_PER_LONG 4 1180 #define PR_BYTES_PER_FLOAT 4 1181 #define PR_BYTES_PER_DOUBLE 8 1182 #define PR_BYTES_PER_WORD 4 1183 #define PR_BYTES_PER_DWORD 8 1184 1185 #define PR_BITS_PER_BYTE 8 1186 #define PR_BITS_PER_SHORT 16 1187 #define PR_BITS_PER_INT 32 1188 #define PR_BITS_PER_INT64 64 1189 #define PR_BITS_PER_LONG 32 1190 #define PR_BITS_PER_FLOAT 32 1191 #define PR_BITS_PER_DOUBLE 64 1192 #define PR_BITS_PER_WORD 32 1193 1194 #define PR_BITS_PER_BYTE_LOG2 3 1195 #define PR_BITS_PER_SHORT_LOG2 4 1196 #define PR_BITS_PER_INT_LOG2 5 1197 #define PR_BITS_PER_INT64_LOG2 6 1198 #define PR_BITS_PER_LONG_LOG2 5 1199 #define PR_BITS_PER_FLOAT_LOG2 5 1200 #define PR_BITS_PER_DOUBLE_LOG2 6 1201 #define PR_BITS_PER_WORD_LOG2 5 1202 1203 #define PR_ALIGN_OF_SHORT 2 1204 #define PR_ALIGN_OF_INT 4 1205 #define PR_ALIGN_OF_LONG 4 1206 #define PR_ALIGN_OF_INT64 4 1207 #define PR_ALIGN_OF_FLOAT 4 1208 #define PR_ALIGN_OF_DOUBLE 4 1209 #define PR_ALIGN_OF_POINTER 4 1210 #define PR_ALIGN_OF_WORD 4 1211 1212 #define PR_BYTES_PER_WORD_LOG2 2 1213 #define PR_BYTES_PER_DWORD_LOG2 3 1214 1215 #elif defined(__e2k__) 1216 1217 #define IS_LITTLE_ENDIAN 1 1218 #undef IS_BIG_ENDIAN 1219 1220 #define IS_64 1221 1222 #define PR_BYTES_PER_BYTE 1 1223 #define PR_BYTES_PER_SHORT 2 1224 #define PR_BYTES_PER_INT 4 1225 #define PR_BYTES_PER_INT64 4 1226 #define PR_BYTES_PER_LONG 8 1227 #define PR_BYTES_PER_FLOAT 4 1228 #define PR_BYTES_PER_DOUBLE 8 1229 #define PR_BYTES_PER_WORD 8 1230 #define PR_BYTES_PER_DWORD 8 1231 1232 #define PR_BITS_PER_BYTE 8 1233 #define PR_BITS_PER_SHORT 16 1234 #define PR_BITS_PER_INT 32 1235 #define PR_BITS_PER_INT64 32 1236 #define PR_BITS_PER_LONG 64 1237 #define PR_BITS_PER_FLOAT 32 1238 #define PR_BITS_PER_DOUBLE 64 1239 #define PR_BITS_PER_WORD 64 1240 1241 #define PR_BITS_PER_BYTE_LOG2 3 1242 #define PR_BITS_PER_SHORT_LOG2 4 1243 #define PR_BITS_PER_INT_LOG2 5 1244 #define PR_BITS_PER_INT64_LOG2 5 1245 #define PR_BITS_PER_LONG_LOG2 6 1246 #define PR_BITS_PER_FLOAT_LOG2 5 1247 #define PR_BITS_PER_DOUBLE_LOG2 6 1248 #define PR_BITS_PER_WORD_LOG2 6 1249 1250 #define PR_ALIGN_OF_SHORT 2 1251 #define PR_ALIGN_OF_INT 4 1252 #define PR_ALIGN_OF_LONG 8 1253 #define PR_ALIGN_OF_INT64 4 1254 #define PR_ALIGN_OF_FLOAT 4 1255 #define PR_ALIGN_OF_DOUBLE 8 1256 #define PR_ALIGN_OF_POINTER 8 1257 #define PR_ALIGN_OF_WORD 8 1258 1259 #define PR_BYTES_PER_WORD_LOG2 3 1260 #define PR_BYTES_PER_DWORD_LOG2 3 1261 1262 #elif defined(__loongarch64) 1263 1264 #undef IS_BIG_ENDIAN 1265 #define IS_LITTLE_ENDIAN 1 1266 #define IS_64 1267 1268 #define PR_BYTES_PER_BYTE 1 1269 #define PR_BYTES_PER_SHORT 2 1270 #define PR_BYTES_PER_INT 4 1271 #define PR_BYTES_PER_INT64 8 1272 #define PR_BYTES_PER_LONG 8 1273 #define PR_BYTES_PER_FLOAT 4 1274 #define PR_BYTES_PER_DOUBLE 8 1275 #define PR_BYTES_PER_WORD 8 1276 #define PR_BYTES_PER_DWORD 8 1277 1278 #define PR_BITS_PER_BYTE 8 1279 #define PR_BITS_PER_SHORT 16 1280 #define PR_BITS_PER_INT 32 1281 #define PR_BITS_PER_INT64 64 1282 #define PR_BITS_PER_LONG 64 1283 #define PR_BITS_PER_FLOAT 32 1284 #define PR_BITS_PER_DOUBLE 64 1285 #define PR_BITS_PER_WORD 64 1286 1287 #define PR_BITS_PER_BYTE_LOG2 3 1288 #define PR_BITS_PER_SHORT_LOG2 4 1289 #define PR_BITS_PER_INT_LOG2 5 1290 #define PR_BITS_PER_INT64_LOG2 6 1291 #define PR_BITS_PER_LONG_LOG2 6 1292 #define PR_BITS_PER_FLOAT_LOG2 5 1293 #define PR_BITS_PER_DOUBLE_LOG2 6 1294 #define PR_BITS_PER_WORD_LOG2 6 1295 1296 #define PR_ALIGN_OF_SHORT 2 1297 #define PR_ALIGN_OF_INT 4 1298 #define PR_ALIGN_OF_LONG 8 1299 #define PR_ALIGN_OF_INT64 8 1300 #define PR_ALIGN_OF_FLOAT 4 1301 #define PR_ALIGN_OF_DOUBLE 8 1302 #define PR_ALIGN_OF_POINTER 8 1303 #define PR_ALIGN_OF_WORD 8 1304 1305 #define PR_BYTES_PER_WORD_LOG2 3 1306 #define PR_BYTES_PER_DWORD_LOG2 3 1307 1308 #else 1309 1310 #error "Unknown CPU architecture" 1311 1312 #endif 1313 1314 #ifndef HAVE_LONG_LONG 1315 #define HAVE_LONG_LONG 1316 #endif 1317 #if PR_ALIGN_OF_DOUBLE == 8 1318 #define HAVE_ALIGNED_DOUBLES 1319 #endif 1320 #if PR_ALIGN_OF_INT64 == 8 1321 #define HAVE_ALIGNED_LONGLONGS 1322 #endif 1323 1324 #ifndef NO_NSPR_10_SUPPORT 1325 1326 #define BYTES_PER_BYTE PR_BYTES_PER_BYTE 1327 #define BYTES_PER_SHORT PR_BYTES_PER_SHORT 1328 #define BYTES_PER_INT PR_BYTES_PER_INT 1329 #define BYTES_PER_INT64 PR_BYTES_PER_INT64 1330 #define BYTES_PER_LONG PR_BYTES_PER_LONG 1331 #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT 1332 #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE 1333 #define BYTES_PER_WORD PR_BYTES_PER_WORD 1334 #define BYTES_PER_DWORD PR_BYTES_PER_DWORD 1335 1336 #define BITS_PER_BYTE PR_BITS_PER_BYTE 1337 #define BITS_PER_SHORT PR_BITS_PER_SHORT 1338 #define BITS_PER_INT PR_BITS_PER_INT 1339 #define BITS_PER_INT64 PR_BITS_PER_INT64 1340 #define BITS_PER_LONG PR_BITS_PER_LONG 1341 #define BITS_PER_FLOAT PR_BITS_PER_FLOAT 1342 #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE 1343 #define BITS_PER_WORD PR_BITS_PER_WORD 1344 1345 #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2 1346 #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2 1347 #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2 1348 #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2 1349 #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2 1350 #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2 1351 #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2 1352 #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2 1353 1354 #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT 1355 #define ALIGN_OF_INT PR_ALIGN_OF_INT 1356 #define ALIGN_OF_LONG PR_ALIGN_OF_LONG 1357 #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64 1358 #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT 1359 #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE 1360 #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER 1361 #define ALIGN_OF_WORD PR_ALIGN_OF_WORD 1362 1363 #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2 1364 #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2 1365 #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2 1366 1367 #endif /* NO_NSPR_10_SUPPORT */ 1368 1369 #endif /* nspr_cpucfg___ */