summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/VMMR0/CPUMR0.cpp
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2021-01-21 21:13:55 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2021-01-21 21:13:55 +0000
commit65650b5d104600d4c2f57eef54e51e372e21fa12 (patch)
tree15d0ff68067ec40cf60e4648304110ab0df69e8d /src/VBox/VMM/VMMR0/CPUMR0.cpp
parentc48b29fd7c03de56438f9d9d6138318f14ac65de (diff)
downloadVirtualBox-svn-65650b5d104600d4c2f57eef54e51e372e21fa12.tar.gz
VMM/CPUM,HMSVM: Mirror the state of fUseFlags[CPUM_USED_FPU_GUEST] in CPUMCTX::fUsedFpuGuest so the HM switcher code can get at it (only relevant for windows) and avoid a call to CPUMIsGuestFPUStateActive/Loaded.
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@87361 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/VMM/VMMR0/CPUMR0.cpp')
-rw-r--r--src/VBox/VMM/VMMR0/CPUMR0.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/VBox/VMM/VMMR0/CPUMR0.cpp b/src/VBox/VMM/VMMR0/CPUMR0.cpp
index 8dfb4c34053..11c3004049f 100644
--- a/src/VBox/VMM/VMMR0/CPUMR0.cpp
+++ b/src/VBox/VMM/VMMR0/CPUMR0.cpp
@@ -465,6 +465,7 @@ VMMR0_INT_DECL(int) CPUMR0LoadGuestFPU(PVMCC pVM, PVMCPUCC pVCpu)
}
Assert( (pVCpu->cpum.s.fUseFlags & (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_HOST | CPUM_USED_FPU_SINCE_REM))
== (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_HOST | CPUM_USED_FPU_SINCE_REM));
+ Assert(pVCpu->cpum.s.Guest.fUsedFpuGuest);
return rc;
}
@@ -484,6 +485,7 @@ VMMR0_INT_DECL(bool) CPUMR0FpuStateMaybeSaveGuestAndRestoreHost(PVMCPUCC pVCpu)
if (pVCpu->cpum.s.fUseFlags & (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_HOST))
{
fSavedGuest = RT_BOOL(pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST);
+ Assert(fSavedGuest == pVCpu->cpum.s.Guest.fUsedFpuGuest);
if (!(pVCpu->cpum.s.fUseFlags & CPUM_USED_MANUAL_XMM_RESTORE))
cpumR0SaveGuestRestoreHostFPUState(&pVCpu->cpum.s);
else
@@ -508,6 +510,7 @@ VMMR0_INT_DECL(bool) CPUMR0FpuStateMaybeSaveGuestAndRestoreHost(PVMCPUCC pVCpu)
fSavedGuest = false;
Assert(!( pVCpu->cpum.s.fUseFlags
& (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_HOST | CPUM_USED_MANUAL_XMM_RESTORE)));
+ Assert(!pVCpu->cpum.s.Guest.fUsedFpuGuest);
return fSavedGuest;
}