Commit a6f379881e1acae7708ef647f4b9c921ed054ae8

Authored by bellard
1 parent f419b321

return model id in cpuid for x86_64


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1374 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 17 additions and 0 deletions
target-i386/helper2.c
... ... @@ -102,15 +102,32 @@ CPUX86State *cpu_x86_init(void)
102 102 stepping = 3;
103 103 #endif
104 104 #endif
  105 + env->cpuid_level = 2;
105 106 env->cpuid_version = (family << 8) | (model << 4) | stepping;
106 107 env->cpuid_features = (CPUID_FP87 | CPUID_DE | CPUID_PSE |
107 108 CPUID_TSC | CPUID_MSR | CPUID_MCE |
108 109 CPUID_CX8 | CPUID_PGE | CPUID_CMOV);
109 110 env->cpuid_ext_features = 0;
110 111 env->cpuid_features |= CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2 | CPUID_PAE | CPUID_SEP;
  112 + env->cpuid_xlevel = 0;
  113 + {
  114 + const char *model_id = "QEMU Virtual CPU version " QEMU_VERSION;
  115 + int c, len, i;
  116 + len = strlen(model_id);
  117 + for(i = 0; i < 48; i++) {
  118 + if (i >= len)
  119 + c = '\0';
  120 + else
  121 + c = model_id[i];
  122 + env->cpuid_model[i >> 2] |= c << (8 * (i & 3));
  123 + }
  124 + }
111 125 #ifdef TARGET_X86_64
112 126 /* currently not enabled for std i386 because not fully tested */
113 127 env->cpuid_features |= CPUID_APIC;
  128 + env->cpuid_ext2_features = (env->cpuid_features & 0x0183F3FF);
  129 + env->cpuid_ext2_features |= CPUID_EXT2_LM | CPUID_EXT2_SYSCALL;
  130 + env->cpuid_xlevel = 0x80000008;
114 131 #endif
115 132 }
116 133 cpu_single_env = env;
... ...