VirtualBox

Changeset 87361 in vbox for trunk/src/VBox/VMM/VMMRZ


Ignore:
Timestamp:
Jan 21, 2021 9:13:55 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142342
Message:

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.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMRZ/CPUMRZ.cpp

    r82968 r87361  
    9999    if (pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST)
    100100    {
     101        Assert(pVCpu->cpum.s.Guest.fUsedFpuGuest);
    101102        cpumRZSaveGuestFpuState(&pVCpu->cpum.s, false /*fLeaveFpuAccessible*/);
    102103        pVCpu->cpum.s.fUseFlags |= CPUM_USED_FPU_GUEST;
     104        pVCpu->cpum.s.Guest.fUsedFpuGuest = true;
    103105        Log7(("CPUMRZFpuStateActualizeForRead\n"));
    104106    }
     
    120122    if (pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST)
    121123    {
     124        Assert(pVCpu->cpum.s.Guest.fUsedFpuGuest);
    122125        cpumRZSaveGuestSseRegisters(&pVCpu->cpum.s);
    123126        Log7(("CPUMRZFpuStateActualizeSseForRead\n"));
     
    138141    if (pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST)
    139142    {
     143        Assert(pVCpu->cpum.s.Guest.fUsedFpuGuest);
    140144        cpumRZSaveGuestAvxRegisters(&pVCpu->cpum.s);
    141145        Log7(("CPUMRZFpuStateActualizeAvxForRead\n"));
  • trunk/src/VBox/VMM/VMMRZ/CPUMRZA.asm

    r82968 r87361  
    211211
    212212        and     dword [pCpumCpu + CPUMCPU.fUseFlags], ~CPUM_USED_FPU_GUEST
     213        mov     byte [pCpumCpu + CPUMCPU.Guest.fUsedFpuGuest], 0
    213214 %ifdef IN_RC
    214215        test    byte [ebp + 0ch], 1     ; fLeaveFpuAccessible
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