github.com/devops-filetransfer/sshego@v7.0.4+incompatible/_vendor/golang.org/x/crypto/blake2s/blake2s_386.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  // +build 386,!gccgo,!appengine
     6  
     7  package blake2s
     8  
     9  var (
    10  	useSSE4    = false
    11  	useSSSE3   = supportSSSE3()
    12  	useSSE2    = supportSSE2()
    13  	useGeneric = true
    14  )
    15  
    16  //go:noescape
    17  func supportSSE2() bool
    18  
    19  //go:noescape
    20  func supportSSSE3() bool
    21  
    22  //go:noescape
    23  func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
    24  
    25  //go:noescape
    26  func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
    27  
    28  func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) {
    29  	if useSSSE3 {
    30  		hashBlocksSSSE3(h, c, flag, blocks)
    31  	} else if useSSE2 {
    32  		hashBlocksSSE2(h, c, flag, blocks)
    33  	} else {
    34  		hashBlocksGeneric(h, c, flag, blocks)
    35  	}
    36  }