Changeset 47677 in vbox for trunk/src/VBox
- Timestamp:
- Aug 12, 2013 4:09:41 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r47676 r47677 8992 8992 AssertRCReturn(rc, rc); 8993 8993 8994 Log4(("CS:RIP=%04x:%#RX64\n", pMixedCtx->cs.Sel, pMixedCtx->rip));8995 8996 8994 /* Refer Intel spec. 27-5. "Exit Qualifications for I/O Instructions" for the format. */ 8997 8995 uint32_t uIOPort = VMX_EXIT_QUALIFICATION_IO_PORT(pVmxTransient->uExitQualification); … … 9018 9016 * interpreting the instruction. 9019 9017 */ 9018 Log4(("CS:RIP=%04x:%#RX64 %#06x/%u %c str\n", pMixedCtx->cs.Sel, pMixedCtx->rip, uIOPort, cbValue, fIOWrite ? 'w' : 'r')); 9020 9019 #if 0 /* Not quite ready, seem iSegReg assertion trigger once... Do we perhaps need to always read that in longjmp / preempt scenario? */ 9021 9020 AssertReturn(pMixedCtx->dx == uIOPort, VERR_HMVMX_IPE_2); … … 9091 9090 * IN/OUT - I/O instruction. 9092 9091 */ 9092 Log4(("CS:RIP=%04x:%#RX64 %#06x/%u %c\n", pMixedCtx->cs.Sel, pMixedCtx->rip, uIOPort, cbValue, fIOWrite ? 'w' : 'r')); 9093 9093 const uint32_t uAndVal = s_aIOOpAnd[uIOWidth]; 9094 9094 Assert(!VMX_EXIT_QUALIFICATION_IO_IS_REP(pVmxTransient->uExitQualification)); … … 9165 9165 uint64_t uDrXFirst = pMixedCtx->dr[iBp] & ~(uint64_t)cbInvAlign; 9166 9166 uint64_t uDrXLast = uDrXFirst + cbInvAlign; 9167 9167 9168 if (uDrXFirst <= uIOPortLast && uDrXLast >= uIOPort) 9168 9169 { … … 9670 9671 * (See Intel spec. 27.1 "Architectural State before a VM-Exit".) 9671 9672 */ 9673 pMixedCtx->dr[6] &= ~X86_DR6_B_MASK; 9672 9674 pMixedCtx->dr[6] |= uDR6; 9673 9675 if (CPUMIsGuestDebugStateActive(pVCpu))
Note:
See TracChangeset
for help on using the changeset viewer.