aboutsummaryrefslogtreecommitdiff
path: root/crc32.c
diff options
context:
space:
mode:
Diffstat (limited to 'crc32.c')
-rw-r--r--crc32.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/crc32.c b/crc32.c
index c71a689..f8357b0 100644
--- a/crc32.c
+++ b/crc32.c
@@ -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. */
102local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); 107local z_crc_t multmodp OF((z_crc_t a, z_crc_t b));
103local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); 108local 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))