]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86: Detect Extended Feature Disable (XFD)
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 6 Jul 2020 13:57:08 +0000 (06:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 6 Jul 2020 13:57:08 +0000 (06:57 -0700)
An extension called extended feature disable (XFD) is an extension added
for Intel AMX to the XSAVE feature set that allows an operating system
to enable a feature while preventing specific user threads from using
the feature.

sysdeps/x86/cpu-features.h
sysdeps/x86/tst-get-cpu-features.c

index f25df778cce90e5937f92648f19d7e205aca4491..bc425462d6401b862d0680f2d9fe941cc4041ba7 100644 (file)
@@ -393,6 +393,7 @@ extern const struct cpu_features *__get_cpu_features (void)
 #define bit_cpu_XSAVEC         (1u << 1)
 #define bit_cpu_XGETBV_ECX_1   (1u << 2)
 #define bit_cpu_XSAVES         (1u << 3)
+#define bit_cpu_XFD            (1u << 4)
 
 /* COMMON_CPUID_INDEX_80000007.  */
 
@@ -578,6 +579,7 @@ extern const struct cpu_features *__get_cpu_features (void)
 #define index_cpu_XSAVEC       COMMON_CPUID_INDEX_D_ECX_1
 #define index_cpu_XGETBV_ECX_1 COMMON_CPUID_INDEX_D_ECX_1
 #define index_cpu_XSAVES       COMMON_CPUID_INDEX_D_ECX_1
+#define index_cpu_XFD          COMMON_CPUID_INDEX_D_ECX_1
 
 /* COMMON_CPUID_INDEX_80000007.  */
 
@@ -763,6 +765,7 @@ extern const struct cpu_features *__get_cpu_features (void)
 #define reg_XSAVEC             eax
 #define reg_XGETBV_ECX_1       eax
 #define reg_XSAVES             eax
+#define reg_XFD                        eax
 
 /* COMMON_CPUID_INDEX_80000007.  */
 
index dafd66434c9ceb56a3e47239955d3956490bdb09..2cff2e86ba590ef8b831c228359d0e76b0bb2bd3 100644 (file)
@@ -214,6 +214,7 @@ do_test (void)
   CHECK_CPU_FEATURE (XSAVEC);
   CHECK_CPU_FEATURE (XGETBV_ECX_1);
   CHECK_CPU_FEATURE (XSAVES);
+  CHECK_CPU_FEATURE (XFD);
   CHECK_CPU_FEATURE (INVARIANT_TSC);
   CHECK_CPU_FEATURE (WBNOINVD);
   CHECK_CPU_FEATURE (AVX512_BF16);