Skip to content

Commit d7669fc

Browse files
committed
Fix detection of Westmere kernel
The Westmere kernel was selected if SSE4.2 was detected causing an illegal instruction on processors that support SSE4.2 but not CLMUL. Fixes NLnetLabs/nsd#382.
1 parent 9a595d5 commit d7669fc

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

src/bench.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static const kernel_t kernels[] = {
5757
{ "haswell", AVX2, &zone_bench_haswell_lex, &zone_haswell_parse },
5858
#endif
5959
#if HAVE_WESTMERE
60-
{ "westmere", SSE42, &zone_bench_westmere_lex, &zone_westmere_parse },
60+
{ "westmere", SSE42|PCLMULQDQ, &zone_bench_westmere_lex, &zone_westmere_parse },
6161
#endif
6262
{ "fallback", DEFAULT, &zone_bench_fallback_lex, &zone_fallback_parse }
6363
};

src/zone.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ static const kernel_t kernels[] = {
6868
{ "haswell", AVX2, &zone_haswell_parse },
6969
#endif
7070
#if HAVE_WESTMERE
71-
{ "westmere", SSE42, &zone_westmere_parse },
71+
{ "westmere", SSE42|PCLMULQDQ, &zone_westmere_parse },
7272
#endif
7373
{ "fallback", DEFAULT, &zone_fallback_parse }
7474
};

tests/bits.c

+11-11
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@ extern void test_fallback_leading_zeroes(void **);
5555

5656
static const struct kernel kernels[] = {
5757
#if HAVE_HASWELL
58-
{ "haswell", AVX2, &test_haswell_trailing_zeroes,
59-
&test_haswell_leading_zeroes,
60-
&test_haswell_prefix_xor,
61-
&test_haswell_add_overflow },
58+
{ "haswell", AVX2, &test_haswell_trailing_zeroes,
59+
&test_haswell_leading_zeroes,
60+
&test_haswell_prefix_xor,
61+
&test_haswell_add_overflow },
6262
#endif
6363
#if HAVE_WESTMERE
64-
{ "westmere", SSE42, &test_westmere_trailing_zeroes,
65-
&test_westmere_leading_zeroes,
66-
&test_westmere_prefix_xor,
67-
&test_westmere_add_overflow },
64+
{ "westmere", SSE42|PCLMULQDQ, &test_westmere_trailing_zeroes,
65+
&test_westmere_leading_zeroes,
66+
&test_westmere_prefix_xor,
67+
&test_westmere_add_overflow },
6868
#endif
69-
{ "fallback", DEFAULT, &test_fallback_trailing_zeroes,
70-
&test_fallback_leading_zeroes,
71-
0, 0 }
69+
{ "fallback", DEFAULT, &test_fallback_trailing_zeroes,
70+
&test_fallback_leading_zeroes,
71+
0, 0 }
7272
};
7373

7474
static inline const struct kernel *

0 commit comments

Comments
 (0)