VirtualBox

Changeset 69945 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Dec 6, 2017 9:12:57 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: Nested Hw.virt: Fix. Restore VMCB fields on (premature) exit-to-ring3 paths as well as after every #VMEXIT (as IEM/EM etc. may require inspecting VMCB exit controls when emulating instructions).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r69934 r69945  
    13111311        if (!(pCtx->cr0 & X86_CR0_NE))
    13121312        {
    1313             Log4(("hmR0SvmLoadGuestControlRegs: Intercepting Guest CR0.MP Old-style FPU handling!!!\n"));
     1313            Log4(("hmR0SvmLoadSharedCR0: Intercepting Guest CR0.MP Old-style FPU handling!!!\n"));
    13141314            fInterceptMF = true;
    13151315        }
     
    24892489        PGMUpdateCR3(pVCpu,    pVmcb->guest.u64CR3);
    24902490    }
     2491
     2492    Log4(("hmR0SvmSaveGuestState: CS:RIP=%04x:%RX64 EFL=%#x CR0=%#RX32 CR3=%#RX32 CR4=%#RX32\n", pMixedCtx->cs.Sel,
     2493          pMixedCtx->rip, pMixedCtx->eflags.u, pMixedCtx->cr0, pMixedCtx->cr3, pMixedCtx->cr4));
    24912494}
    24922495
     
    43094312                                                                   guest-CPU context. */
    43104313
    4311     /** @todo This could later be optimized. Not now. */
    43124314    HMSvmNstGstVmExitNotify(pVCpu, pMixedCtx);                  /* Restore modified VMCB fields for now, see @bugref{7243#c52} .*/
    4313     HMCPU_CF_SET(pVCpu, HM_CHANGED_ALL_GUEST);                  /* Ensure we re-modify the fields before next reentry. */
    43144315}
    43154316#endif
     
    60156016     * AMD Phenom 9850 Quad-Core on Windows 64-bit host).
    60166017     */
     6018    Log4(("hmR0SvmExitIntr: CS:RIP=%04x:%RX64 EFL=%#x CR0=%#RX32 CR3=%#RX32 CR4=%#RX32\n", pCtx->cs.Sel, pCtx->rip,
     6019          pCtx->eflags.u, pCtx->cr0, pCtx->cr3, pCtx->cr4));
     6020    Log4(("eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n"
     6021          "eip=%08x esp=%08x ebp=%08x\n"
     6022          "cs=%04x ss=%04x ds=%04x es=%04x fs=%04x gs=%04x efl=%08x\n",
     6023          pCtx->eax, pCtx->ebx, pCtx->ecx, pCtx->edx, pCtx->esi, pCtx->edi,
     6024          pCtx->eip, pCtx->esp, pCtx->ebp, pCtx->cs.Sel, pCtx->ss.Sel, pCtx->ds.Sel, pCtx->fs.Sel,
     6025          pCtx->gs.Sel, pCtx->eflags.u32));
    60176026    return VINF_EM_RAW_INTERRUPT;
    60186027}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette