VirtualBox

Ignore:
Timestamp:
Jan 12, 2024 12:47:47 AM (11 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implemented the first of two code TLB lookups. bugref:10371

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r102686 r102850  
    965965                iemRaisePageFaultJmp(pVCpu, GCPtrFirst, 1, IEM_ACCESS_INSTRUCTION, VERR_ACCESS_DENIED);
    966966            }
     967        }
     968
     969        /*
     970         * Set the accessed flags.
     971         * ASSUMES this is set when the address is translated rather than on commit...
     972         */
     973        /** @todo testcase: check when the A bit are actually set by the CPU for code. */
     974        if (pTlbe->fFlagsAndPhysRev & IEMTLBE_F_PT_NO_ACCESSED)
     975        {
     976            int rc2 = PGMGstModifyPage(pVCpu, GCPtrFirst, 1, X86_PTE_A, ~(uint64_t)X86_PTE_A);
     977            AssertRC(rc2);
     978            /** @todo Nested VMX: Accessed/dirty bit currently not supported, asserted below. */
     979            Assert(!(CPUMGetGuestIa32VmxEptVpidCap(pVCpu) & VMX_BF_EPT_VPID_CAP_ACCESS_DIRTY_MASK));
     980            pTlbe->fFlagsAndPhysRev &= ~IEMTLBE_F_PT_NO_ACCESSED;
    967981        }
    968982
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