tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

_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___ */