Changeset 73048 in vbox
- Timestamp:
- Jul 11, 2018 2:45:02 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123608
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r73047 r73048 6315 6315 { 6316 6316 HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient); 6317 HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_SS); 6318 6319 PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;6320 i nt rc = EMInterpretRdpmc(pVCpu->CTX_SUFF(pVM), pVCpu, CPUMCTX2CORE(pCtx));6321 if (RT_LIKELY(rc == VINF_SUCCESS))6322 {6323 hmR0SvmAdvanceRipHwAssist(pVCpu, 2);6324 HMSVM_CHECK_SINGLE_STEP(pVCpu, rc);6317 6318 VBOXSTRICTRC rcStrict; 6319 bool const fSupportsNextRipSave = hmR0SvmSupportsNextRipSave(pVCpu); 6320 if (fSupportsNextRipSave) 6321 { 6322 HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK | CPUMCTX_EXTRN_CR4); 6323 uint8_t const cbInstr = hmR0SvmGetInstrLength(pVCpu); 6324 rcStrict = IEMExecDecodedRdpmc(pVCpu, cbInstr); 6325 6325 } 6326 6326 else 6327 6327 { 6328 AssertMsgFailed(("hmR0SvmExitRdpmc: EMInterpretRdpmc failed with %Rrc\n", rc)); 6329 rc = VERR_EM_INTERPRETER; 6330 } 6331 return rc; 6328 HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK); 6329 rcStrict = IEMExecOne(pVCpu); 6330 } 6331 6332 if (rcStrict == VINF_IEM_RAISED_XCPT) 6333 { 6334 rcStrict = VINF_SUCCESS; 6335 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_RAISED_XCPT_MASK); 6336 } 6337 HMSVM_CHECK_SINGLE_STEP(pVCpu, rcStrict); 6338 return VBOXSTRICTRC_TODO(rcStrict); 6332 6339 } 6333 6340
Note:
See TracChangeset
for help on using the changeset viewer.