Changeset 72895 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Jul 4, 2018 5:03:57 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r72891 r72895 11449 11449 11450 11450 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); 11452 11453 AssertRCReturn(rc, rc); 11453 11454 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 } 11457 11464 else 11458 AssertMsg (rcStrict == VERR_EM_INTERPRETER, ("hmR0VmxExitInvlpg: EMInterpretInvlpg %#RX64 failed with%Rrc\n",11459 11465 AssertMsgFailed(("Unexpected IEMExecDecodedInvlpg(%#RX64) sttus: %Rrc\n", 11466 pVmxTransient->uExitQualification, VBOXSTRICTRC_VAL(rcStrict))); 11460 11467 return rcStrict; 11461 11468 }
Note:
See TracChangeset
for help on using the changeset viewer.