Changeset 25665 in vbox for trunk/src/VBox/Runtime/common/asm/ASMAtomicCmpXchgExU64.asm
- Timestamp:
- Jan 6, 2010 4:19:49 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56380
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/asm/ASMAtomicCmpXchgExU64.asm
r25664 r25665 1 1 ; $Id$ 2 2 ;; @file 3 ; IPRT - ASMAtomicCmpXchg U64().3 ; IPRT - ASMAtomicCmpXchgExU64(). 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2006-20 09Sun Microsystems, Inc.7 ; Copyright (C) 2006-2010 Sun Microsystems, Inc. 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 37 37 38 38 ;; 39 ; Atomically compares and exchanges an unsigned 64-bit int.39 ; Atomically Exchange an unsigned 64-bit value, ordered. 40 40 ; 41 41 ; @param pu64 x86:ebp+8 gcc:rdi msc:rcx 42 42 ; @param u64New x86:ebp+c gcc:rsi msc:rdx 43 43 ; @param u64Old x86:ebp+14 gcc:rcx msc:r8 44 ; @param u64Old x86:ebp+1c gcc:rdx msc:r9 44 45 ; 45 46 ; @returns bool result: true if succesfully exchanged, false if not. 46 47 ; x86:al 47 48 ; 48 BEGINPROC_EXPORTED ASMAtomicCmpXchg U6449 BEGINPROC_EXPORTED ASMAtomicCmpXchgExU64 49 50 %ifdef RT_ARCH_AMD64 50 51 %ifdef ASM_CALL64_MSC 51 52 mov rax, r8 52 53 lock cmpxchg [rcx], rdx 54 mov [r9], rax 53 55 %else 54 56 mov rax, rcx 55 57 lock cmpxchg [rdi], rsi 58 mov [rdx], rax 56 59 %endif 57 60 setz al … … 71 74 mov edx, dword [ebp+14h + 4] 72 75 lock cmpxchg8b [edi] 76 mov edi, [ebp + 1ch] 77 mov [edi], eax 78 mov [edi + 4], edx 73 79 setz al 74 80 movzx eax, al … … 79 85 ret 80 86 %endif 81 ENDPROC ASMAtomicCmpXchg U6487 ENDPROC ASMAtomicCmpXchgExU64 82 88
Note:
See TracChangeset
for help on using the changeset viewer.