Changeset 87373 in vbox
- Timestamp:
- Jan 22, 2021 3:08:37 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r87372 r87373 720 720 static void hmR0SvmUpdateVmRunFunction(PVMCPUCC pVCpu) 721 721 { 722 static const PFNHMSVMVMRUN s_apfnHmR0SvmVmRunFunctions[] =723 { 724 hmR0SvmVmRun_SansXcr0_SansIbpbEntry_SansIbpbExit,725 hmR0SvmVmRun_WithXcr0_SansIbpbEntry_SansIbpbExit,726 hmR0SvmVmRun_SansXcr0_WithIbpbEntry_SansIbpbExit,727 hmR0SvmVmRun_WithXcr0_WithIbpbEntry_SansIbpbExit,728 hmR0SvmVmRun_SansXcr0_SansIbpbEntry_WithIbpbExit,729 hmR0SvmVmRun_WithXcr0_SansIbpbEntry_WithIbpbExit,730 hmR0SvmVmRun_SansXcr0_WithIbpbEntry_WithIbpbExit,731 hmR0SvmVmRun_WithXcr0_WithIbpbEntry_WithIbpbExit,722 static const struct CLANGWORKAROUND { PFNHMSVMVMRUN pfn; } s_aHmR0SvmVmRunFunctions[] = 723 { 724 { hmR0SvmVmRun_SansXcr0_SansIbpbEntry_SansIbpbExit }, 725 { hmR0SvmVmRun_WithXcr0_SansIbpbEntry_SansIbpbExit }, 726 { hmR0SvmVmRun_SansXcr0_WithIbpbEntry_SansIbpbExit }, 727 { hmR0SvmVmRun_WithXcr0_WithIbpbEntry_SansIbpbExit }, 728 { hmR0SvmVmRun_SansXcr0_SansIbpbEntry_WithIbpbExit }, 729 { hmR0SvmVmRun_WithXcr0_SansIbpbEntry_WithIbpbExit }, 730 { hmR0SvmVmRun_SansXcr0_WithIbpbEntry_WithIbpbExit }, 731 { hmR0SvmVmRun_WithXcr0_WithIbpbEntry_WithIbpbExit }, 732 732 }; 733 733 uintptr_t const idx = (pVCpu->hm.s.fLoadSaveGuestXcr0 ? 1 : 0) 734 734 | (pVCpu->cpum.GstCtx.fWorldSwitcher & CPUMCTX_WSF_IBPB_ENTRY ? 2 : 0) 735 735 | (pVCpu->cpum.GstCtx.fWorldSwitcher & CPUMCTX_WSF_IBPB_EXIT ? 4 : 0); 736 PFNHMSVMVMRUN const pfnVMRun = s_a pfnHmR0SvmVmRunFunctions[idx];736 PFNHMSVMVMRUN const pfnVMRun = s_aHmR0SvmVmRunFunctions[idx].pfn; 737 737 if (pVCpu->hm.s.svm.pfnVMRun != pfnVMRun) 738 738 pVCpu->hm.s.svm.pfnVMRun = pfnVMRun;
Note:
See TracChangeset
for help on using the changeset viewer.