VirtualBox

Changeset 105489 in vbox for trunk


Ignore:
Timestamp:
Jul 24, 2024 2:40:45 PM (6 months ago)
Author:
vboxsync
Message:

VMM/IEM: Introduce special IEM_MC_NATIVE_EMIT_2_EX() IEM microcode statement which also passes the instruction count through, bugref:10652

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py

    r105445 r105489  
    32443244    'IEM_MC_NATIVE_EMIT_1':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
    32453245    'IEM_MC_NATIVE_EMIT_2':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3246    'IEM_MC_NATIVE_EMIT_2_EX':                                   (McBlock.parseMcGeneric,           True,  True,  True,  ),
    32463247    'IEM_MC_NATIVE_EMIT_3':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
    32473248    'IEM_MC_NATIVE_EMIT_4':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h

    r105445 r105489  
    187187#define IEM_MC_NATIVE_EMIT_2(a_fnEmitter, a0, a1) \
    188188    off = a_fnEmitter(pReNative, off, (a0), (a1))
     189
     190#define IEM_MC_NATIVE_EMIT_2_EX(a_fnEmitter, a0, a1) \
     191    off = a_fnEmitter(pReNative, off, pCallEntry->idxInstr, (a0), (a1))
    189192
    190193#define IEM_MC_NATIVE_EMIT_3(a_fnEmitter, a0, a1, a2) \
     
    33323335#ifdef IEMNATIVE_WITH_SIMD_REG_ALLOCATOR
    33333336    /* Clear the appropriate IEMNATIVE_SIMD_RAISE_XCPT_CHECKS_EMITTED_XXX flags
    3334        when a calls clobber any of the relevatn control registers. */
     3337       when a calls clobber any of the relevant control registers. */
    33353338# if 1
    33363339    if (!(fGstShwFlush & (RT_BIT_64(kIemNativeGstReg_Cr0) | RT_BIT_64(kIemNativeGstReg_Cr4) | RT_BIT_64(kIemNativeGstReg_Xcr0))))
  • trunk/src/VBox/VMM/include/IEMMc.h

    r105449 r105489  
    26812681#define IEM_MC_NATIVE_EMIT_1(a_fnEmitter, a0)                             (void)(a0)
    26822682#define IEM_MC_NATIVE_EMIT_2(a_fnEmitter, a0, a1)                         (void)(a0), (void)(a1)
     2683#define IEM_MC_NATIVE_EMIT_2_EX(a_fnEmitter, a0, a1)                      (void)(a0), (void)(a1)
    26832684#define IEM_MC_NATIVE_EMIT_3(a_fnEmitter, a0, a1, a2)                     (void)(a0), (void)(a1), (void)(a2)
    26842685#define IEM_MC_NATIVE_EMIT_4(a_fnEmitter, a0, a1, a2, a3)                 (void)(a0), (void)(a1), (void)(a2), (void)(a3)
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r105445 r105489  
    592592#define IEM_MC_NATIVE_EMIT_1(a_fnEmitter, a0)                             do { (void)fMcBegin; (void)(a0); } while (0)
    593593#define IEM_MC_NATIVE_EMIT_2(a_fnEmitter, a0, a1)                         do { (void)fMcBegin; (void)(a0), (void)(a1); } while (0)
     594#define IEM_MC_NATIVE_EMIT_2_EX(a_fnEmitter, a0, a1)                      do { (void)fMcBegin; (void)(a0), (void)(a1); } while (0)
    594595#define IEM_MC_NATIVE_EMIT_3(a_fnEmitter, a0, a1, a2)                     do { (void)fMcBegin; (void)(a0), (void)(a1), (void)(a2); } while (0)
    595596#define IEM_MC_NATIVE_EMIT_4(a_fnEmitter, a0, a1, a2, a3)                 do { (void)fMcBegin; (void)(a0), (void)(a1), (void)(a2), (void)(a3); } while (0)
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