mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-29 13:26:45 -04:00
This is motivated by https://github.com/wazero/wazero/pull/2473 which needs to special case darwin for testing the availability of HasATOMICS, although all M-series CPUs support it. We could do sysctlbyname, like syscall_darwin_x86_gc.go, if that's preferred: https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics Change-Id: I0f5ea55ef5cda4956db44b2d40f2f10044fa3321 GitHub-Last-Rev: d5d0f1e989579de2a25c97c00c7e9db5d4b0cb29 GitHub-Pull-Request: golang/sys#267 Reviewed-on: https://go-review.googlesource.com/c/sys/+/743320 Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
27 lines
620 B
Go
27 lines
620 B
Go
// Copyright 2026 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package cpu
|
|
|
|
import "runtime"
|
|
|
|
func doinit() {
|
|
ARM64.HasASIMD = true
|
|
ARM64.HasFP = true
|
|
|
|
if runtime.GOOS != "ios" {
|
|
// M-series SoCs are at least armv8.4-a
|
|
ARM64.HasCRC32 = true // armv8.1
|
|
ARM64.HasATOMICS = true // armv8.2
|
|
ARM64.HasJSCVT = true // armv8.3, if HasFP
|
|
|
|
// Go already assumes these to be available
|
|
// because they were on the M1.
|
|
ARM64.HasAES = true
|
|
ARM64.HasPMULL = true
|
|
ARM64.HasSHA1 = true
|
|
ARM64.HasSHA2 = true
|
|
}
|
|
}
|