Changeset 71933 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Apr 20, 2018 10:54:01 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 122182
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r71927 r71933 2484 2484 static bool hmR0SvmVmRunCacheVmcb(PVMCPU pVCpu, PCPUMCTX pCtx) 2485 2485 { 2486 PSVMVMCB pVmcbNstGst = pCtx->hwvirt.svm.CTX_SUFF(pVmcb);2487 PCSVMVMCBCTRL pVmcbNstGstCtrl = &pVmcbNstGst->ctrl;2488 PCSVMVMCBSTATESAVE pVmcbNstGstState = &pVmcbNstGst->guest;2489 PSVMNESTEDVMCBCACHE pVmcbNstGstCache = &pVCpu->hm.s.svm.NstGstVmcbCache;2490 2491 2486 /* 2492 2487 * Cache the nested-guest programmed VMCB fields if we have not cached it yet. … … 2499 2494 if (!fWasCached) 2500 2495 { 2496 PSVMVMCB pVmcbNstGst = pCtx->hwvirt.svm.CTX_SUFF(pVmcb); 2497 PCSVMVMCBCTRL pVmcbNstGstCtrl = &pVmcbNstGst->ctrl; 2498 PSVMNESTEDVMCBCACHE pVmcbNstGstCache = &pVCpu->hm.s.svm.NstGstVmcbCache; 2499 2501 2500 pVmcbNstGstCache->u16InterceptRdCRx = pVmcbNstGstCtrl->u16InterceptRdCRx; 2502 2501 pVmcbNstGstCache->u16InterceptWrCRx = pVmcbNstGstCtrl->u16InterceptWrCRx; 2503 2502 pVmcbNstGstCache->u16InterceptRdDRx = pVmcbNstGstCtrl->u16InterceptRdDRx; 2504 2503 pVmcbNstGstCache->u16InterceptWrDRx = pVmcbNstGstCtrl->u16InterceptWrDRx; 2504 pVmcbNstGstCache->u16PauseFilterThreshold = pVmcbNstGstCtrl->u16PauseFilterThreshold; 2505 2505 pVmcbNstGstCache->u16PauseFilterCount = pVmcbNstGstCtrl->u16PauseFilterCount; 2506 pVmcbNstGstCache->u16PauseFilterThreshold = pVmcbNstGstCtrl->u16PauseFilterThreshold;2507 2506 pVmcbNstGstCache->u32InterceptXcpt = pVmcbNstGstCtrl->u32InterceptXcpt; 2508 2507 pVmcbNstGstCache->u64InterceptCtrl = pVmcbNstGstCtrl->u64InterceptCtrl; 2509 pVmcbNstGstCache->u64CR0 = pVmcbNstGstState->u64CR0;2510 pVmcbNstGstCache->u64CR3 = pVmcbNstGstState->u64CR3;2511 pVmcbNstGstCache->u64CR4 = pVmcbNstGstState->u64CR4;2512 pVmcbNstGstCache->u64EFER = pVmcbNstGstState->u64EFER;2513 pVmcbNstGstCache->u64PAT = pVmcbNstGstState->u64PAT;2514 pVmcbNstGstCache->u64DBGCTL = pVmcbNstGstState->u64DBGCTL;2515 pVmcbNstGstCache->u64IOPMPhysAddr = pVmcbNstGstCtrl->u64IOPMPhysAddr;2516 pVmcbNstGstCache->u64MSRPMPhysAddr = pVmcbNstGstCtrl->u64MSRPMPhysAddr;2517 2508 pVmcbNstGstCache->u64TSCOffset = pVmcbNstGstCtrl->u64TSCOffset; 2518 pVmcbNstGstCache->u32VmcbCleanBits = pVmcbNstGstCtrl->u32VmcbCleanBits;2519 2509 pVmcbNstGstCache->fVIntrMasking = pVmcbNstGstCtrl->IntCtrl.n.u1VIntrMasking; 2520 pVmcbNstGstCache->TLBCtrl = pVmcbNstGstCtrl->TLBCtrl; 2521 pVmcbNstGstCache->u1NestedPaging = pVmcbNstGstCtrl->NestedPagingCtrl.n.u1NestedPaging; 2522 pVmcbNstGstCache->u1LbrVirt = pVmcbNstGstCtrl->LbrVirt.n.u1LbrVirt; 2510 pVmcbNstGstCache->fNestedPaging = pVmcbNstGstCtrl->NestedPagingCtrl.n.u1NestedPaging; 2511 pVmcbNstGstCache->fLbrVirt = pVmcbNstGstCtrl->LbrVirt.n.u1LbrVirt; 2523 2512 pCtx->hwvirt.svm.fHMCachedVmcb = true; 2524 2513 Log4(("hmR0SvmVmRunCacheVmcb: Cached VMCB fields\n"));
Note:
See TracChangeset
for help on using the changeset viewer.