fix darwin cpu feature detect issue

This commit is contained in:
Sun Yimin 2024-01-24 13:11:09 +08:00 committed by GitHub
parent 5cf5e347bc
commit 8198f2aa8e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 31 additions and 5 deletions

View File

@ -0,0 +1,6 @@
package cpuid
import "golang.org/x/sys/cpu"
var HasAES = cpu.X86.HasAES
var HasGFMUL = cpu.X86.HasPCLMULQDQ

View File

@ -0,0 +1,6 @@
package cpuid
import "golang.org/x/sys/cpu"
var HasAES = cpu.ARM64.HasAES
var HasGFMUL = cpu.ARM64.HasPMULL

View File

@ -0,0 +1,10 @@
//go:build arm64 && darwin && !ios
package cpuid
// There are no hw.optional sysctl values for the below features on Mac OS 11.0
// to detect their supported state dynamically. Assume the CPU features that
// Apple Silicon M1 supports to be available as a minimal set of features
// to all Go programs running on darwin/arm64.
var HasAES = true
var HasGFMUL = true

View File

@ -7,12 +7,13 @@ import (
"os"
"github.com/emmansun/gmsm/internal/alias"
"github.com/emmansun/gmsm/internal/cpuid"
"golang.org/x/sys/cpu"
)
var supportSM4 = cpu.ARM64.HasSM4 && os.Getenv("DISABLE_SM4NI") != "1"
var supportsAES = cpu.X86.HasAES || cpu.ARM64.HasAES
var supportsGFMUL = cpu.X86.HasPCLMULQDQ || cpu.ARM64.HasPMULL
var supportsAES = cpuid.HasAES
var supportsGFMUL = cpuid.HasGFMUL
var useAVX2 = cpu.X86.HasAVX2
var useAVX = cpu.X86.HasAVX

View File

@ -2,11 +2,14 @@
package zuc
import "golang.org/x/sys/cpu"
import (
"github.com/emmansun/gmsm/internal/cpuid"
"golang.org/x/sys/cpu"
)
var supportsAES = cpu.X86.HasAES || cpu.ARM64.HasAES
var supportsAES = cpuid.HasAES
var supportsGFMUL = cpuid.HasGFMUL
var useAVX = cpu.X86.HasAVX
var supportsGFMUL = cpu.X86.HasPCLMULQDQ || cpu.ARM64.HasPMULL
//go:noescape
func eia3Round16B(t *uint32, keyStream *uint32, p *byte, tagSize int)