diff options
| -rw-r--r-- | crc32.c | 15 | ||||
| -rw-r--r-- | zutil.h | 1 |
2 files changed, 13 insertions, 3 deletions
| @@ -98,13 +98,22 @@ | |||
| 98 | # endif | 98 | # endif |
| 99 | #endif | 99 | #endif |
| 100 | 100 | ||
| 101 | /* If available, use the ARM processor CRC32 instruction. */ | ||
| 102 | #if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8 | ||
| 103 | # define ARMCRC32 | ||
| 104 | #endif | ||
| 105 | |||
| 101 | /* Local functions. */ | 106 | /* Local functions. */ |
| 102 | local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); | 107 | local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); |
| 103 | local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); | 108 | local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); |
| 104 | 109 | ||
| 105 | /* If available, use the ARM processor CRC32 instruction. */ | 110 | #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) |
| 106 | #if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8 | 111 | local z_word_t byte_swap OF((z_word_t word)); |
| 107 | # define ARMCRC32 | 112 | #endif |
| 113 | |||
| 114 | #if defined(W) && !defined(ARMCRC32) | ||
| 115 | local z_crc_t crc_word OF((z_word_t data)); | ||
| 116 | local z_word_t crc_word_big OF((z_word_t data)); | ||
| 108 | #endif | 117 | #endif |
| 109 | 118 | ||
| 110 | #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) | 119 | #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) |
| @@ -193,6 +193,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ | |||
| 193 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) | 193 | (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) |
| 194 | ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); | 194 | ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); |
| 195 | ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); | 195 | ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); |
| 196 | ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); | ||
| 196 | #endif | 197 | #endif |
| 197 | 198 | ||
| 198 | /* common defaults */ | 199 | /* common defaults */ |
