github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/runtime/cpuflags.go (about) 1 // Copyright 2018 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 package runtime 6 7 import ( 8 "internal/cpu" 9 "unsafe" 10 ) 11 12 // Offsets into internal/cpu records for use in assembly. 13 const ( 14 offsetX86HasAVX = unsafe.Offsetof(cpu.X86.HasAVX) 15 offsetX86HasAVX2 = unsafe.Offsetof(cpu.X86.HasAVX2) 16 offsetX86HasERMS = unsafe.Offsetof(cpu.X86.HasERMS) 17 offsetX86HasRDTSCP = unsafe.Offsetof(cpu.X86.HasRDTSCP) 18 19 offsetARMHasIDIVA = unsafe.Offsetof(cpu.ARM.HasIDIVA) 20 21 offsetMIPS64XHasMSA = unsafe.Offsetof(cpu.MIPS64X.HasMSA) 22 ) 23 24 var ( 25 // Set in runtime.cpuinit. 26 // TODO: deprecate these; use internal/cpu directly. 27 x86HasPOPCNT bool 28 x86HasSSE41 bool 29 x86HasFMA bool 30 31 armHasVFPv4 bool 32 33 arm64HasATOMICS bool 34 )