aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc/config')
-rw-r--r--libgcc/config/i386/cpuinfo.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index c80083e..eaf2f10 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -98,7 +98,9 @@ enum processor_features
FEATURE_FMA4,
FEATURE_XOP,
FEATURE_FMA,
- FEATURE_AVX512F
+ FEATURE_AVX512F,
+ FEATURE_BMI,
+ FEATURE_BMI2
};
struct __processor_model
@@ -289,8 +291,12 @@ get_available_features (unsigned int ecx, unsigned int edx,
{
unsigned int eax, ebx, ecx, edx;
__cpuid_count (7, 0, eax, ebx, ecx, edx);
+ if (ebx & bit_BMI)
+ features |= (1 << FEATURE_BMI);
if (ebx & bit_AVX2)
features |= (1 << FEATURE_AVX2);
+ if (ebx & bit_BMI2)
+ features |= (1 << FEATURE_BMI2);
if (ebx & bit_AVX512F)
features |= (1 << FEATURE_AVX512F);
}