mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-27 14:16:39 +00:00
35 lines
820 B
Go
35 lines
820 B
Go
// Package cpuinfo gives runtime info about the current CPU.
|
|
//
|
|
// This is a very limited module meant for use internally
|
|
// in this project. For more versatile solution check
|
|
// https://github.com/klauspost/cpuid.
|
|
package cpuinfo
|
|
|
|
// HasBMI1 checks whether an x86 CPU supports the BMI1 extension.
|
|
func HasBMI1() bool {
|
|
return hasBMI1
|
|
}
|
|
|
|
// HasBMI2 checks whether an x86 CPU supports the BMI2 extension.
|
|
func HasBMI2() bool {
|
|
return hasBMI2
|
|
}
|
|
|
|
// DisableBMI2 will disable BMI2, for testing purposes.
|
|
// Call returned function to restore previous state.
|
|
func DisableBMI2() func() {
|
|
old := hasBMI2
|
|
hasBMI2 = false
|
|
return func() {
|
|
hasBMI2 = old
|
|
}
|
|
}
|
|
|
|
// HasBMI checks whether an x86 CPU supports both BMI1 and BMI2 extensions.
|
|
func HasBMI() bool {
|
|
return HasBMI1() && HasBMI2()
|
|
}
|
|
|
|
var hasBMI1 bool
|
|
var hasBMI2 bool
|