Changeset 71297 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Mar 10, 2018 6:02:02 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/NEMAllNativeTemplate-win.cpp.h
r71296 r71297 1262 1262 || pMsg->Header.InterceptAccessType == HV_INTERCEPT_ACCESS_WRITE 1263 1263 || pMsg->Header.InterceptAccessType == HV_INTERCEPT_ACCESS_EXECUTE); 1264 AssertMsg(pMsg->Header.InstructionLength < 0x10, ("%#x\n", pMsg->Header.InstructionLength)); 1264 1265 1265 1266 /* … … 1268 1269 if (pMsg->Header.ExecutionState.InterruptionPending) 1269 1270 pCtx->fExtrn &= ~CPUMCTX_EXTRN_NEM_WIN_MASK; 1271 1272 #if 0 /* Experiment: 20K -> 34K exit/s. */ 1273 if ( pMsg->Header.ExecutionState.EferLma 1274 && pMsg->Header.CsSegment.Long 1275 && pMsg->Header.InterceptAccessType == HV_INTERCEPT_ACCESS_WRITE) 1276 { 1277 if ( pMsg->Header.Rip - (uint64_t)0xf65a < (uint64_t)(0xf662 - 0xf65a) 1278 && pMsg->InstructionBytes[0] == 0x89 1279 && pMsg->InstructionBytes[1] == 0x03) 1280 { 1281 pCtx->rip = pMsg->Header.Rip + 2; 1282 pCtx->fExtrn &= ~CPUMCTX_EXTRN_RIP; 1283 AssertMsg(pMsg->Header.InstructionLength == 2, ("%#x\n", pMsg->Header.InstructionLength)); 1284 //Log(("%RX64 msg:\n%.80Rhxd\n", pCtx->rip, pMsg)); 1285 return VINF_SUCCESS; 1286 } 1287 } 1288 #endif 1270 1289 1271 1290 /* … … 1318 1337 # endif 1319 1338 1339 if (pMsg->Reserved1) 1340 Log(("MemExit/Reserved1=%#x\n", pMsg->Reserved1)); 1341 if (pMsg->Header.ExecutionState.Reserved0 || pMsg->Header.ExecutionState.Reserved1) 1342 Log(("MemExit/Hdr/State: Reserved0=%#x Reserved1=%#x\n", pMsg->Header.ExecutionState.Reserved0, pMsg->Header.ExecutionState.Reserved1)); 1343 //if (pMsg->InstructionByteCount > 0) 1344 // Log4(("InstructionByteCount=%#x %.16Rhxs\n", pMsg->InstructionByteCount, pMsg->InstructionBytes)); 1345 1320 1346 if (pMsg->InstructionByteCount > 0) 1321 1347 rcStrict = IEMExecOneWithPrefetchedByPC(pVCpu, CPUMCTX2CORE(pCtx), pMsg->Header.Rip, … … 1346 1372 Assert( pMsg->Header.InterceptAccessType == HV_INTERCEPT_ACCESS_READ 1347 1373 || pMsg->Header.InterceptAccessType == HV_INTERCEPT_ACCESS_WRITE); 1374 AssertMsg(pMsg->Header.InstructionLength < 0x10, ("%#x\n", pMsg->Header.InstructionLength)); 1348 1375 1349 1376 /*
Note:
See TracChangeset
for help on using the changeset viewer.