VirtualBox

Changeset 106097 in vbox for trunk


Ignore:
Timestamp:
Sep 19, 2024 2:27:50 PM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164872
Message:

VMM/IEM: Liveness fix for MXCSR modifying in addps and friends. bugref:10652 bugref:10372

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

Legend:

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

    r106061 r106097  
    32133213    'IEM_MC_LIVENESS_XREG_CLOBBER':                              (McBlock.parseMcGeneric,           False, False, True,  ),
    32143214    'IEM_MC_LIVENESS_XREG_MODIFY':                               (McBlock.parseMcGeneric,           False, False, True,  ),
     3215    'IEM_MC_LIVENESS_MXCSR_INPUT':                               (McBlock.parseMcGeneric,           False, False, True,  ),
     3216    'IEM_MC_LIVENESS_MXCSR_CLOBBER':                             (McBlock.parseMcGeneric,           False, False, True,  ),
     3217    'IEM_MC_LIVENESS_MXCSR_MODIFY':                              (McBlock.parseMcGeneric,           False, False, True,  ),
    32153218    'IEM_MC_LOCAL':                                              (McBlock.parseMcLocal,             False, False, True,  ),
    32163219    'IEM_MC_LOCAL_ASSIGN':                                       (McBlock.parseMcLocalAssign,       False, False, True,  ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h

    r106061 r106097  
    768768            IEM_MC_PREPARE_SSE_USAGE(); \
    769769            IEM_MC_NATIVE_IF(a_fRegNativeArchs) { \
     770                IEM_MC_LIVENESS_MXCSR_MODIFY(); \
    770771                IEM_MC_NATIVE_EMIT_2_EX(RT_CONCAT3(iemNativeEmit_,a_Ins,_rr_u128), IEM_GET_MODRM_REG(pVCpu, bRm), IEM_GET_MODRM_RM(pVCpu, bRm)); \
    771772            } IEM_MC_NATIVE_ELSE() { \
     
    796797            IEM_MC_PREPARE_SSE_USAGE(); \
    797798            IEM_MC_NATIVE_IF(a_fRegNativeArchs) { \
     799                IEM_MC_LIVENESS_MXCSR_MODIFY(); \
    798800                IEM_MC_NATIVE_EMIT_2_EX(RT_CONCAT3(iemNativeEmit_,a_Ins,_rv_u128), IEM_GET_MODRM_REG(pVCpu, bRm), uSrc2); \
    799801            } IEM_MC_NATIVE_ELSE() { \
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veLiveness.h

    r106090 r106097  
    12511251#define IEM_MC_LIVENESS_XREG_MODIFY(a_iXReg)            NOP()
    12521252
     1253#define IEM_MC_LIVENESS_MXCSR_INPUT()                   IEM_LIVENESS_MXCSR_INPUT()
     1254#define IEM_MC_LIVENESS_MXCSR_CLOBBER()                 IEM_LIVENESS_MXCSR_CLOBBER()
     1255#define IEM_MC_LIVENESS_MXCSR_MODIFY()                  IEM_LIVENESS_MXCSR_MODIFY()
     1256
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h

    r106090 r106097  
    266266#define IEM_MC_LIVENESS_XREG_MODIFY(a_iXReg)    ((void)0)
    267267
     268#define IEM_MC_LIVENESS_MXCSR_INPUT()           ((void)0)
     269#define IEM_MC_LIVENESS_MXCSR_CLOBBER()         ((void)0)
     270#define IEM_MC_LIVENESS_MXCSR_MODIFY()          ((void)0)
    268271
    269272
  • trunk/src/VBox/VMM/include/IEMMc.h

    r106061 r106097  
    33323332#define IEM_MC_LIVENESS_XREG_MODIFY(a_iXReg)            ((void)0)
    33333333
     3334/** Recompiler liveness info: input MXCSR */
     3335#define IEM_MC_LIVENESS_MXCSR_INPUT()                   ((void)0)
     3336/** Recompiler liveness info: clobbered MXCSR */
     3337#define IEM_MC_LIVENESS_MXCSR_CLOBBER()                 ((void)0)
     3338/** Recompiler liveness info: modified MXCSR (i.e. input & output)  */
     3339#define IEM_MC_LIVENESS_MXCSR_MODIFY()                  ((void)0)
     3340
    33343341/** @todo add more as needed. */
    33353342
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r106061 r106097  
    11641164#define IEM_MC_LIVENESS_XREG_MODIFY(a_iXReg)                            ((void)a_iXReg)
    11651165
     1166#define IEM_MC_LIVENESS_MXCSR_INPUT()                                   ((void)0)
     1167#define IEM_MC_LIVENESS_MXCSR_CLOBBER()                                 ((void)0)
     1168#define IEM_MC_LIVENESS_MXCSR_MODIFY()                                  ((void)0)
     1169
    11661170/** @}  */
    11671171
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette