VirtualBox

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


Ignore:
Timestamp:
Oct 25, 2022 7:56:51 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
154280
Message:

IEM: Clear interrupt shadow flags together with RF.

File:
1 edited

Legend:

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

    r96852 r97289  
    16101610
    16111611/**
    1612  * Updates the RIP/EIP/IP to point to the next instruction and clears EFLAGS.RF.
     1612 * Updates the RIP/EIP/IP to point to the next instruction and clears EFLAGS.RF
     1613 * and CPUMCTX_INHIBIT_SHADOW.
    16131614 *
    16141615 * @param   pVCpu               The cross context virtual CPU structure of the calling thread.
     
    16171618DECLINLINE(void) iemRegAddToRipAndClearRF(PVMCPUCC pVCpu, uint8_t cbInstr)
    16181619{
    1619     pVCpu->cpum.GstCtx.eflags.Bits.u1RF = 0;
    1620 
     1620    /* Clear RF and interrupt shadowing: */
     1621    AssertCompile(CPUMCTX_INHIBIT_SHADOW < UINT32_MAX);
     1622    pVCpu->cpum.GstCtx.eflags.uBoth &= ~(X86_EFL_RF | CPUMCTX_INHIBIT_SHADOW);
     1623
     1624    /* Update RIP: */
     1625#if ARCH_BITS >= 64
    16211626    AssertCompile(IEMMODE_16BIT == 0 && IEMMODE_32BIT == 1 && IEMMODE_64BIT == 2);
    1622 #if ARCH_BITS >= 64
    16231627    static uint64_t const s_aRipMasks[] = { UINT64_C(0xffffffff), UINT64_C(0xffffffff), UINT64_MAX };
    16241628    Assert(pVCpu->cpum.GstCtx.rip <= s_aRipMasks[(unsigned)pVCpu->iem.s.enmCpuMode]);
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