mirror of
https://github.com/golang/go
synced 2024-11-08 09:46:24 -07:00
69972aea74
Implements detection of x86 cpu features that are used in the go standard library. Changes all standard library packages to use the new cpu package instead of using runtime internal variables to check x86 cpu features. Updates: #15403 Change-Id: I2999a10cb4d9ec4863ffbed72f4e021a1dbc4bb9 Reviewed-on: https://go-review.googlesource.com/41476 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
26 lines
498 B
Go
26 lines
498 B
Go
// Copyright 2013 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build amd64
|
|
|
|
package sha512
|
|
|
|
import "internal/cpu"
|
|
|
|
//go:noescape
|
|
func blockAVX2(dig *digest, p []byte)
|
|
|
|
//go:noescape
|
|
func blockAMD64(dig *digest, p []byte)
|
|
|
|
var useAVX2 = cpu.X86.HasAVX2 && cpu.X86.HasBMI1 && cpu.X86.HasBMI2
|
|
|
|
func block(dig *digest, p []byte) {
|
|
if useAVX2 {
|
|
blockAVX2(dig, p)
|
|
} else {
|
|
blockAMD64(dig, p)
|
|
}
|
|
}
|