Index: /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU64.asm
===================================================================
--- /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU64.asm	(revision 59053)
+++ /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU64.asm	(revision 59054)
@@ -38,19 +38,13 @@
 ; @param    u64New   x86:ebp+c   gcc:rsi  msc:rdx
 ;
-; @returns  bool result: true if successfully exchanged, false if not.
-;           x86:al
+; @returns Current (i.e. old) *pu64 value (x86:eax:edx, 64-bit: rax)
 ;
 BEGINPROC_EXPORTED ASMAtomicXchgU64
 %ifdef RT_ARCH_AMD64
  %ifdef ASM_CALL64_MSC
-        mov     rax, r8
-.try_again:
-        lock cmpxchg [rcx], rdx
+        xchg    [rcx], rdx
  %else
-.try_again:
-        mov     rax, rcx
-        lock cmpxchg [rdi], rsi
+        xchg    [rdi], rsi
  %endif
-        jnz     .try_again
         ret
 %endif
