VirtualBox

Changeset 104342 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Apr 17, 2024 1:15:29 PM (10 months ago)
Author:
vboxsync
Message:

VMM/IEM: Fixed debug/strict regression from r162198 where x0/rax could be trashed by IEMNATIVE_STRICT_EFLAGS_SKIPPING_EMIT_CHECK in iemNativeEmitEpilog leading to weird return status codes and misbehaviour. bugref:10375

File:
1 edited

Legend:

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

    r104322 r104342  
    63196319     * Successful return, so clear the return register (eax, w0).
    63206320     */
    6321     off = iemNativeEmitGprZero(pReNative,off, IEMNATIVE_CALL_RET_GREG);
     6321    pReNative->Core.bmHstRegs |= RT_BIT_32(IEMNATIVE_CALL_RET_GREG); /* HACK: For IEMNATIVE_STRICT_EFLAGS_SKIPPING_EMIT_CHECK. */
     6322    off = iemNativeEmitGprZero(pReNative, off, IEMNATIVE_CALL_RET_GREG);
    63226323
    63236324    /*
     
    82558256        ENTRY(iem.s.cbInstrBufTotal),
    82568257        ENTRY(iem.s.idxTbCurInstr),
     8258        ENTRY(iem.s.fSkippingEFlags),
    82578259#ifdef VBOX_WITH_STATISTICS
    82588260        ENTRY(iem.s.StatNativeTlbHitsForFetch),
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