VirtualBox

Changeset 55308 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 16, 2015 3:01:35 PM (10 years ago)
Author:
vboxsync
Message:

asm-amd64-x86.h: Added ASMXSave and ASMXRstor.

Location:
trunk/src/VBox/Runtime
Files:
3 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/Makefile.kmk

    r55107 r55308  
    657657        common/asm/ASMGetXcr0.asm \
    658658        common/asm/ASMSetXcr0.asm \
     659        common/asm/ASMXSave.asm \
     660        common/asm/ASMXRstor.asm \
    659661        common/math/bignum-amd64-x86.asm
    660662RuntimeR3_SOURCES.amd64 += \
     
    670672        common/asm/ASMGetXcr0.asm \
    671673        common/asm/ASMSetXcr0.asm \
     674        common/asm/ASMXSave.asm \
     675        common/asm/ASMXRstor.asm \
    672676        common/math/bignum-amd64-x86.asm \
    673677        common/math/RTUInt128MulByU64.asm
     
    17001704        common/asm/ASMGetXcr0.asm \
    17011705        common/asm/ASMSetXcr0.asm \
     1706        common/asm/ASMXSave.asm \
     1707        common/asm/ASMXRstor.asm \
    17021708        common/asm/ASMRdMsrEx.asm \
    17031709        common/asm/ASMWrMsrEx.asm
     
    17121718        common/asm/ASMGetXcr0.asm \
    17131719        common/asm/ASMSetXcr0.asm \
     1720        common/asm/ASMXSave.asm \
     1721        common/asm/ASMXRstor.asm \
    17141722        common/asm/ASMRdMsrEx.asm \
    17151723        common/asm/ASMWrMsrEx.asm
  • trunk/src/VBox/Runtime/common/asm/ASMGetXcr0.asm

    r55107 r55308  
    2828;* Header Files                                                                *
    2929;*******************************************************************************
     30%define RT_ASM_WITH_SEH64
    3031%include "iprt/asmdefs.mac"
    3132
     
    3738;
    3839BEGINPROC_EXPORTED ASMGetXcr0
     40SEH64_END_PROLOGUE
    3941        xor     ecx, ecx                ; XCR0
    4042        xgetbv
  • trunk/src/VBox/Runtime/common/asm/ASMSetXcr0.asm

    r55107 r55308  
    2828;* Header Files                                                                *
    2929;*******************************************************************************
     30%define RT_ASM_WITH_SEH64
    3031%include "iprt/asmdefs.mac"
    3132
     
    3839;
    3940BEGINPROC_EXPORTED ASMSetXcr0
     41SEH64_END_PROLOGUE
    4042%ifdef ASM_CALL64_MSC
    4143        mov     rdx, rcx
  • trunk/src/VBox/Runtime/common/asm/ASMXRstor.asm

    r55299 r55308  
    11; $Id$
    22;; @file
    3 ; IPRT - ASMSetXcr0().
     3; IPRT - ASMRstor().
    44;
    55
     
    2828;* Header Files                                                                *
    2929;*******************************************************************************
     30%define RT_ASM_WITH_SEH64
    3031%include "iprt/asmdefs.mac"
    3132
     
    3334
    3435;;
    35 ; Sets the content of the Xcr0 CPU register.
    36 ; @param   uXcr0    The new XCR0 content.
    37 ;                   msc=rcx, gcc=rdi, x86=[esp+4]
     36; Loads extended CPU state.
     37; @param    pXStateArea Pointer to the XRSTOR state area.
     38;                       msc=rcx, gcc=rdi, x86=[esp+4]
     39; @param    fMask       The 64-bit state component mask.
     40;                       msc=rdx, gcc=rsi, x86=[esp+8]
    3841;
    39 BEGINPROC_EXPORTED ASMSetXcr0
     42BEGINPROC_EXPORTED ASMRstor
     43SEH64_END_PROLOGUE
    4044%ifdef ASM_CALL64_MSC
    41         mov     rdx, rcx
     45        mov     rdx, rdx
    4246        shr     rdx, 32
    43         mov     eax, ecx
     47        mov     eax, edx
     48        xrstor  [rcx]
    4449%elifdef ASM_CALL64_GCC
    45         mov     rdx, rdi
     50        mov     rdx, rsi
    4651        shr     rdx, 32
    47         mov     eax, edi
     52        mov     eax, esi
     53        xrstor  [rdi]
    4854%elifdef RT_ARCH_X86
    49         mov     eax, [esp + 4]
    50         mov     edx, [esp + 8]
     55        mov     ecx, [esp + 4]
     56        mov     eax, [esp + 8]
     57        mov     edx, [esp + 12]
     58        xrstor  [ecx]
    5159%else
    5260 %error "Undefined arch?"
    5361%endif
    54         xor     ecx, ecx
    55         xsetbv
    5662        ret
    57 ENDPROC ASMSetXcr0
     63ENDPROC ASMRstor
    5864
  • trunk/src/VBox/Runtime/common/asm/ASMXSave.asm

    r55299 r55308  
    11; $Id$
    22;; @file
    3 ; IPRT - ASMSetXcr0().
     3; IPRT - ASMXSave().
    44;
    55
     
    2828;* Header Files                                                                *
    2929;*******************************************************************************
     30%define RT_ASM_WITH_SEH64
    3031%include "iprt/asmdefs.mac"
    3132
     
    3334
    3435;;
    35 ; Sets the content of the Xcr0 CPU register.
    36 ; @param   uXcr0    The new XCR0 content.
    37 ;                   msc=rcx, gcc=rdi, x86=[esp+4]
     36; Saves extended CPU state.
     37; @param    pXStateArea Pointer to the XSAVE state area.
     38;                       msc=rcx, gcc=rdi, x86=[esp+4]
     39; @param    fComponents The 64-bit state component mask.
     40;                       msc=rdx, gcc=rsi, x86=[esp+8]
    3841;
    39 BEGINPROC_EXPORTED ASMSetXcr0
     42BEGINPROC_EXPORTED ASMXSave
     43SEH64_END_PROLOGUE
    4044%ifdef ASM_CALL64_MSC
    41         mov     rdx, rcx
     45        mov     rdx, rdx
    4246        shr     rdx, 32
    43         mov     eax, ecx
     47        mov     eax, edx
     48        xsave   [rcx]
    4449%elifdef ASM_CALL64_GCC
    45         mov     rdx, rdi
     50        mov     rdx, rsi
    4651        shr     rdx, 32
    47         mov     eax, edi
     52        mov     eax, esi
     53        xsave   [rdi]
    4854%elifdef RT_ARCH_X86
    49         mov     eax, [esp + 4]
    50         mov     edx, [esp + 8]
     55        mov     ecx, [esp + 4]
     56        mov     eax, [esp + 8]
     57        mov     edx, [esp + 12]
     58        xsave   [ecx]
    5159%else
    5260 %error "Undefined arch?"
    5361%endif
    54         xor     ecx, ecx
    55         xsetbv
    5662        ret
    57 ENDPROC ASMSetXcr0
     63ENDPROC ASMXSave
    5864
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