Changeset 61897 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jun 27, 2016 1:28:17 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 108327
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r61896 r61897 5288 5288 PCPUMCTX pCtx = pIemCpu->CTX_SUFF(pCtx); 5289 5289 5290 pCtx->eflags.Bits.u1RF = 0; 5291 5292 /* NB: Must be kept in sync with HM (xxxAdvanceGuestRip). */ 5290 #if ARCH_BITS >= 64 5291 AssertCompile(IEMMODE_16BIT == 0 && IEMMODE_32BIT == 1 && IEMMODE_64BIT == 2); 5292 static uint64_t const s_aRipMasks[] = { UINT64_C(0xffff), UINT64_C(0xffffffff), UINT64_MAX }; 5293 Assert(pCtx->rip <= s_aRipMasks[pIemCpu->enmCpuMode]); 5294 pCtx->rip += cbInstr; 5295 pCtx->rip &= s_aRipMasks[pIemCpu->enmCpuMode]; 5296 #else 5293 5297 switch (pIemCpu->enmCpuMode) 5294 5298 { 5295 /** @todo investigate if EIP or RIP is really incremented. */5296 5299 case IEMMODE_16BIT: 5300 Assert(pCtx->rip <= UINT16_MAX); 5301 pCtx->ip += cbInstr; 5302 break; 5303 5297 5304 case IEMMODE_32BIT: 5305 Assert(pCtx->rip <= UINT32_MAX); 5298 5306 pCtx->eip += cbInstr; 5299 Assert(pCtx->rip <= UINT32_MAX);5300 5307 break; 5301 5308 … … 5303 5310 pCtx->rip += cbInstr; 5304 5311 break; 5312 5305 5313 default: AssertFailed(); 5306 5314 } 5315 #endif 5316 5317 pCtx->eflags.Bits.u1RF = 0; 5307 5318 } 5308 5319
Note:
See TracChangeset
for help on using the changeset viewer.