1
// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file.
3
//go:build (386 && !gccgo && !noasm && !appengine) || (amd64 && !gccgo && !noasm && !appengine)
4
// +build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine
8
func asmCpuid(op uint32) (eax, ebx, ecx, edx uint32)
9
func asmCpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32)
10
func asmXgetbv(index uint32) (eax, edx uint32)
11
func asmRdtscpAsm() (eax, ebx, ecx, edx uint32)
12
func asmDarwinHasAVX512() bool
18
rdtscpAsm = asmRdtscpAsm
19
darwinHasAVX512 = asmDarwinHasAVX512
22
func addInfo(c *CPUInfo, safe bool) {
23
c.maxFunc = maxFunctionID()
24
c.maxExFunc = maxExtendedFunction()
25
c.BrandName = brandName()
26
c.CacheLine = cacheLine()
27
c.Family, c.Model, c.Stepping = familyModel()
28
c.featureSet = support()
29
c.SGX = hasSGX(c.featureSet.inSet(SGX), c.featureSet.inSet(SGXLC))
30
c.ThreadsPerCore = threadsPerCore()
31
c.LogicalCores = logicalCores()
32
c.PhysicalCores = physicalCores()
33
c.VendorID, c.VendorString = vendorID()