Message ID | 1484032051-11619-1-git-send-email-he.chen@linux.intel.com |
---|---|
State | New |
Headers | show |
On Tue, Jan 10, 2017 at 03:07:31PM +0800, He Chen wrote: > AVX512_VPOPCNTDQ: Vector POPCNT instructions for word and qwords. > variable precision. > > Signed-off-by: He Chen <he.chen@linux.intel.com> > --- > target/i386/cpu.c | 2 +- > target/i386/cpu.h | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index b0640f1..ae900b5 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -435,7 +435,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { > NULL, "avx512vbmi", "umip", "pku", > "ospke", NULL, NULL, NULL, > NULL, NULL, NULL, NULL, > - NULL, NULL, NULL, NULL, > + NULL, NULL, "vpopcntdq", NULL, The patches I see on linux-kernel use the "avx512_vpopcntdq" name. Why not use "avx512-vpopcntdq" in QEMU to avoid confusion? > "la57", NULL, NULL, NULL, > NULL, NULL, "rdpid", NULL, > NULL, NULL, NULL, NULL, > diff --git a/target/i386/cpu.h b/target/i386/cpu.h > index a7f2f60..73edc60 100644 > --- a/target/i386/cpu.h > +++ b/target/i386/cpu.h > @@ -630,6 +630,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; > #define CPUID_7_0_ECX_UMIP (1U << 2) > #define CPUID_7_0_ECX_PKU (1U << 3) > #define CPUID_7_0_ECX_OSPKE (1U << 4) > +#define CPUID_7_0_ECX_VPOPCNTDQ (1U << 14) /* POPCNT for vectors of DW/QW */ > #define CPUID_7_0_ECX_LA57 (1U << 16) > #define CPUID_7_0_ECX_RDPID (1U << 22) > > -- > 2.7.4 > >
On 12/01/2017 18:10, Eduardo Habkost wrote: > On Tue, Jan 10, 2017 at 03:07:31PM +0800, He Chen wrote: >> AVX512_VPOPCNTDQ: Vector POPCNT instructions for word and qwords. >> variable precision. >> >> Signed-off-by: He Chen <he.chen@linux.intel.com> >> --- >> target/i386/cpu.c | 2 +- >> target/i386/cpu.h | 1 + >> 2 files changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/target/i386/cpu.c b/target/i386/cpu.c >> index b0640f1..ae900b5 100644 >> --- a/target/i386/cpu.c >> +++ b/target/i386/cpu.c >> @@ -435,7 +435,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { >> NULL, "avx512vbmi", "umip", "pku", >> "ospke", NULL, NULL, NULL, >> NULL, NULL, NULL, NULL, >> - NULL, NULL, NULL, NULL, >> + NULL, NULL, "vpopcntdq", NULL, > > The patches I see on linux-kernel use the "avx512_vpopcntdq" > name. Why not use "avx512-vpopcntdq" in QEMU to avoid confusion? Or without the dash too, for consistency with avx512vbmi. Paolo > >> "la57", NULL, NULL, NULL, >> NULL, NULL, "rdpid", NULL, >> NULL, NULL, NULL, NULL, >> diff --git a/target/i386/cpu.h b/target/i386/cpu.h >> index a7f2f60..73edc60 100644 >> --- a/target/i386/cpu.h >> +++ b/target/i386/cpu.h >> @@ -630,6 +630,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; >> #define CPUID_7_0_ECX_UMIP (1U << 2) >> #define CPUID_7_0_ECX_PKU (1U << 3) >> #define CPUID_7_0_ECX_OSPKE (1U << 4) >> +#define CPUID_7_0_ECX_VPOPCNTDQ (1U << 14) /* POPCNT for vectors of DW/QW */ >> #define CPUID_7_0_ECX_LA57 (1U << 16) >> #define CPUID_7_0_ECX_RDPID (1U << 22) >> >> -- >> 2.7.4 >> >> >
On Thu, Jan 12, 2017 at 07:18:20PM +0100, Paolo Bonzini wrote: > On 12/01/2017 18:10, Eduardo Habkost wrote: > > On Tue, Jan 10, 2017 at 03:07:31PM +0800, He Chen wrote: > >> AVX512_VPOPCNTDQ: Vector POPCNT instructions for word and qwords. > >> variable precision. > >> > >> Signed-off-by: He Chen <he.chen@linux.intel.com> > >> --- > >> target/i386/cpu.c | 2 +- > >> target/i386/cpu.h | 1 + > >> 2 files changed, 2 insertions(+), 1 deletion(-) > >> > >> diff --git a/target/i386/cpu.c b/target/i386/cpu.c > >> index b0640f1..ae900b5 100644 > >> --- a/target/i386/cpu.c > >> +++ b/target/i386/cpu.c > >> @@ -435,7 +435,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { > >> NULL, "avx512vbmi", "umip", "pku", > >> "ospke", NULL, NULL, NULL, > >> NULL, NULL, NULL, NULL, > >> - NULL, NULL, NULL, NULL, > >> + NULL, NULL, "vpopcntdq", NULL, > > > > The patches I see on linux-kernel use the "avx512_vpopcntdq" > > name. Why not use "avx512-vpopcntdq" in QEMU to avoid confusion? > > Or without the dash too, for consistency with avx512vbmi. I would agree if Linux was consistent and used "avx512vpopcntdq" instead of "avx512_vpopcntdq". But if Linux choose to use "avx512_vpopcntdq", I would like to use a compatible name in QEMU. Other software components are likely to use the same flag names as Linux. If we use a different name, they will need to manually translate the Linux names to QEMU names.
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index b0640f1..ae900b5 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -435,7 +435,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { NULL, "avx512vbmi", "umip", "pku", "ospke", NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, + NULL, NULL, "vpopcntdq", NULL, "la57", NULL, NULL, NULL, NULL, NULL, "rdpid", NULL, NULL, NULL, NULL, NULL, diff --git a/target/i386/cpu.h b/target/i386/cpu.h index a7f2f60..73edc60 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -630,6 +630,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; #define CPUID_7_0_ECX_UMIP (1U << 2) #define CPUID_7_0_ECX_PKU (1U << 3) #define CPUID_7_0_ECX_OSPKE (1U << 4) +#define CPUID_7_0_ECX_VPOPCNTDQ (1U << 14) /* POPCNT for vectors of DW/QW */ #define CPUID_7_0_ECX_LA57 (1U << 16) #define CPUID_7_0_ECX_RDPID (1U << 22)
AVX512_VPOPCNTDQ: Vector POPCNT instructions for word and qwords. variable precision. Signed-off-by: He Chen <he.chen@linux.intel.com> --- target/i386/cpu.c | 2 +- target/i386/cpu.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-)