VirtualBox

Ignore:
Timestamp:
Jul 4, 2018 5:03:57 PM (6 years ago)
Author:
vboxsync
Message:

EM,HM: Replaced EMInterpretInvlpg with IEMExecDecodedInvlpg.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r72891 r72895  
    1144911449
    1145011450    int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);
    11451     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_SREG_MASK);
     11451    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
     11452    rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK | CPUMCTX_EXTRN_DS);
    1145211453    AssertRCReturn(rc, rc);
    1145311454
    11454     VBOXSTRICTRC rcStrict = EMInterpretInvlpg(pVM, pVCpu, CPUMCTX2CORE(pMixedCtx), pVmxTransient->uExitQualification);
    11455     if (RT_LIKELY(rcStrict == VINF_SUCCESS))
    11456         rcStrict = hmR0VmxAdvanceGuestRip(pVCpu, pMixedCtx, pVmxTransient);
     11455    VBOXSTRICTRC rcStrict = IEMExecDecodedInvlpg(pVCpu, pVmxTransient->cbInstr, pVmxTransient->uExitQualification);
     11456
     11457    if (rcStrict == VINF_SUCCESS || rcStrict == VINF_PGM_SYNC_CR3)
     11458        ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS);
     11459    else if (rcStrict == VINF_IEM_RAISED_XCPT)
     11460    {
     11461        ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_XCPT_RAISED_MASK);
     11462        rcStrict = VINF_SUCCESS;
     11463    }
    1145711464    else
    11458         AssertMsg(rcStrict == VERR_EM_INTERPRETER, ("hmR0VmxExitInvlpg: EMInterpretInvlpg %#RX64 failed with %Rrc\n",
    11459                                                     pVmxTransient->uExitQualification, VBOXSTRICTRC_VAL(rcStrict)));
     11465        AssertMsgFailed(("Unexpected IEMExecDecodedInvlpg(%#RX64) sttus: %Rrc\n",
     11466                         pVmxTransient->uExitQualification, VBOXSTRICTRC_VAL(rcStrict)));
    1146011467    return rcStrict;
    1146111468}
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