VirtualBox

Ignore:
Timestamp:
Jul 31, 2019 8:50:22 PM (5 years ago)
Author:
vboxsync
Message:

VMM: Kicking out raw-mode - IEM. bugref:9517

File:
1 edited

Legend:

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

    r80024 r80089  
    213213static void iemHlpAdjustSelectorForNewCpl(PVMCPU pVCpu, uint8_t uCpl, PCPUMSELREG pSReg)
    214214{
    215 #ifdef VBOX_WITH_RAW_MODE_NOT_R0
    216     if (!CPUMSELREG_ARE_HIDDEN_PARTS_VALID(pVCpu, pSReg))
    217         CPUMGuestLazyLoadHiddenSelectorReg(pVCpu, pSReg);
    218 #else
    219215    Assert(CPUMSELREG_ARE_HIDDEN_PARTS_VALID(pVCpu, pSReg));
    220 #endif
    221216    IEM_CTX_ASSERT(pVCpu, CPUMCTX_EXTRN_SREG_MASK);
    222217
     
    839834    if (rcStrict != VINF_SUCCESS)
    840835        return rcStrict;
    841 
    842 #if defined(IN_RING3) && defined(VBOX_WITH_RAW_MODE) && defined(VBOX_WITH_CALL_RECORD)
    843     /*
    844      * CASM hook for recording interesting indirect calls.
    845      */
    846     if (   !pVCpu->cpum.GstCtx.eflags.Bits.u1IF
    847         && (pVCpu->cpum.GstCtx.cr0 & X86_CR0_PG)
    848         && !CSAMIsEnabled(pVCpu->CTX_SUFF(pVM))
    849         && pVCpu->iem.s.uCpl == 0)
    850     {
    851         EMSTATE enmState = EMGetState(pVCpu);
    852         if (   enmState == EMSTATE_IEM_THEN_REM
    853             || enmState == EMSTATE_IEM
    854             || enmState == EMSTATE_REM)
    855             CSAMR3RecordCallAddress(pVCpu->CTX_SUFF(pVM), pVCpu->cpum.GstCtx.eip);
    856     }
    857 #endif
    858836
    859837    pVCpu->cpum.GstCtx.rip = uNewPC;
     
    56935671            }
    56945672            rcStrict = PGMChangeMode(pVCpu, pVCpu->cpum.GstCtx.cr0, pVCpu->cpum.GstCtx.cr4, pVCpu->cpum.GstCtx.msrEFER);
    5695 
    5696 #ifdef IN_RC
    5697             /* Return to ring-3 for rescheduling if WP or AM changes. */
    5698             if (   rcStrict == VINF_SUCCESS
    5699                 && (   (uNewCrX & (X86_CR0_WP | X86_CR0_AM))
    5700                     != (uOldCrX & (X86_CR0_WP | X86_CR0_AM))) )
    5701                 rcStrict = VINF_EM_RESCHEDULE;
    5702 #endif
    57035673            break;
    57045674        }
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