qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Andre Przywara
Subject: [Qemu-devel] [PATCH 13/13] x86/cpuid: Update qemu64/32 CPU models
Date: Thu, 11 Mar 2010 14:39:07 +0100

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 <address@hidden>
---
 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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]