VirtualBox

Changeset 101722 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Nov 3, 2023 12:36:45 AM (15 months ago)
Author:
vboxsync
Message:

VMM/IEM: Identify the different styles IEM_MC_CALL_XXX and mark these using new IEM_CIMPL_F_CALLS_XXX flags in the python scripts. This is necessary as IEM_MC_CALL_CIMPL_X, IEM_MC_CALL_FPU_AIMPL_X, IEM_MC_CALL_MMX_AIMPL_X, and IEM_MC_CALL_SSE_AIMPL_X all have hidden parameters that need to be accounted for when recompiling to native code (for more perfect register allocations for variables). Split up the different cmpxchg16b AIMPL/CIMPL variations into separate MC blocks, as we can't mix AIMPL and CIMPL calls in the same block (also, in the CIMPL case, there would be unused tail code after the call). bugref:10371

File:
1 edited

Legend:

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

    r101682 r101722  
    622622#define IEM_CIMPL_F_XCPT \
    623623    (IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_VMEXIT)
     624
     625/** The block calls a C-implementation instruction function with two implicit arguments.
     626 * Mutually exclusive with IEM_CIMPL_F_CALLS_AIMPL and
     627 * IEM_CIMPL_F_CALLS_AIMPL_WITH_FXSTATE.
     628 * @note The python scripts will add this is missing.  */
     629#define IEM_CIMPL_F_CALLS_CIMPL                 RT_BIT_32(16)
     630/** The block calls an ASM-implementation instruction function.
     631 * Mutually exclusive with IEM_CIMPL_F_CALLS_CIMPL and
     632 * IEM_CIMPL_F_CALLS_AIMPL_WITH_FXSTATE.
     633 * @note The python scripts will add this is missing.  */
     634#define IEM_CIMPL_F_CALLS_AIMPL                 RT_BIT_32(17)
     635/** The block calls an ASM-implementation instruction function with an implicit
     636 * X86FXSTATE pointer argument.
     637 * Mutually exclusive with IEM_CIMPL_F_CALLS_CIMPL and IEM_CIMPL_F_CALLS_AIMPL.
     638 * @note The python scripts will add this is missing.  */
     639#define IEM_CIMPL_F_CALLS_AIMPL_WITH_FXSTATE    RT_BIT_32(18)
    624640/** @} */
    625641
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