// 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.

//go:build darwin && arm64 && !gc

package cpu

func doinit() {
	setMinimalFeatures()

	ARM64.HasASIMD = true
	ARM64.HasFP = true

	// Go already assumes these to be available because they were on the M1
	// and these are supported on all Apple arm64 chips.
	ARM64.HasAES = true
	ARM64.HasPMULL = true
	ARM64.HasSHA1 = true
	ARM64.HasSHA2 = true

	if runtime.GOOS != "ios" {
		// Apple A7 processors do not support these, however
		// 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
	}
}
