VirtualBox

Changeset 105427 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Jul 22, 2024 1:12:50 PM (6 months ago)
Author:
vboxsync
Message:

VMM/IEM: More 'info dtlb/itlb' details. [build fix] bugref:10727

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/IEMR3.cpp

    r105423 r105427  
    10981098    if (fFlags & IEMR3INFOTLB_F_CHECK)
    10991099    {
    1100         PGMPTWALKFAST WalkFast;
     1100        uint32_t const fInvSlotG = (uint32_t)!(uSlot & 1) << X86_PTE_BIT_Gx;
     1101        PGMPTWALKFAST  WalkFast;
    11011102        int rc = PGMGstQueryPageFast(pVCpu, GCPtr, 0 /*fFlags - don't check or modify anything */, &WalkFast);
    11021103        pszValid = szTmp;
     
    11221123                 == (  (pTlbe->fFlagsAndPhysRev & (  IEMTLBE_F_PT_NO_WRITE | IEMTLBE_F_PT_NO_USER
    11231124                                                   | IEMTLBE_F_PT_NO_DIRTY | IEMTLBE_F_PT_NO_ACCESSED))
    1124                      | (!(uSlot & 1) << X86_PTE_BIT_G) ) )
     1125                     | fInvSlotG ) )
    11251126            pszValid = " still-valid";
    1126         else if (   (~WalkFast.fEffective       & (X86_PTE_RW | X86_PTE_US | X86_PTE_G))
    1127                  == (  (pTlbe->fFlagsAndPhysRev & (IEMTLBE_F_PT_NO_WRITE | IEMTLBE_F_PT_NO_USER))
    1128                      | (!(uSlot & 1) << X86_PTE_BIT_G) ) )
     1127        else if (   (~WalkFast.fEffective     & (X86_PTE_RW | X86_PTE_US | X86_PTE_G))
     1128                 == ((pTlbe->fFlagsAndPhysRev & (IEMTLBE_F_PT_NO_WRITE | IEMTLBE_F_PT_NO_USER)) | fInvSlotG) )
    11291129            switch (  (~WalkFast.fEffective    & (X86_PTE_A | X86_PTE_D))
    11301130                    ^ (pTlbe->fFlagsAndPhysRev & (IEMTLBE_F_PT_NO_DIRTY | IEMTLBE_F_PT_NO_ACCESSED)) )
     
    11511151                        (~WalkFast.fEffective & X86_PTE_US) == (pTlbe->fFlagsAndPhysRev & IEMTLBE_F_PT_NO_USER) ? ""
    11521152                        : WalkFast.fEffective & X86_PTE_US ? " user-now"     : " user-no-more",
    1153                         (~WalkFast.fEffective & X86_PTE_G)  == (!(uSlot & 1) << X86_PTE_BIT_G) ? ""
     1153                        (~WalkFast.fEffective & X86_PTE_G)  == fInvSlotG ? ""
    11541154                        : WalkFast.fEffective & X86_PTE_G  ? " global-now"   : " global-no-more",
    11551155                        (~WalkFast.fEffective & X86_PTE_D)  == (pTlbe->fFlagsAndPhysRev & IEMTLBE_F_PT_NO_DIRTY) ? ""
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