VirtualBox

Changeset 73054 in vbox


Ignore:
Timestamp:
Jul 11, 2018 3:32:29 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123614
Message:

VMM/HMSVMR0: bugref:9204 Fix mov crx write.

File:
1 edited

Legend:

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

    r73053 r73054  
    65986598        if (fMovCRx)
    65996599        {
    6600             HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     6600            HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK | CPUMCTX_EXTRN_CR3 | CPUMCTX_EXTRN_CR4
     6601                                            | CPUMCTX_EXTRN_APIC_TPR);
    66016602            uint8_t const cbInstr = pVmcb->ctrl.u64NextRIP - pCtx->rip;
    66026603            uint8_t const iGReg   = pVmcb->ctrl.u64ExitInfo1 & SVM_EXIT1_MOV_CRX_GPR_NUMBER;
     
    66126613        HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    66136614        Log4Func(("iCrReg=%#x\n", iCrReg));
    6614         rcStrict = IEMExecOneBypassEx(pVCpu, CPUMCTX2CORE(pCtx), NULL);
     6615        rcStrict = IEMExecOne(pVCpu);
    66156616        if (RT_UNLIKELY(   rcStrict == VERR_IEM_ASPECT_NOT_IMPLEMENTED
    66166617                        || rcStrict == VERR_IEM_INSTR_NOT_IMPLEMENTED))
     
    66546655            }
    66556656        }
     6657        HMSVM_CHECK_SINGLE_STEP(pVCpu, rcStrict);
     6658    }
     6659    else if (rcStrict == VINF_IEM_RAISED_XCPT)
     6660    {
     6661        rcStrict = VINF_SUCCESS;
     6662        ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_RAISED_XCPT_MASK);
    66566663        HMSVM_CHECK_SINGLE_STEP(pVCpu, rcStrict);
    66576664    }
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