Re: [Qemu-devel] [PATCH 13/13] x86/cpuid: Update qemu64/32 CPU models

2010-03-12 Thread Jamie Lokier
Andre Przywara wrote:
 Since we now have a real TCG feature set, use it to describe the
 artificial qemu CPUs (both 64 and 32-bit). If new features are added
 to TCG, the capability of qemu64/32 will automatically be adjusted.
 
 Signed-off-by: Andre Przywara andre.przyw...@amd.com

 -.features = PPRO_FEATURES | 
 -/* these features are needed for Win64 and aren't fully implemented 
 */
 -CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
 -/* this feature is needed for Solaris and isn't fully implemented */
 -CPUID_PSE36,
 -.ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_POPCNT,
 -.ext2_features = (PPRO_FEATURES  EXT2_FEATURE_MASK) | 
 -CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
 -.ext3_features = CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM |
 -CPUID_EXT3_ABM | CPUID_EXT3_SSE4A,

Those comments seem to have disappeared.  Are they useful - or even correct any 
more?

 +.features = TCG_FEATURES,
 +.ext_features = TCG_EXT_FEATURES,
 +/* 3DNow! is deprecated, so leave it out of the default feature set 
 */
 +.ext2_features = (TCG_EXT2_FEATURES | EXT2_FEATURES_64) 
 +~(CPUID_EXT2_3DNOW | CPUID_EXT2_3DNOWEXT),
 +.ext3_features = TCG_EXT3_FEATURES,

3DNow! is an old capability, but why is that a reason to single it out
for omission?

Is there any harm in it being enabled?

-- Jamie




[Qemu-devel] [PATCH 13/13] x86/cpuid: Update qemu64/32 CPU models

2010-03-11 Thread Andre Przywara
Since we now have a real TCG feature set, use it to describe the
artificial qemu CPUs (both 64 and 32-bit). If new features are added
to TCG, the capability of qemu64/32 will automatically be adjusted.

Signed-off-by: Andre Przywara andre.przyw...@amd.com
---
 target-i386/cpuid.c |   25 +
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 076f6cc..ec43596 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -227,6 +227,7 @@ typedef struct x86_def_t {
   CPUID_MSR | CPUID_MCE | CPUID_CX8 | CPUID_PGE | CPUID_CMOV | \
   CPUID_PAT | CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2 | \
   CPUID_PAE | CPUID_SEP | CPUID_APIC)
+#define EXT2_FEATURES_64 (CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX)
 #define EXT2_FEATURE_MASK 0x0183F3FF
 
 #define TCG_FEATURES (CPUID_FP87 | CPUID_PSE | CPUID_TSC | CPUID_MSR | \
@@ -259,16 +260,12 @@ static x86_def_t builtin_x86_defs[] = {
 .family = 6,
 .model = 2,
 .stepping = 3,
-.features = PPRO_FEATURES | 
-/* these features are needed for Win64 and aren't fully implemented */
-CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
-/* this feature is needed for Solaris and isn't fully implemented */
-CPUID_PSE36,
-.ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_POPCNT,
-.ext2_features = (PPRO_FEATURES  EXT2_FEATURE_MASK) | 
-CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
-.ext3_features = CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM |
-CPUID_EXT3_ABM | CPUID_EXT3_SSE4A,
+.features = TCG_FEATURES,
+.ext_features = TCG_EXT_FEATURES,
+/* 3DNow! is deprecated, so leave it out of the default feature set */
+.ext2_features = (TCG_EXT2_FEATURES | EXT2_FEATURES_64) 
+~(CPUID_EXT2_3DNOW | CPUID_EXT2_3DNOWEXT),
+.ext3_features = TCG_EXT3_FEATURES,
 .xlevel = 0x800A,
 .model_id = QEMU Virtual CPU version  QEMU_VERSION,
 },
@@ -354,8 +351,12 @@ static x86_def_t builtin_x86_defs[] = {
 .family = 6,
 .model = 3,
 .stepping = 3,
-.features = PPRO_FEATURES,
-.ext_features = CPUID_EXT_SSE3 | CPUID_EXT_POPCNT,
+.features = TCG_FEATURES,
+.ext_features = TCG_EXT_FEATURES,
+/* 3DNow! is deprecated, so leave it out of the default feature set */
+.ext2_features = TCG_EXT2_FEATURES 
+   ~(CPUID_EXT2_3DNOW | CPUID_EXT2_3DNOWEXT),
+.ext3_features = TCG_EXT3_FEATURES,
 .xlevel = 0x8004,
 .model_id = QEMU Virtual CPU version  QEMU_VERSION,
 },
-- 
1.6.4