mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 23:12:26 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			820 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 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
 |