VirtualBox

Changeset 102703 in vbox


Ignore:
Timestamp:
Dec 26, 2023 12:39:08 PM (11 months ago)
Author:
vboxsync
Message:

VMM/IEM: Extended IEMTB_KEY_MASK to include the CPL so IEMTLBE_F_PT_NO_USER can be determined at compile time in the native recompiler. bugref:10371

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r102663 r102703  
    790790
    791791/** Mask of the IEMTB_F_XXX flags that are part of the TB lookup key.
    792  * @note We skip the CPL as we don't currently generate ring-specific code,
    793  *       that's all handled in CIMPL functions.
    794  *
    795  *       For the same reasons, we skip all of IEM_F_X86_CTX_MASK, with the
    796  *       exception of SMM (which we don't implement). */
    797 #define IEMTB_F_KEY_MASK                (  (UINT32_MAX & ~(IEM_F_X86_CTX_MASK | IEM_F_X86_CPL_MASK | IEMTB_F_TYPE_MASK)) \
    798                                          | IEM_F_X86_CTX_SMM)
     792 *
     793 * @note We skip all of IEM_F_X86_CTX_MASK, with the exception of SMM (which we
     794 *       don't implement), because we don't currently generate any context
     795 *       specific code - that's all handled in CIMPL functions.
     796 *
     797 *       For the threaded recompiler we don't generate any CPL specific code
     798 *       either, but the native recompiler does for memory access (saves getting
     799 *       the CPL from fExec and turning it into IEMTLBE_F_PT_NO_USER).
     800 *       Since most OSes will not share code between rings, this shouldn't
     801 *       have any real effect on TB/memory/recompiling load.
     802 */
     803#define IEMTB_F_KEY_MASK                ((UINT32_MAX & ~(IEM_F_X86_CTX_MASK | IEMTB_F_TYPE_MASK)) | IEM_F_X86_CTX_SMM)
    799804/** @} */
    800805
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