VirtualBox

Changeset 96882 in vbox


Ignore:
Timestamp:
Sep 26, 2022 6:56:21 PM (2 years ago)
Author:
vboxsync
Message:

IEM: Only zap the high half of 64-bit destination register actually used by CMPXCHG, not both possible registers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r96863 r96882  
    97699769                    IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u32_locked, pu32Dst, pu32Eax, u32Src, pEFlags);
    97709770
    9771                 IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Eax);
    9772                 IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
     9771                IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     9772                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
     9773                } IEM_MC_ELSE() {
     9774                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Eax);
     9775                } IEM_MC_ENDIF();
     9776
    97739777                IEM_MC_ADVANCE_RIP();
    97749778                IEM_MC_END();
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