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 5package runtime 6 7import ( 8 "internal/cpu" 9 "unsafe" 10) 11 12// Offsets into internal/cpu records for use in assembly. 13const ( 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 24var ( 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) 35