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 = 0x8000000A, .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 = 0x80000004, .model_id = "QEMU Virtual CPU version " QEMU_VERSION, }, -- 1.6.4