VirtualBox

Changeset 9896 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jun 25, 2008 7:39:24 AM (16 years ago)
Author:
vboxsync
Message:

Fixed SVMInvlpgA for 64 bits guest pointers and a potential issue with the high dword of the register in 64 bits host mode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0A.asm

    r9854 r9896  
    928928
    929929
     930%if GC_ARCH_BITS == 64
     931;;
     932; Executes INVLPGA
     933;
     934; @param   pPageGC  msc:rcx  gcc:rdi  x86:[esp+04]  Virtual page to invalidate
     935; @param   uASID    msc:rdx  gcc:rsi  x86:[esp+0C]  Tagged TLB id
     936;
     937;DECLASM(void) SVMInvlpgA(RTGCPTR pPageGC, uint32_t uASID);
     938BEGINPROC SVMInvlpgA
     939%ifdef RT_ARCH_AMD64
     940 %ifdef ASM_CALL64_GCC
     941    mov     rax, rdi
     942    mov     rcx, rsi
     943 %else
     944    movzx   rax, ecx
     945    mov     rcx, rdx
     946 %endif
     947%else
     948    mov     eax, [esp + 4]
     949    mov     ecx, [esp + 0Ch]
     950%endif
     951    invlpga [xAX], ecx
     952    ret
     953ENDPROC SVMInvlpgA
     954
     955%else
    930956;;
    931957; Executes INVLPGA
     
    938964%ifdef RT_ARCH_AMD64
    939965 %ifdef ASM_CALL64_GCC
    940     mov     eax, edi                    ;; @todo 64-bit guest.
     966    movzx   rax, edi
    941967    mov     ecx, esi
    942968 %else
    943     mov     eax, ecx                    ;; @todo 64-bit guest.
     969    movzx   rax, ecx
    944970    mov     ecx, edx
    945971 %endif
     
    952978ENDPROC SVMInvlpgA
    953979
     980%endif ; GC_ARCH_BITS != 64
     981
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