Changeset 105427 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jul 22, 2024 1:12:50 PM (6 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/IEMR3.cpp
r105423 r105427 1098 1098 if (fFlags & IEMR3INFOTLB_F_CHECK) 1099 1099 { 1100 PGMPTWALKFAST WalkFast; 1100 uint32_t const fInvSlotG = (uint32_t)!(uSlot & 1) << X86_PTE_BIT_Gx; 1101 PGMPTWALKFAST WalkFast; 1101 1102 int rc = PGMGstQueryPageFast(pVCpu, GCPtr, 0 /*fFlags - don't check or modify anything */, &WalkFast); 1102 1103 pszValid = szTmp; … … 1122 1123 == ( (pTlbe->fFlagsAndPhysRev & ( IEMTLBE_F_PT_NO_WRITE | IEMTLBE_F_PT_NO_USER 1123 1124 | IEMTLBE_F_PT_NO_DIRTY | IEMTLBE_F_PT_NO_ACCESSED)) 1124 | (!(uSlot & 1) << X86_PTE_BIT_G)) )1125 | fInvSlotG ) ) 1125 1126 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) ) 1129 1129 switch ( (~WalkFast.fEffective & (X86_PTE_A | X86_PTE_D)) 1130 1130 ^ (pTlbe->fFlagsAndPhysRev & (IEMTLBE_F_PT_NO_DIRTY | IEMTLBE_F_PT_NO_ACCESSED)) ) … … 1151 1151 (~WalkFast.fEffective & X86_PTE_US) == (pTlbe->fFlagsAndPhysRev & IEMTLBE_F_PT_NO_USER) ? "" 1152 1152 : 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 ? "" 1154 1154 : WalkFast.fEffective & X86_PTE_G ? " global-now" : " global-no-more", 1155 1155 (~WalkFast.fEffective & X86_PTE_D) == (pTlbe->fFlagsAndPhysRev & IEMTLBE_F_PT_NO_DIRTY) ? ""
Note:
See TracChangeset
for help on using the changeset viewer.