- Timestamp:
- Jun 21, 2007 8:19:41 AM (18 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r3184 r3197 1290 1290 /* 1291 1291 * Handled the I/O return codes. 1292 * (The unhandled cases end up with rc == VINF_EM_R ESCHEDULE_REM.)1292 * (The unhandled cases end up with rc == VINF_EM_RAW_EMULATE_INSTR.) 1293 1293 */ 1294 1294 if (IOM_SUCCESS(rc)) … … 1304 1304 break; 1305 1305 } 1306 if (rc == VINF_EM_RAW_EMULATE_INSTR) 1307 { 1308 /* First attempt to emulate directly before falling back to the recompiler */ 1309 rc = (IoExitInfo.n.u1Type == 0) ? VINF_IOM_HC_IOPORT_WRITE : VINF_IOM_HC_IOPORT_READ; 1310 } 1311 1306 1312 #ifdef VBOX_STRICT 1307 1313 if (rc == VINF_IOM_HC_IOPORT_READ) … … 1310 1316 Assert(IoExitInfo.n.u1Type == 0); 1311 1317 else 1312 AssertMsg(VBOX_FAILURE(rc) || rc == VINF_EM_RAW_EMULATE_INSTR || rc == VINF_EM_RAW_GUEST_TRAP || rc == VINF_TRPM_XCPT_DISPATCHED || rc == VINF_EM_RESCHEDULE_REM, ("%Vrc\n", rc));1318 AssertMsg(VBOX_FAILURE(rc) || rc == VINF_EM_RAW_EMULATE_INSTR || rc == VINF_EM_RAW_GUEST_TRAP || rc == VINF_TRPM_XCPT_DISPATCHED, ("%Vrc\n", rc)); 1313 1319 #endif 1314 1320 Log2(("Failed IO at %VGv %x size %d\n", pCtx->eip, IoExitInfo.n.u16Port, uIOSize)); -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r3184 r3197 1729 1729 /* 1730 1730 * Handled the I/O return codes. 1731 * (The unhandled cases end up with rc == VINF_EM_R ESCHEDULE_REM.)1731 * (The unhandled cases end up with rc == VINF_EM_RAW_EMULATE_INSTR.) 1732 1732 */ 1733 1733 if (IOM_SUCCESS(rc)) … … 1742 1742 break; 1743 1743 } 1744 if (rc == VINF_EM_RAW_EMULATE_INSTR) 1745 { 1746 /* First attempt to emulate directly before falling back to the recompiler */ 1747 rc = (fIOWrite) ? VINF_IOM_HC_IOPORT_WRITE : VINF_IOM_HC_IOPORT_READ; 1748 } 1749 1744 1750 #ifdef VBOX_STRICT 1745 1751 if (rc == VINF_IOM_HC_IOPORT_READ) … … 1748 1754 Assert(fIOWrite); 1749 1755 else 1750 AssertMsg(VBOX_FAILURE(rc) || rc == VINF_EM_RAW_EMULATE_INSTR || rc == VINF_EM_RAW_GUEST_TRAP || rc == VINF_TRPM_XCPT_DISPATCHED || rc == VINF_EM_RESCHEDULE_REM, ("%Vrc\n", rc));1756 AssertMsg(VBOX_FAILURE(rc) || rc == VINF_EM_RAW_EMULATE_INSTR || rc == VINF_EM_RAW_GUEST_TRAP || rc == VINF_TRPM_XCPT_DISPATCHED, ("%Vrc\n", rc)); 1751 1757 #endif 1752 1758 break;
Note:
See TracChangeset
for help on using the changeset viewer.