VirtualBox

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


Ignore:
Timestamp:
Aug 19, 2024 11:42:23 PM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164444
Message:

VMM/IEM: Don't try save IEMNATIVE_REG_FIXED_TMP0 together with other in-use volatile registers when making calls (todo 10). bugref:10720

File:
1 edited

Legend:

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

    r105718 r105739  
    184184/** @def IEMNATIVE_REG_FIXED_TMP0
    185185 * Dedicated temporary register.
     186 * @note This has extremely short lifetime, must be used with great care to make
     187 *       sure any calling code or code being called is making use of it.
     188 *       It will definitely not survive a call or anything of that nature.
    186189 * @todo replace this by a register allocator and content tracker.  */
    187190/** @def IEMNATIVE_REG_FIXED_MASK
     
    409412# endif
    410413#endif
     414
     415/** @def IEMNATIVE_CALL_VOLATILE_NOTMP_GREG_MASK
     416 * Variant of IEMNATIVE_CALL_VOLATILE_GREG_MASK that excludes
     417 * IEMNATIVE_REG_FIXED_TMP0 on hosts that uses it. */
     418#ifdef IEMNATIVE_REG_FIXED_TMP0
     419# ifdef IEMNATIVE_REG_FIXED_TMP1
     420#  define IEMNATIVE_CALL_VOLATILE_NOTMP_GREG_MASK   (  IEMNATIVE_CALL_VOLATILE_GREG_MASK \
     421                                                     & ~(  RT_BIT_32(IEMNATIVE_REG_FIXED_TMP0) \
     422                                                         | RT_BIT_32(IEMNATIVE_REG_FIXED_TMP1)))
     423# else
     424#  define IEMNATIVE_CALL_VOLATILE_NOTMP_GREG_MASK   (IEMNATIVE_CALL_VOLATILE_GREG_MASK & ~RT_BIT_32(IEMNATIVE_REG_FIXED_TMP0))
     425# endif
     426#else
     427# define IEMNATIVE_CALL_VOLATILE_NOTMP_GREG_MASK    IEMNATIVE_CALL_VOLATILE_GREG_MASK
     428#endif
    411429/** @} */
    412430
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