You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
9 months ago
|
commit 28c13ae5bbc81aa2ae67890ce53e65257d4703a4
|
||
|
Author: H.J. Lu <hjl.tools@gmail.com>
|
||
|
Date: Mon Jul 6 06:57:08 2020 -0700
|
||
|
|
||
|
x86: Detect Extended Feature Disable (XFD)
|
||
|
|
||
|
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.
|
||
|
|
||
|
diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h
|
||
|
index 535b3cb2d25b245b..e7ea9e8ece3e8211 100644
|
||
|
--- a/sysdeps/x86/cpu-features.h
|
||
|
+++ b/sysdeps/x86/cpu-features.h
|
||
|
@@ -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. */
|
||
|
|
||
|
diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c
|
||
|
index c4d91be3a48de886..c56f309ba0736c0d 100644
|
||
|
--- a/sysdeps/x86/tst-get-cpu-features.c
|
||
|
+++ b/sysdeps/x86/tst-get-cpu-features.c
|
||
|
@@ -212,6 +212,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);
|