aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86/include
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-02-04 10:39:34 -0800
committerH.J. Lu <hjl.tools@gmail.com>2021-02-07 08:01:14 -0800
commit5ab25c88758810269607a066fcac399e29863510 (patch)
treefff85c2b2b481b413d71872bd5753f870557d89a /sysdeps/x86/include
parentc3479fb7939898ec22c655c383454d6e8b982a67 (diff)
downloadglibc-5ab25c88758810269607a066fcac399e29863510.tar.xz
glibc-5ab25c88758810269607a066fcac399e29863510.zip
x86: Add PTWRITE feature detection [BZ #27346]
1. Add CPUID_INDEX_14_ECX_0 for CPUID leaf 0x14 to detect PTWRITE feature in EBX of CPUID leaf 0x14 with ECX == 0. 2. Add PTWRITE detection to CPU feature tests. 3. Add 2 static CPU feature tests.
Diffstat (limited to 'sysdeps/x86/include')
-rw-r--r--sysdeps/x86/include/cpu-features.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h
index 475e877294..dabe6b9d86 100644
--- a/sysdeps/x86/include/cpu-features.h
+++ b/sysdeps/x86/include/cpu-features.h
@@ -29,7 +29,7 @@
enum
{
- CPUID_INDEX_MAX = CPUID_INDEX_19 + 1
+ CPUID_INDEX_MAX = CPUID_INDEX_14_ECX_0 + 1
};
enum
@@ -307,6 +307,11 @@ enum
#define bit_cpu_AESKLE (1u << 0)
#define bit_cpu_WIDE_KL (1u << 2)
+/* CPUID_INDEX_14_ECX_0. */
+
+/* EBX. */
+#define bit_cpu_PTWRITE (1u << 4)
+
/* CPUID_INDEX_1. */
/* ECX. */
@@ -532,6 +537,11 @@ enum
#define index_cpu_AESKLE CPUID_INDEX_19
#define index_cpu_WIDE_KL CPUID_INDEX_19
+/* CPUID_INDEX_14_ECX_0. */
+
+/* EBX. */
+#define index_cpu_PTWRITE CPUID_INDEX_14_ECX_0
+
/* CPUID_INDEX_1. */
/* ECX. */
@@ -757,6 +767,11 @@ enum
#define reg_AESKLE ebx
#define reg_WIDE_KL ebx
+/* CPUID_INDEX_14_ECX_0. */
+
+/* EBX. */
+#define reg_PTWRITE ebx
+
/* PREFERRED_FEATURE_INDEX_1. */
#define bit_arch_I586 (1u << 0)
#define bit_arch_I686 (1u << 1)