VirtualBox

Changeset 97584 in vbox


Ignore:
Timestamp:
Nov 16, 2022 11:59:04 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
154617
Message:

VMM/IEM: Corrected opsize behaviour for near returns for intel cpus in 64-bit mode; implemented single stepping for same. bugref:9898

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r97564 r97584  
    27162716    pVCpu->cpum.GstCtx.rip = NewRip.u;
    27172717    pVCpu->cpum.GstCtx.rsp = NewRsp.u;
    2718     pVCpu->cpum.GstCtx.eflags.Bits.u1RF = 0;
    27192718
    27202719    /* Flush the prefetch buffer. */
    27212720    IEM_FLUSH_PREFETCH_HEAVY(pVCpu, cbInstr); /** @todo only need a light flush here, don't we?  We don't really need any flushing... */
    27222721    RT_NOREF(cbInstr);
    2723     return VINF_SUCCESS;
     2722
     2723    return iemRegFinishClearingRF(pVCpu);
    27242724}
    27252725
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h

    r97519 r97584  
    62046204    IEMOP_MNEMONIC(retn_Iw, "retn Iw");
    62056205    uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    6206     IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    6207     IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     6206    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
     6207    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62086208    switch (pVCpu->iem.s.enmEffOpSize)
    62096209    {
     
    62256225{
    62266226    IEMOP_MNEMONIC(retn, "retn");
    6227     IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     6227    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    62286228    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62296229    switch (pVCpu->iem.s.enmEffOpSize)
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