From a6f379881e1acae7708ef647f4b9c921ed054ae8 Mon Sep 17 00:00:00 2001 From: bellard Date: Sat, 23 Apr 2005 17:50:32 +0000 Subject: [PATCH] return model id in cpuid for x86_64 git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1374 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-i386/helper2.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/target-i386/helper2.c b/target-i386/helper2.c index 730af1b..24cbcfc 100644 --- a/target-i386/helper2.c +++ b/target-i386/helper2.c @@ -102,15 +102,32 @@ CPUX86State *cpu_x86_init(void) stepping = 3; #endif #endif + env->cpuid_level = 2; env->cpuid_version = (family << 8) | (model << 4) | stepping; env->cpuid_features = (CPUID_FP87 | CPUID_DE | CPUID_PSE | CPUID_TSC | CPUID_MSR | CPUID_MCE | CPUID_CX8 | CPUID_PGE | CPUID_CMOV); env->cpuid_ext_features = 0; env->cpuid_features |= CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2 | CPUID_PAE | CPUID_SEP; + env->cpuid_xlevel = 0; + { + const char *model_id = "QEMU Virtual CPU version " QEMU_VERSION; + int c, len, i; + len = strlen(model_id); + for(i = 0; i < 48; i++) { + if (i >= len) + c = '\0'; + else + c = model_id[i]; + env->cpuid_model[i >> 2] |= c << (8 * (i & 3)); + } + } #ifdef TARGET_X86_64 /* currently not enabled for std i386 because not fully tested */ env->cpuid_features |= CPUID_APIC; + env->cpuid_ext2_features = (env->cpuid_features & 0x0183F3FF); + env->cpuid_ext2_features |= CPUID_EXT2_LM | CPUID_EXT2_SYSCALL; + env->cpuid_xlevel = 0x80000008; #endif } cpu_single_env = env; -- 2.7.4