blake2b: fix build on non-amd64 platforms
Change-Id: Ib9ebb1a2eff4b61f60453086be5c63ac7af1f7fc Reviewed-on: https://go-review.googlesource.com/34672 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Adam Langley <agl@google.com> Reviewed-by: Adam Langley <agl@golang.org>
This commit is contained in:
@@ -23,6 +23,12 @@ const (
|
||||
Size256 = 32
|
||||
)
|
||||
|
||||
var (
|
||||
useAVX2 bool
|
||||
useAVX bool
|
||||
useSSE4 bool
|
||||
)
|
||||
|
||||
var errKeySize = errors.New("blake2b: invalid key size")
|
||||
|
||||
var iv = [8]uint64{
|
||||
|
||||
@@ -6,18 +6,20 @@
|
||||
|
||||
package blake2b
|
||||
|
||||
var useAVX2 = supportAVX2()
|
||||
var useAVX = supportAVX()
|
||||
var useSSE4 = supportSSE4()
|
||||
func init() {
|
||||
useAVX2 = supportsAVX2()
|
||||
useAVX = supportsAVX()
|
||||
useSSE4 = supportsSSE4()
|
||||
}
|
||||
|
||||
//go:noescape
|
||||
func supportSSE4() bool
|
||||
func supportsSSE4() bool
|
||||
|
||||
//go:noescape
|
||||
func supportAVX() bool
|
||||
func supportsAVX() bool
|
||||
|
||||
//go:noescape
|
||||
func supportAVX2() bool
|
||||
func supportsAVX2() bool
|
||||
|
||||
//go:noescape
|
||||
func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
|
||||
|
||||
@@ -489,14 +489,14 @@ noinc:
|
||||
MOVQ BP, SP
|
||||
RET
|
||||
|
||||
// func supportAVX2() bool
|
||||
TEXT ·supportAVX2(SB), 4, $0-1
|
||||
// func supportsAVX2() bool
|
||||
TEXT ·supportsAVX2(SB), 4, $0-1
|
||||
MOVQ runtime·support_avx2(SB), AX
|
||||
MOVB AX, ret+0(FP)
|
||||
RET
|
||||
|
||||
// func supportAVX() bool
|
||||
TEXT ·supportAVX(SB), 4, $0-1
|
||||
// func supportsAVX() bool
|
||||
TEXT ·supportsAVX(SB), 4, $0-1
|
||||
MOVQ runtime·support_avx(SB), AX
|
||||
MOVB AX, ret+0(FP)
|
||||
RET
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
package blake2b
|
||||
|
||||
var useAVX2 = false
|
||||
var useAVX = false
|
||||
var useSSE4 = supportSSE4()
|
||||
func init() {
|
||||
useSSE4 = supportsSSE4()
|
||||
}
|
||||
|
||||
//go:noescape
|
||||
func supportSSE4() bool
|
||||
func supportsSSE4() bool
|
||||
|
||||
//go:noescape
|
||||
func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
|
||||
|
||||
@@ -280,8 +280,8 @@ noinc:
|
||||
MOVQ BP, SP
|
||||
RET
|
||||
|
||||
// func supportSSE4() bool
|
||||
TEXT ·supportSSE4(SB), 4, $0-1
|
||||
// func supportsSSE4() bool
|
||||
TEXT ·supportsSSE4(SB), 4, $0-1
|
||||
MOVL $1, AX
|
||||
CPUID
|
||||
SHRL $19, CX // Bit 19 indicates SSE4 support
|
||||
|
||||
@@ -6,9 +6,6 @@
|
||||
|
||||
package blake2b
|
||||
|
||||
var useAVX2 = false
|
||||
var useSSE4 = false
|
||||
|
||||
func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {
|
||||
hashBlocksGeneric(h, c, flag, blocks)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user