Changeset 92334 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Nov 10, 2021 5:19:29 PM (3 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r92313 r92334 277 277 && pCurType->enmKind != PGMPHYSHANDLERKIND_WRITE 278 278 # if PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE) 279 && pGstWalk->Core.fEffectiveRW279 && (pGstWalk->Core.fEffective & PGM_PTATTRS_W_MASK) 280 280 && !pGstWalk->Core.fEffectiveUS /** @todo Remove pGstWalk->Core.fEffectiveUS and X86_PTE_US further down in the sync code. */ 281 281 # endif … … 437 437 { 438 438 if ( ( (uErr & X86_TRAP_PF_RW) 439 && ! GstWalk.Core.fEffectiveRW439 && !(GstWalk.Core.fEffective & PGM_PTATTRS_W_MASK) 440 440 && ( (uErr & X86_TRAP_PF_US) 441 441 || CPUMIsGuestR0WriteProtEnabled(pVCpu)) ) … … 778 778 * Check to see if we need to emulate the instruction if CR0.WP=0. 779 779 */ 780 if ( ! GstWalk.Core.fEffectiveRW780 if ( !(GstWalk.Core.fEffective & PGM_PTATTRS_W_MASK) 781 781 && (CPUMGetGuestCR0(pVCpu) & (X86_CR0_WP | X86_CR0_PG)) == X86_CR0_PG 782 782 && CPUMGetGuestCPL(pVCpu) < 3) … … 798 798 # if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_PAE) && 1 799 799 if ( GstWalk.Core.fEffectiveUS 800 && ! GstWalk.Core.fEffectiveRW800 && !(GstWalk.Core.fEffective & PGM_PTATTRS_W_MASK) 801 801 && (GstWalk.Core.fBigPage || (GstWalk.Pde.u & X86_PDE_RW)) 802 802 && pVM->cCpus == 1 /* Sorry, no go on SMP. Add CFGM option? */) … … 881 881 */ 882 882 else if ( GstWalk.Core.fEffectiveUS 883 && ! GstWalk.Core.fEffectiveRW883 && !(GstWalk.Core.fEffective & PGM_PTATTRS_W_MASK) 884 884 && (GstWalk.Core.fBigPage || (GstWalk.Pde.u & X86_PDE_RW)) 885 885 && pVCpu->pgm.s.cNetwareWp0Hacks > 0 -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r92331 r92334 257 257 Assert(fEffective & PGM_PTATTRS_R_MASK); 258 258 259 pWalk->Core.fEffectiveRW = !!(fEffective & X86_PTE_RW);260 259 pWalk->Core.fEffectiveUS = !!(fEffective & X86_PTE_US); 261 260 pWalk->Core.fBigPage = true; … … 320 319 Assert(fEffective & PGM_PTATTRS_R_MASK); 321 320 322 pWalk->Core.fEffectiveRW = !!(fEffective & X86_PTE_RW);323 321 pWalk->Core.fEffectiveUS = !!(fEffective & X86_PTE_US); 324 322 pWalk->Core.fSucceeded = true; -
trunk/src/VBox/VMM/VMMAll/PGMAllGstSlatEpt.cpp.h
r92333 r92334 153 153 pWalk->Core.fEffective = fEffective; 154 154 155 pWalk->Core.fEffectiveRW = !!fWrite;156 155 pWalk->Core.fEffectiveUS = true; 157 156 pWalk->Core.fGigantPage = true; … … 191 190 pWalk->Core.fEffective = fEffective; 192 191 193 pWalk->Core.fEffectiveRW = !!fWrite;194 192 pWalk->Core.fEffectiveUS = true; 195 193 pWalk->Core.fBigPage = true; … … 246 244 pWalk->Core.fEffective = fEffective; 247 245 248 pWalk->Core.fEffectiveRW = !!fWrite;249 246 pWalk->Core.fEffectiveUS = true; 250 247 pWalk->Core.fSucceeded = true;
Note:
See TracChangeset
for help on using the changeset viewer.