VirtualBox

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


Ignore:
Timestamp:
Oct 24, 2013 1:06:04 PM (11 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0, HMSVMR0: Guest-FPU pre-load optimization.

Location:
trunk/src/VBox/VMM/VMMR0
Files:
2 edited

Legend:

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

    r49225 r49275  
    29132913    hmR0SvmInjectPendingEvent(pVCpu, pCtx);
    29142914
     2915    if (   pVCpu->hm.s.fUseGuestFpu
     2916        && !CPUMIsGuestFPUStateActive(pVCpu))
     2917    {
     2918        CPUMR0LoadGuestFPU(pVM, pVCpu, pCtx);
     2919        VMCPU_HMCF_SET(pVCpu, HM_CHANGED_GUEST_CR0);
     2920    }
     2921
    29152922    /* Load the state shared between host and guest (FPU, debug). */
    29162923    PSVMVMCB pVmcb = (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb;
     
    49664973        VMCPU_HMCF_SET(pVCpu, HM_CHANGED_GUEST_CR0);
    49674974        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitShadowNM);
     4975        pVCpu->hm.s.fUseGuestFpu = true;
    49684976    }
    49694977    else
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r49274 r49275  
    78317831    VMCPU_HMCF_SET(pVCpu, HM_CHANGED_GUEST_CR0);
    78327832#endif
     7833
     7834    if (   pVCpu->hm.s.fUseGuestFpu
     7835        && !CPUMIsGuestFPUStateActive(pVCpu))
     7836    {
     7837        CPUMR0LoadGuestFPU(pVM, pVCpu, pMixedCtx);
     7838        Assert(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_CR0);
     7839        VMCPU_HMCF_SET(pVCpu, HM_CHANGED_GUEST_CR0);
     7840    }
    78337841
    78347842    /*
     
    1070610714        VMCPU_HMCF_SET(pVCpu, HM_CHANGED_GUEST_CR0);
    1070710715        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitShadowNM);
     10716        pVCpu->hm.s.fUseGuestFpu = true;
    1070810717    }
    1070910718    else
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