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