summaryrefslogtreecommitdiffstats
path: root/linux-user/main.c
diff options
context:
space:
mode:
authorKevin O'Connor2014-04-29 22:38:59 +0200
committerPaolo Bonzini2014-05-13 13:12:40 +0200
commit7848c8d19f8556666df25044bbd5d8b29439c368 (patch)
tree250b284ca81228ae073c19938cfefde8a008a26c /linux-user/main.c
parenttarget-i386: set eflags prior to calling cpu_x86_load_seg_cache() in seg_help... (diff)
downloadqemu-7848c8d19f8556666df25044bbd5d8b29439c368.tar.gz
qemu-7848c8d19f8556666df25044bbd5d8b29439c368.tar.xz
qemu-7848c8d19f8556666df25044bbd5d8b29439c368.zip
target-i386: the x86 CPL is stored in CS.selector - auto update hflags accordingly.
Instead of manually calling cpu_x86_set_cpl() when the CPL changes, check for CPL changes on calls to cpu_x86_load_seg_cache(R_CS). Every location that called cpu_x86_set_cpl() also called cpu_x86_load_seg_cache(R_CS), so cpu_x86_set_cpl() is no longer required. This fixes the SMM handler code as it was not setting/restoring the CPL level manually. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'linux-user/main.c')
-rw-r--r--linux-user/main.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/linux-user/main.c b/linux-user/main.c
index c38fecfdd9..882186e1a0 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -4051,8 +4051,6 @@ int main(int argc, char **argv, char **envp)
#endif
#if defined(TARGET_I386)
- cpu_x86_set_cpl(env, 3);
-
env->cr[0] = CR0_PG_MASK | CR0_WP_MASK | CR0_PE_MASK;
env->hflags |= HF_PE_MASK;
if (env->features[FEAT_1_EDX] & CPUID_SSE) {