Changeset 68906 in vbox
- Timestamp:
- Sep 28, 2017 12:24:51 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImplSvmInstr.cpp.h
r68784 r68906 60 60 DECLINLINE(VBOXSTRICTRC) iemSvmWorldSwitch(PVMCPU pVCpu, PCPUMCTX pCtx) 61 61 { 62 /* Flush the TLB with new CR3. */ 62 /* 63 * Flush the TLB with new CR3. This is required in case the PGM mode change 64 * below doesn't actually change anything. 65 */ 63 66 PGMFlushTLB(pVCpu, pCtx->cr3, true); 64 67 … … 137 140 pVmcbNstGstState->u64RSP = pCtx->rsp; 138 141 pVmcbNstGstState->u64RAX = pCtx->rax; 139 pVmcbNstGstState->u64DR7 = pCtx->dr[ 6];140 pVmcbNstGstState->u64DR6 = pCtx->dr[ 7];142 pVmcbNstGstState->u64DR7 = pCtx->dr[7]; 143 pVmcbNstGstState->u64DR6 = pCtx->dr[6]; 141 144 pVmcbNstGstState->u8CPL = pCtx->ss.Attr.n.u2Dpl; /* See comment in CPUMGetGuestCPL(). */ 142 145 Assert(CPUMGetGuestCPL(pVCpu) == pCtx->ss.Attr.n.u2Dpl); … … 533 536 pCtx->idtr.cbIdt = pVmcbNstGst->IDTR.u32Limit; 534 537 pCtx->idtr.pIdt = pVmcbNstGst->IDTR.u64Base; 535 pCtx->cr0 = pVmcbNstGst->u64CR0; /** @todo What about informing PGM about CR0.WP? */536 pCtx->cr4 = pVmcbNstGst->u64CR4;538 CPUMSetGuestCR0(pVCpu, pVmcbNstGst->u64CR0); 539 CPUMSetGuestCR4(pVCpu, pVmcbNstGst->u64CR4); 537 540 pCtx->cr3 = pVmcbNstGst->u64CR3; 538 541 pCtx->cr2 = pVmcbNstGst->u64CR2; … … 624 627 * below. */ 625 628 LogFlow(("iemSvmVmrun: Injecting event: %04x:%08RX64 uVector=%#x enmType=%d uErrorCode=%u cr2=%#RX64\n", 626 pCtx->cs.Sel, pCtx->rip, uVector, enmType, uErrorCode, pCtx->cr2));629 pCtx->cs.Sel, pCtx->rip, uVector, enmType, uErrorCode, pCtx->cr2)); 627 630 rcStrict = IEMInjectTrap(pVCpu, uVector, enmType, uErrorCode, pCtx->cr2, 0 /* cbInstr */); 628 631 }
Note:
See TracChangeset
for help on using the changeset viewer.