Changeset 66395 in vbox for trunk/src/VBox/Runtime/common/asm
- Timestamp:
- Apr 3, 2017 8:55:17 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114347
- Location:
- trunk/src/VBox/Runtime/common/asm
- Files:
-
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/asm/ASMFxRstor.asm
r66384 r66395 1 1 ; $Id$ 2 2 ;; @file 3 ; IPRT - ASM XRstor().3 ; IPRT - ASMFxRstor(). 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2006-201 6Oracle Corporation7 ; Copyright (C) 2006-2017 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 35 35 ;; 36 36 ; Loads extended CPU state. 37 ; @param p XStateArea Pointer to theXRSTOR state area.37 ; @param pFxState Pointer to the FXRSTOR state area. 38 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]41 39 ; 42 BEGINPROC_EXPORTED ASM XRstor40 BEGINPROC_EXPORTED ASMFxRstor 43 41 SEH64_END_PROLOGUE 44 42 %ifdef ASM_CALL64_MSC 45 mov eax, edx 46 shr rdx, 32 47 xrstor [rcx] 43 o64 fxrstor [rcx] 48 44 %elifdef ASM_CALL64_GCC 49 mov rdx, rsi 50 shr rdx, 32 51 mov eax, esi 52 xrstor [rdi] 53 %elifdef RT_ARCH_X86 45 o64 fxrstor [rdi] 46 %elif ARCH_BITS == 32 54 47 mov ecx, [esp + 4] 55 mov eax, [esp + 8] 56 mov edx, [esp + 12] 57 xrstor [ecx] 48 fxrstor [ecx] 49 %elif ARCH_BITS == 16 50 push bp 51 mov bp, sp 52 push es 53 push bx 54 les bx, [bp + 4] 55 fxrstor [es:bx] 56 pop bx 57 pop es 58 pop bp 58 59 %else 59 60 %error "Undefined arch?" 60 61 %endif 61 62 ret 62 ENDPROC ASM XRstor63 ENDPROC ASMFxRstor 63 64 -
trunk/src/VBox/Runtime/common/asm/ASMFxSave.asm
r66384 r66395 1 1 ; $Id$ 2 2 ;; @file 3 ; IPRT - ASM XSave().3 ; IPRT - ASMFxSave(). 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2006-201 6Oracle Corporation7 ; Copyright (C) 2006-2017 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 35 35 ;; 36 36 ; Saves extended CPU state. 37 ; @param p XStateAreaPointer to the XSAVE state area.37 ; @param pFxState Pointer to the XSAVE state area. 38 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]41 39 ; 42 BEGINPROC_EXPORTED ASM XSave40 BEGINPROC_EXPORTED ASMFxSave 43 41 SEH64_END_PROLOGUE 44 42 %ifdef ASM_CALL64_MSC 45 mov eax, edx 46 shr rdx, 32 47 xsave [rcx] 43 o64 fxsave [rcx] 48 44 %elifdef ASM_CALL64_GCC 49 mov rdx, rsi 50 shr rdx, 32 51 mov eax, esi 52 xsave [rdi] 53 %elifdef RT_ARCH_X86 45 o64 fxsave [rdi] 46 %elif ARCH_BITS == 32 54 47 mov ecx, [esp + 4] 55 mov eax, [esp + 8] 56 mov edx, [esp + 12] 57 xsave [ecx] 48 fxsave [ecx] 49 %elif ARCH_BITS == 16 50 push bp 51 mov bp, sp 52 push es 53 push bx 54 les bx, [bp + 4] 55 fxsave [es:bx] 56 pop bx 57 pop es 58 pop bp 58 59 %else 59 60 %error "Undefined arch?" 60 61 %endif 61 62 ret 62 ENDPROC ASM XSave63 ENDPROC ASMFxSave 63 64
Note:
See TracChangeset
for help on using the changeset viewer.