VirtualBox

Ignore:
Timestamp:
Apr 8, 2013 4:16:53 PM (12 years ago)
Author:
vboxsync
Message:

VMM/VMMR0: HM bits.

File:
1 edited

Legend:

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

    r45409 r45412  
    45504550                enmReflect = VMXREFLECTXCPT_XCPT;
    45514551            }
    4552             else if (   hmR0VmxIsContributoryXcpt(uIdtVector)
    4553                      && hmR0VmxIsContributoryXcpt(uExitVector))
    4554             {
    4555                 enmReflect = VMXREFLECTXCPT_DF;
    4556             }
    45574552            else if (   (pVCpu->hm.s.vmx.u32XcptBitmap & RT_BIT(X86_XCPT_PF))
    45584553                     && uIdtVector == X86_XCPT_PF
     
    45604555            {
    45614556                pVmxTransient->fVectoringPF = true;
     4557            }
     4558            else if (   hmR0VmxIsContributoryXcpt(uIdtVector)
     4559                     && hmR0VmxIsContributoryXcpt(uExitVector))
     4560            {
     4561                enmReflect = VMXREFLECTXCPT_DF;
    45624562            }
    45634563            else if (   hmR0VmxInterceptingContributoryXcpts(pVCpu)
     
    63376337    Assert(!(pVCpu->hm.s.fContextUseFlags & HM_CHANGED_HOST_CONTEXT));
    63386338    Log(("LoadFlags=%#RX32\n", pVCpu->hm.s.fContextUseFlags));
    6339     int rc = VMXR0LoadGuestState(pVM, pVCpu, pMixedCtx);
     6339    int rc = VINF_SUCCESS;
     6340    if (pVCpu->hm.s.fContextUseFlags == HM_CHANGED_GUEST_RIP)
     6341        rc = hmR0VmxLoadGuestRip(pVM, pVCpu, pMixedCtx);
     6342    else if (pVCpu->hm.s.fContextUseFlags)
     6343        rc = VMXR0LoadGuestState(pVM, pVCpu, pMixedCtx);
    63406344    AssertRC(rc);
    63416345    AssertMsg(!pVCpu->hm.s.fContextUseFlags, ("fContextUseFlags =%#x\n", pVCpu->hm.s.fContextUseFlags));
     
    64946498        AssertMsg(pVCpu->hm.s.idEnteredCpu == RTMpCpuId(),
    64956499                  ("Illegal migration! Entered on CPU %u Current %u cLoops=%u\n", (unsigned)pVCpu->hm.s.idEnteredCpu,
    6496                    (unsigned)RTMpCpuId(), cLoops));
     6500                  (unsigned)RTMpCpuId(), cLoops));
    64976501
    64986502        /* Preparatory work for running guest code, this may return to ring-3 for some last minute updates. */
     
    80228026#else
    80238027    /* Aggressive state sync. for now. */
    8024     rc  = hmR0VmxSaveGuestGprs(pVM, pVCpu, pMixedCtx);
     8028    rc |= hmR0VmxSaveGuestGprs(pVM, pVCpu, pMixedCtx);
    80258029    rc |= hmR0VmxSaveGuestControlRegs(pVM, pVCpu, pMixedCtx);
    80268030    rc |= hmR0VmxSaveGuestSegmentRegs(pVM, pVCpu, pMixedCtx);
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