MOVL $0, CX
CPUID
- TESTL $(1<<3), BX // BMI1
- SETNE runtime·support_bmi1(SB)
-
// If OS support for XMM and YMM is not present
// support_avx2 will be set back to false later.
TESTL $(1<<5), BX
SETNE runtime·support_avx2(SB)
- TESTL $(1<<8), BX // BMI2
- SETNE runtime·support_bmi2(SB)
-
TESTL $(1<<9), BX // ERMS
SETNE runtime·support_erms(SB)
MOVL $0, CX
CPUID
- TESTL $(1<<3), BX // BMI1
- SETNE runtime·support_bmi1(SB)
-
// If OS support for XMM and YMM is not present
// support_avx2 will be set back to false later.
TESTL $(1<<5), BX
SETNE runtime·support_avx2(SB)
- TESTL $(1<<8), BX // BMI2
- SETNE runtime·support_bmi2(SB)
-
TESTL $(1<<9), BX // ERMS
SETNE runtime·support_erms(SB)
MOVL $0, CX
CPUID
- TESTL $(1<<3), BX // BMI1
- SETNE runtime·support_bmi1(SB)
-
// If OS support for XMM and YMM is not present
// support_avx2 will be set back to false later.
TESTL $(1<<5), BX
SETNE runtime·support_avx2(SB)
- TESTL $(1<<8), BX // BMI2
- SETNE runtime·support_bmi2(SB)
-
TESTL $(1<<9), BX // ERMS
SETNE runtime·support_erms(SB)
support_aes bool
support_avx bool
support_avx2 bool
- support_bmi1 bool
- support_bmi2 bool
support_erms bool
support_osxsave bool
support_popcnt bool