VirtualBox

Ignore:
Timestamp:
Feb 13, 2020 4:15:25 AM (5 years ago)
Author:
vboxsync
Message:

VMM/HM: SVM: Drop 32-bit guest switcher and use the 64-bit switcher for all guest code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r83029 r83066  
    742742
    743743        /*
     744         * Initialize the hardware-assisted SVM guest-execution handler.
     745         * We now use a single handler for both 32-bit and 64-bit guests, see @bugref{6208#c73}.
     746         */
     747        pVCpu->hm.s.svm.pfnVMRun = SVMR0VMRun;
     748
     749        /*
    744750         * Allocate one page for the host-context VM control block (VMCB). This is used for additional host-state (such as
    745751         * FS, GS, Kernel GS Base, etc.) apart from the host-state save area specified in MSR_K8_VM_HSAVE_PA.
     
    21782184
    21792185/**
    2180  * Selects the appropriate function to run guest code.
    2181  *
    2182  * @param   pVCpu   The cross context virtual CPU structure.
    2183  *
    2184  * @remarks No-long-jump zone!!!
    2185  */
    2186 DECLINLINE(void) hmR0SvmSelectVMRunHandler(PVMCPUCC pVCpu)
    2187 {
    2188     if (pVCpu->CTX_SUFF(pVM)->hm.s.fAllow64BitGuests)
    2189     {
    2190 # if HC_ARCH_BITS != 64 || ARCH_BITS != 64
    2191 #  error "Only 64-bit hosts are supported!"
    2192 # endif
    2193         /* Guest may enter long mode, always use 64-bit handler. */
    2194         pVCpu->hm.s.svm.pfnVMRun = SVMR0VMRun;
    2195     }
    2196     else
    2197     {
    2198         /* Guest is 32-bit only, use the 32-bit handler. */
    2199         pVCpu->hm.s.svm.pfnVMRun = SVMR0VMRun32;
    2200     }
    2201 }
    2202 
    2203 
    2204 /**
    22052186 * Enters the AMD-V session.
    22062187 *
     
    23552336        hmR0SvmExportGuestXcptIntercepts(pVCpu, pVmcb);
    23562337    }
    2357 
    2358     hmR0SvmSelectVMRunHandler(pVCpu);
    23592338
    23602339    /* Clear any bits that may be set but exported unconditionally or unused/reserved bits. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette