github.com/chain5j/chain5j-pkg@v1.0.7/crypto/hashalg/blake2b/blake2b_amd64.go (about)

     1  // Copyright 2016 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build !go1.7 && amd64 && !gccgo && !appengine
     6  // +build !go1.7,amd64,!gccgo,!appengine
     7  
     8  package blake2b
     9  
    10  import "golang.org/x/sys/cpu"
    11  
    12  func init() {
    13  	useSSE4 = cpu.X86.HasSSE41
    14  }
    15  
    16  //go:noescape
    17  func fSSE4(h *[8]uint64, m *[16]uint64, c0, c1 uint64, flag uint64, rounds uint64)
    18  
    19  func f(h *[8]uint64, m *[16]uint64, c0, c1 uint64, flag uint64, rounds uint64) {
    20  	if useSSE4 {
    21  		fSSE4(h, m, c0, c1, flag, rounds)
    22  	} else {
    23  		fGeneric(h, m, c0, c1, flag, rounds)
    24  	}
    25  }