go-ethereum/crypto/keccak/keccakf_amd64.go

23 lines
351 B
Go

//go:build amd64 && !purego
package keccak
import (
"unsafe"
"golang.org/x/sys/cpu"
)
func init() { useASM = cpu.X86.HasBMI2 }
//go:noescape
func keccakF1600BMI2(a *[200]byte)
func keccakF1600(a *[200]byte) {
keccakF1600BMI2(a)
}
func xorAndPermute(state *[200]byte, buf *byte) {
xorIn(state, unsafe.Slice(buf, rate))
keccakF1600(state)
}