Message ID | 20240622061558.530543-16-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PULL,01/23] configure: detect --cpu=mipsisa64r6 | expand |
On 6/21/24 23:15, Paolo Bonzini wrote: > This reverts commit b18236897ca15c3db1506d8edb9a191dfe51429c. > The x86-64 instruction set can now be tuned down to x86-64 v1 > or i386 Pentium Pro. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > host/include/i386/host/cpuinfo.h | 1 + > util/bufferiszero.c | 4 ++-- > util/cpuinfo-i386.c | 1 + > 3 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/host/include/i386/host/cpuinfo.h b/host/include/i386/host/cpuinfo.h > index 72f6fad61e5..81771733eaa 100644 > --- a/host/include/i386/host/cpuinfo.h > +++ b/host/include/i386/host/cpuinfo.h > @@ -14,6 +14,7 @@ > #define CPUINFO_POPCNT (1u << 4) > #define CPUINFO_BMI1 (1u << 5) > #define CPUINFO_BMI2 (1u << 6) > +#define CPUINFO_SSE2 (1u << 7) > #define CPUINFO_AVX1 (1u << 9) > #define CPUINFO_AVX2 (1u << 10) > #define CPUINFO_AVX512F (1u << 11) > diff --git a/util/bufferiszero.c b/util/bufferiszero.c > index 11c080e02cf..74864f7b782 100644 > --- a/util/bufferiszero.c > +++ b/util/bufferiszero.c > @@ -188,14 +188,14 @@ static biz_accel_fn const accel_table[] = { > > static unsigned best_accel(void) > { > -#ifdef CONFIG_AVX2_OPT > unsigned info = cpuinfo_init(); > > +#ifdef CONFIG_AVX2_OPT > if (info & CPUINFO_AVX2) { > return 2; > } > #endif > - return 1; > + return info & CPUINFO_SSE2 ? 1 : 0; > } Merge conflict with master here -- bufferiszero.c has been split. This hunk now goes in host/include/i386/host/bufferiszero.c.inc. r~
diff --git a/host/include/i386/host/cpuinfo.h b/host/include/i386/host/cpuinfo.h index 72f6fad61e5..81771733eaa 100644 --- a/host/include/i386/host/cpuinfo.h +++ b/host/include/i386/host/cpuinfo.h @@ -14,6 +14,7 @@ #define CPUINFO_POPCNT (1u << 4) #define CPUINFO_BMI1 (1u << 5) #define CPUINFO_BMI2 (1u << 6) +#define CPUINFO_SSE2 (1u << 7) #define CPUINFO_AVX1 (1u << 9) #define CPUINFO_AVX2 (1u << 10) #define CPUINFO_AVX512F (1u << 11) diff --git a/util/bufferiszero.c b/util/bufferiszero.c index 11c080e02cf..74864f7b782 100644 --- a/util/bufferiszero.c +++ b/util/bufferiszero.c @@ -188,14 +188,14 @@ static biz_accel_fn const accel_table[] = { static unsigned best_accel(void) { -#ifdef CONFIG_AVX2_OPT unsigned info = cpuinfo_init(); +#ifdef CONFIG_AVX2_OPT if (info & CPUINFO_AVX2) { return 2; } #endif - return 1; + return info & CPUINFO_SSE2 ? 1 : 0; } #elif defined(__aarch64__) && defined(__ARM_NEON) diff --git a/util/cpuinfo-i386.c b/util/cpuinfo-i386.c index ca74ef04f54..90f92a42dc8 100644 --- a/util/cpuinfo-i386.c +++ b/util/cpuinfo-i386.c @@ -34,6 +34,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void) if (max >= 1) { __cpuid(1, a, b, c, d); + info |= (d & bit_SSE2 ? CPUINFO_SSE2 : 0); info |= (c & bit_MOVBE ? CPUINFO_MOVBE : 0); info |= (c & bit_POPCNT ? CPUINFO_POPCNT : 0); info |= (c & bit_PCLMUL ? CPUINFO_PCLMUL : 0);
This reverts commit b18236897ca15c3db1506d8edb9a191dfe51429c. The x86-64 instruction set can now be tuned down to x86-64 v1 or i386 Pentium Pro. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- host/include/i386/host/cpuinfo.h | 1 + util/bufferiszero.c | 4 ++-- util/cpuinfo-i386.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-)