From 2c241ca3045ddc354463c376a9515d9f1f1390a4 Mon Sep 17 00:00:00 2001 From: Tom Thorogood Date: Wed, 2 May 2018 12:08:12 +0000 Subject: [PATCH] chacha20poly1305: correct AVX2 feature detection CL 110355 switched out the adhoc cpu feature detection for x/sys/cpu, in doing so the AVX2 check was broken. The assembly code uses MULX which is part of BMI2. Updates golang/go#24843 Change-Id: I4719b8ff3211eb1c823099512e593e540d6f3be8 GitHub-Last-Rev: 70542b53cd09fcae26c3579cd84bcee39a4b8a57 GitHub-Pull-Request: golang/crypto#44 Reviewed-on: https://go-review.googlesource.com/110796 Reviewed-by: Tobias Klauser --- chacha20poly1305/chacha20poly1305_amd64.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chacha20poly1305/chacha20poly1305_amd64.go b/chacha20poly1305/chacha20poly1305_amd64.go index ff21390..07d18a3 100644 --- a/chacha20poly1305/chacha20poly1305_amd64.go +++ b/chacha20poly1305/chacha20poly1305_amd64.go @@ -20,7 +20,7 @@ func chacha20Poly1305Seal(dst []byte, key []uint32, src, ad []byte) var ( useASM = cpu.X86.HasSSSE3 - useAVX2 = cpu.X86.HasAVX2 + useAVX2 = cpu.X86.HasAVX2 && cpu.X86.HasBMI2 ) // setupState writes a ChaCha20 input matrix to state. See