Changeset 73179 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Jul 17, 2018 1:57:30 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r73097 r73179 12151 12151 rcStrict = IOMIOPortWrite(pVM, pVCpu, uIOPort, pCtx->eax & uAndVal, cbValue); 12152 12152 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIOWrite); 12153 if ( rcStrict == VINF_IOM_R3_IOPORT_WRITE 12154 && !pCtx->eflags.Bits.u1TF) 12155 rcStrict = EMRZSetPendingIoPortWrite(pVCpu, uIOPort, cbInstr, cbValue, pCtx->eax & uAndVal); 12153 12156 } 12154 12157 else … … 12161 12164 pCtx->eax = (pCtx->eax & ~uAndVal) | (u32Result & uAndVal); 12162 12165 } 12163 else if (rcStrict == VINF_IOM_R3_IOPORT_READ) 12164 HMR0SavePendingIOPortRead(pVCpu, pCtx->rip, pCtx->rip + cbInstr, uIOPort, uAndVal, cbValue); 12166 if ( rcStrict == VINF_IOM_R3_IOPORT_READ 12167 && !pCtx->eflags.Bits.u1TF) 12168 rcStrict = EMRZSetPendingIoPortRead(pVCpu, uIOPort, cbInstr, cbValue); 12165 12169 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIORead); 12166 12170 } … … 12241 12245 12242 12246 #ifdef VBOX_STRICT 12243 if (rcStrict == VINF_IOM_R3_IOPORT_READ) 12247 if ( rcStrict == VINF_IOM_R3_IOPORT_READ 12248 || rcStrict == VINF_EM_PENDING_R3_IOPORT_READ) 12244 12249 Assert(!fIOWrite); 12245 else if (rcStrict == VINF_IOM_R3_IOPORT_WRITE || rcStrict == VINF_IOM_R3_IOPORT_COMMIT_WRITE) 12250 else if ( rcStrict == VINF_IOM_R3_IOPORT_WRITE 12251 || rcStrict == VINF_IOM_R3_IOPORT_COMMIT_WRITE 12252 || rcStrict == VINF_EM_PENDING_R3_IOPORT_WRITE) 12246 12253 Assert(fIOWrite); 12247 12254 else
Note:
See TracChangeset
for help on using the changeset viewer.