mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-02 07:51:08 +00:00
i386: Enable IA32_MISC_ENABLE MWAIT bit when exposing mwait/monitor
The CPUID.01H:ECX[bit 3] ought to mirror the value of the MSR IA32_MISC_ENABLE MWAIT bit and as userspace has control of them both, it is userspace's job to configure both bits to match on the initial setup. Backports commit 4cfd7bab3f5564f6c1a23b06f73d5aa2f957cd16 from qemu
This commit is contained in:
parent
c356f78e89
commit
b41364fdc5
|
@ -4241,6 +4241,9 @@ static void x86_cpu_reset(CPUState *s)
|
|||
|
||||
env->pat = 0x0007040600070406ULL;
|
||||
env->msr_ia32_misc_enable = MSR_IA32_MISC_ENABLE_DEFAULT;
|
||||
if (env->features[FEAT_1_ECX] & CPUID_EXT_MONITOR) {
|
||||
env->msr_ia32_misc_enable |= MSR_IA32_MISC_ENABLE_MWAIT;
|
||||
}
|
||||
|
||||
memset(env->dr, 0, sizeof(env->dr));
|
||||
env->dr[6] = DR6_FIXED_1;
|
||||
|
|
|
@ -365,6 +365,7 @@
|
|||
#define MSR_IA32_MISC_ENABLE 0x1a0
|
||||
/* Indicates good rep/movs microcode on some processors: */
|
||||
#define MSR_IA32_MISC_ENABLE_DEFAULT 1
|
||||
#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18)
|
||||
|
||||
#define MSR_MTRRphysBase(reg) (0x200 + 2 * (reg))
|
||||
#define MSR_MTRRphysMask(reg) (0x200 + 2 * (reg) + 1)
|
||||
|
|
Loading…
Reference in a new issue