VirtualBox

Changeset 6243 in vbox for trunk


Ignore:
Timestamp:
Jan 4, 2008 6:45:34 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
27082
Message:

Just use the assembly version of SVMInvlpgA everywhere (was asserting/nop in the gcc country).

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/hwacc_svm.h

    r5999 r6243  
    400400        uint32_t    u19Reserved         : 19;
    401401        uint32_t    u1Valid             : 1;
    402         uint32_t    u32ErrorCode        : 32;   
     402        uint32_t    u32ErrorCode        : 32;
    403403    } n;
    404404    uint64_t    au64[1];
     
    631631
    632632/**
    633  * Prepares for and executes VMRUN
     633 * Prepares for and executes VMRUN.
    634634 *
    635  * @returns VBox status code
    636  * @param   pVMCBHostPhys  Physical address of host VMCB
    637  * @param   pVMCBPhys      Physical address of the VMCB
    638  * @param   pCtx           Guest context
     635 * @returns VBox status code.
     636 * @param   pVMCBHostPhys   Physical address of host VMCB.
     637 * @param   pVMCBPhys       Physical address of the VMCB.
     638 * @param   pCtx            Guest context.
    639639 */
    640640DECLASM(int) SVMVMRun(RTHCPHYS pVMCBHostPhys, RTHCPHYS pVMCBPhys, PCPUMCTX pCtx);
    641641
    642 
    643 /**
    644  * Executes INVLPGA
     642/**
     643 * Executes INVLPGA.
    645644 *
    646  * @param   pPageGC     Virtual page to invalidate
    647  * @param   uASID       Tagged TLB id
    648  */
    649 #if RT_INLINE_ASM_EXTERNAL
    650 DECLASM(void) SVMInvlpgA(RTGCPTR pPageGC, uint32_t uASID);
    651 #else
    652 DECLINLINE(void) SVMInvlpgA(RTGCPTR pPageGC, uint32_t uASID)
    653 {
    654 # if RT_INLINE_ASM_GNU_STYLE
    655     AssertFailed();
    656 # else
    657     __asm
    658     {
    659 #   ifdef RT_ARCH_AMD64
    660         mov     rax, pPageGC
    661 #   else
    662         mov     eax, pPageGC
    663 #   endif
    664         push    ecx
    665         mov     ecx, uASID
    666         _emit   0x0F
    667         _emit   0x01
    668         _emit   0xDF   /* invlpga rAX, ECX */
    669 
    670         pop     ecx
    671     }
    672 # endif
    673 }
     645 * @param   pPageGC         Virtual page to invalidate.
     646 * @param   u32ASID         Tagged TLB id.
     647 */
     648DECLASM(void) SVMInvlpgA(RTGCPTR pPageGC, uint32_t u32ASID);
     649
     650/** @} */
     651
    674652#endif
    675653
    676 
    677 
    678 /** @} */
    679 
    680 #endif
    681 
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0A.asm

    r5999 r6243  
    778778ENDPROC SVMVMRun
    779779
    780 %ifdef RT_ARCH_AMD64
    781 %ifdef RT_OS_WINDOWS
    782 
    783780;;
    784781; Executes INVLPGA
     
    805802    ret
    806803ENDPROC SVMInvlpgA
    807 %endif
    808 %endif
     804
Note: See TracChangeset for help on using the changeset viewer.

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