79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
63 lines
2.3 KiB
Diff
63 lines
2.3 KiB
Diff
From 37ef938fd9cdea1c9f87b17f49a935f729374f1d Mon Sep 17 00:00:00 2001
|
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
|
Date: Mon, 27 Feb 2023 10:55:46 +0100
|
|
Subject: [PATCH] target/i386: add FZRM, FSRS, FSRC
|
|
|
|
These are three more markers for string operation optimizations.
|
|
They can all be added to TCG, whose string operations are more or
|
|
less as fast as they can be for short lengths.
|
|
|
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
---
|
|
target/i386/cpu.c | 7 ++++---
|
|
target/i386/cpu.h | 7 +++++++
|
|
2 files changed, 11 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
|
index e3cea8397c..7122af303d 100644
|
|
--- a/target/i386/cpu.c
|
|
+++ b/target/i386/cpu.c
|
|
@@ -661,7 +661,8 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
|
|
/* CPUID_7_0_ECX_OSPKE is dynamic */ \
|
|
CPUID_7_0_ECX_LA57 | CPUID_7_0_ECX_PKS)
|
|
#define TCG_7_0_EDX_FEATURES 0
|
|
-#define TCG_7_1_EAX_FEATURES 0
|
|
+#define TCG_7_1_EAX_FEATURES (CPUID_7_1_EAX_FZRM | CPUID_7_1_EAX_FSRS | \
|
|
+ CPUID_7_1_EAX_FSRC)
|
|
#define TCG_APM_FEATURES 0
|
|
#define TCG_6_EAX_FEATURES CPUID_6_EAX_ARAT
|
|
#define TCG_XSAVE_FEATURES (CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XGETBV1)
|
|
@@ -871,8 +872,8 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
|
.feat_names = {
|
|
NULL, NULL, NULL, NULL,
|
|
"avx-vnni", "avx512-bf16", NULL, NULL,
|
|
- NULL, NULL, NULL, NULL,
|
|
- NULL, NULL, NULL, NULL,
|
|
+ NULL, NULL, "fzrm", "fsrs",
|
|
+ "fsrc", NULL, NULL, NULL,
|
|
NULL, NULL, NULL, NULL,
|
|
NULL, NULL, NULL, NULL,
|
|
NULL, NULL, NULL, NULL,
|
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
|
index 4f7fa87b95..7a32dabf12 100644
|
|
--- a/target/i386/cpu.h
|
|
+++ b/target/i386/cpu.h
|
|
@@ -876,6 +876,13 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
|
#define CPUID_7_1_EAX_AVX_VNNI (1U << 4)
|
|
/* AVX512 BFloat16 Instruction */
|
|
#define CPUID_7_1_EAX_AVX512_BF16 (1U << 5)
|
|
+/* Fast Zero REP MOVS */
|
|
+#define CPUID_7_1_EAX_FZRM (1U << 10)
|
|
+/* Fast Short REP STOS */
|
|
+#define CPUID_7_1_EAX_FSRS (1U << 11)
|
|
+/* Fast Short REP CMPS/SCAS */
|
|
+#define CPUID_7_1_EAX_FSRC (1U << 12)
|
|
+
|
|
/* XFD Extend Feature Disabled */
|
|
#define CPUID_D_1_EAX_XFD (1U << 4)
|
|
|
|
--
|
|
2.27.0
|
|
|