diff options
Diffstat (limited to 'crc32.c')
-rw-r--r-- | crc32.c | 15 |
1 files changed, 12 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)) |