VirtualBox

Ignore:
Timestamp:
Jun 10, 2023 8:49:28 PM (22 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157844
Message:

VMM/IEM: Emit extra mode-check after CIMPL calls with the IEM_CIMPL_F_MODE or IEM_CIMPL_F_XCPT flags set. bugref:10369

File:
1 edited

Legend:

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

    r100148 r100149  
    595595
    596596
     597/**
     598 * Built-in function that compares the fExec mask against uParam0.
     599 */
     600static IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckMode,
     601                         (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2))
     602{
     603    uint32_t const fExpectedExec = (uint32_t)uParam0;
     604    if (pVCpu->iem.s.fExec == fExpectedExec)
     605        return VINF_SUCCESS;
     606    Log12(("Mode changed at %04x:%08RX64: %#x -> %#x (xor: %#x)\n", pVCpu->cpum.GstCtx.cs.Sel, pVCpu->cpum.GstCtx.rip,
     607           fExpectedExec, pVCpu->iem.s.fExec, fExpectedExec ^ pVCpu->iem.s.fExec));
     608    RT_NOREF(uParam1, uParam2);
     609    return VINF_IEM_REEXEC_MODE_CHANGED;
     610}
     611
    597612/*
    598613 * The threaded functions.
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