Skip to content

Commit

Permalink
guard on clmul being available.
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanHenson committed Feb 13, 2024
1 parent 9a6ac99 commit 9318fa1
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 3 additions & 1 deletion include/aws/checksums/private/crc_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ typedef struct {
uint64_t x64[2]; // x^96 mod P(x) / x^64 mod P(x)
uint64_t mu_poly[2]; // Barrett mu / 33-bit polynomial P(x)
uint64_t trailing[15][2]; // Folding constants for 15 possible trailing input data lengths
} aws_checksums_crc32_constants_t;
} aws_checksums_crc32_constants_t;
extern aws_checksums_crc32_constants_t aws_checksums_crc32_constants;

AWS_EXTERN_C_BEGIN
Expand Down Expand Up @@ -56,7 +56,9 @@ uint32_t aws_checksums_crc32c_intel_avx512_with_sse_fallback(
int length,
uint32_t previous_crc32c);

# if defined(AWS_HAVE_CLMUL)
uint32_t aws_checksums_crc32_intel_clmul(const uint8_t *input, int length, uint32_t previous_crc);
# endif /* defined(AWS_HAVE_CLUMUL) */
#endif

AWS_EXTERN_C_END
Expand Down
3 changes: 2 additions & 1 deletion source/crc.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ aws_checksums_crc32_constants_t aws_checksums_crc32_constants = {

uint32_t aws_checksums_crc32(const uint8_t *input, int length, uint32_t previous_crc32) {
if (AWS_UNLIKELY(!s_crc32_fn_ptr)) {
#if defined(AWS_USE_CPU_EXTENSIONS) && defined(AWS_ARCH_INTEL_X64) && !(defined(_MSC_VER) && _MSC_VER < 1920)
#if defined(AWS_USE_CPU_EXTENSIONS) && defined(AWS_ARCH_INTEL_X64) && defined(AWS_HAVE_CLMUL) && \
!(defined(_MSC_VER) && _MSC_VER < 1920)
if (aws_cpu_has_feature(AWS_CPU_FEATURE_CLMUL) && aws_cpu_has_feature(AWS_CPU_FEATURE_AVX2)) {
s_crc32_fn_ptr = aws_checksums_crc32_intel_clmul;
} else {
Expand Down

0 comments on commit 9318fa1

Please sign in to comment.