Changeset 47671 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Aug 12, 2013 11:16:55 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r47670 r47671 5791 5791 Assert(VMMRZCallRing3IsEnabled(pVCpu)); 5792 5792 5793 if ( VM_FF_IS_PENDING(pVM, VM_FF_HM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING | VM_FF_PDM_DMA) 5794 || VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL 5795 | VMCPU_FF_REQUEST | VMCPU_FF_HM_UPDATE_CR3 | VMCPU_FF_HM_UPDATE_PAE_PDPES)) 5793 if ( VM_FF_IS_PENDING(pVM, !pVCpu->hm.s.fSingleInstruction 5794 ? VM_FF_HP_R0_PRE_HM_MASK : VM_FF_HP_R0_PRE_HM_STEP_MASK) 5795 || VMCPU_FF_IS_PENDING(pVCpu, !pVCpu->hm.s.fSingleInstruction 5796 ? VMCPU_FF_HP_R0_PRE_HM_MASK : VMCPU_FF_HP_R0_PRE_HM_STEP_MASK) ) 5796 5797 { 5797 5798 /* We need the control registers now, make sure the guest-CPU context is updated. */ … … 9628 9629 AssertRCReturn(rc, rc); 9629 9630 9631 /* If we sat the trap flag above, we have to clear it. */ /** @todo HM should remember what it does and possibly do this elsewhere! */ 9632 if ( (pVCpu->hm.s.fSingleInstruction || DBGFIsStepping(pVCpu)) 9633 && !(pVCpu->CTX_SUFF(pVM)->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_MONITOR_TRAP_FLAG)) 9634 pMixedCtx->eflags.Bits.u1TF = 0; 9635 9630 9636 /* Refer Intel spec. Table 27-1. "Exit Qualifications for debug exceptions" for the format. */ 9631 9637 uint64_t uDR6 = X86_DR6_INIT_VAL; … … 9633 9639 & (X86_DR6_B0 | X86_DR6_B1 | X86_DR6_B2 | X86_DR6_B3 | X86_DR6_BD | X86_DR6_BS)); 9634 9640 9635 rc = DBGFRZTrap01Handler(pVCpu->CTX_SUFF(pVM), pVCpu, CPUMCTX2CORE(pMixedCtx), uDR6 );9641 rc = DBGFRZTrap01Handler(pVCpu->CTX_SUFF(pVM), pVCpu, CPUMCTX2CORE(pMixedCtx), uDR6, pVCpu->hm.s.fSingleInstruction); 9636 9642 if (rc == VINF_EM_RAW_GUEST_TRAP) 9637 9643 {
Note:
See TracChangeset
for help on using the changeset viewer.