]> Git Repo - qemu.git/commitdiff
target-i386: save 64-bit CR3 in 64-bit SMM state save area
authorPaolo Bonzini <[email protected]>
Thu, 2 Apr 2015 12:13:55 +0000 (14:13 +0200)
committerPaolo Bonzini <[email protected]>
Thu, 2 Apr 2015 13:57:27 +0000 (15:57 +0200)
The x86_64 CR3 register is 64 bits wide, save all of them!

Signed-off-by: Paolo Bonzini <[email protected]>
target-i386/smm_helper.c

index 58051d3bcc00c955cf84f89537591b012b942d9d..c62f46847c32950ab524f244f56c608facb82a0b 100644 (file)
@@ -101,7 +101,7 @@ void do_smm_enter(X86CPU *cpu)
     stl_phys(cs->as, sm_state + 0x7f60, env->dr[7]);
 
     stl_phys(cs->as, sm_state + 0x7f48, env->cr[4]);
-    stl_phys(cs->as, sm_state + 0x7f50, env->cr[3]);
+    stq_phys(cs->as, sm_state + 0x7f50, env->cr[3]);
     stl_phys(cs->as, sm_state + 0x7f58, env->cr[0]);
 
     stl_phys(cs->as, sm_state + 0x7efc, SMM_REVISION_ID);
@@ -236,7 +236,7 @@ void helper_rsm(CPUX86State *env)
     env->dr[7] = ldl_phys(cs->as, sm_state + 0x7f60);
 
     cpu_x86_update_cr4(env, ldl_phys(cs->as, sm_state + 0x7f48));
-    cpu_x86_update_cr3(env, ldl_phys(cs->as, sm_state + 0x7f50));
+    cpu_x86_update_cr3(env, ldq_phys(cs->as, sm_state + 0x7f50));
     cpu_x86_update_cr0(env, ldl_phys(cs->as, sm_state + 0x7f58));
 
     for (i = 0; i < 6; i++) {
This page took 0.028961 seconds and 4 git commands to generate.