Changeset 48570 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Sep 19, 2013 11:41:35 PM (11 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r48565 r48570 1429 1429 pVmcb->guest.u64DR6 = X86_DR6_INIT_VAL; 1430 1430 pVmcb->ctrl.u64VmcbCleanBits &= ~HMSVM_VMCB_CLEAN_DRX; 1431 pVCpu->hm.s.fUsingHyperDR7 = true; 1431 1432 } 1432 1433 … … 1448 1449 pVmcb->guest.u64DR6 = pCtx->dr[6]; 1449 1450 pVmcb->ctrl.u64VmcbCleanBits &= ~HMSVM_VMCB_CLEAN_DRX; 1451 pVCpu->hm.s.fUsingHyperDR7 = false; 1450 1452 } 1451 1453 … … 1932 1934 * Guest Debug registers. 1933 1935 */ 1934 /** @todo We need to save DR6, DR7 according to what we did in 1935 * hmR0SvmLoadSharedDebugState(). */ 1936 if (!CPUMIsHyperDebugStateActive(pVCpu)) 1936 if (!pVCpu->hm.s.fUsingHyperDR7) 1937 1937 { 1938 1938 pMixedCtx->dr[6] = pVmcb->guest.u64DR6; -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r48565 r48570 3436 3436 AssertRCReturn(rc, rc); 3437 3437 3438 pVCpu->hm.s.fUsingHyperDR7 = true; 3438 3439 fInterceptDB = true; 3439 3440 fInterceptMovDRx = true; … … 3482 3483 } 3483 3484 3485 /* Update guest DR7. */ 3484 3486 rc = VMXWriteVmcs32(VMX_VMCS_GUEST_DR7, pMixedCtx->dr[7]); 3485 3487 AssertRCReturn(rc, rc); 3488 3489 pVCpu->hm.s.fUsingHyperDR7 = false; 3486 3490 } 3487 3491 … … 5789 5793 if (!(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_DEBUG)) 5790 5794 { 5791 /** @todo We need to update DR7 according to what was done in hmR0VmxLoadSharedDebugState(). */ 5792 if (!CPUMIsHyperDebugStateActive(pVCpu)) 5795 if (!pVCpu->hm.s.fUsingHyperDR7) 5793 5796 { 5794 5797 /* Upper 32-bits are always zero. See Intel spec. 2.7.3 "Loading and Storing Debug Registers". */
Note:
See TracChangeset
for help on using the changeset viewer.