Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 59054)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 59055)
@@ -180,4 +180,6 @@
 	win/amd64/ASMGetDR7.asm \
 	common/asm/ASMAtomicCmpXchgU8.asm \
+	common/asm/ASMAtomicCmpXchgU16.asm \
+	common/asm/ASMAtomicXchgU16.asm \
 	common/asm/ASMBitFirstClear.asm \
 	common/asm/ASMBitFirstSet.asm \
Index: /trunk/src/VBox/Runtime/VBox/VBoxRTImp.def
===================================================================
--- /trunk/src/VBox/Runtime/VBox/VBoxRTImp.def	(revision 59054)
+++ /trunk/src/VBox/Runtime/VBox/VBoxRTImp.def	(revision 59055)
@@ -44,8 +44,10 @@
     ; code
     ASMAtomicCmpXchgU8      ; not-some-systems...
+    ASMAtomicCmpXchgU16     ; not-some-systems...
     ASMAtomicCmpXchgExU64   ; not-some-systems...
     ASMAtomicCmpXchgU64     ; not-some-systems...
     ASMAtomicReadU64        ; not-some-systems...
     ASMAtomicUoReadU64      ; not-some-systems...
+    ASMAtomicXchgU16        ; not-some-systems...
     ASMAtomicXchgU64        ; not-some-systems...
 
Index: /trunk/src/VBox/Runtime/common/asm/ASMAtomicCmpXchgU16.asm
===================================================================
--- /trunk/src/VBox/Runtime/common/asm/ASMAtomicCmpXchgU16.asm	(revision 59055)
+++ /trunk/src/VBox/Runtime/common/asm/ASMAtomicCmpXchgU16.asm	(revision 59055)
@@ -0,0 +1,63 @@
+; $Id$
+;; @file
+; IPRT - ASMAtomicCmpXchgU16().
+;
+
+;
+; Copyright (C) 2006-2015 Oracle Corporation
+;
+; This file is part of VirtualBox Open Source Edition (OSE), as
+; available from http://www.virtualbox.org. This file is free software;
+; you can redistribute it and/or modify it under the terms of the GNU
+; General Public License (GPL) as published by the Free Software
+; Foundation, in version 2 as it comes in the "COPYING" file of the
+; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;
+; The contents of this file may alternatively be used under the terms
+; of the Common Development and Distribution License Version 1.0
+; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+; VirtualBox OSE distribution, in which case the provisions of the
+; CDDL are applicable instead of those of the GPL.
+;
+; You may elect to license modified versions of this file under the
+; terms and conditions of either the GPL or the CDDL or both.
+;
+
+;*******************************************************************************
+;* Header Files                                                                *
+;*******************************************************************************
+%include "iprt/asmdefs.mac"
+
+BEGINCODE
+
+;;
+; Atomically compares and exchanges an unsigned 8-bit int.
+;
+; @param    pu16     x86:esp+4  msc:rcx  gcc:rdi
+; @param    u16New   x86:esp+8  msc:dx   gcc:si
+; @param    u16Old   x86:esp+c  msc:r8l  gcc:dl
+;
+; @returns  bool result: true if successfully exchanged, false if not.
+;           x86:al
+;
+BEGINPROC_EXPORTED ASMAtomicCmpXchgU16
+%ifdef RT_ARCH_AMD64
+ %ifdef ASM_CALL64_MSC
+        mov     ax, r8w
+        lock cmpxchg [rcx], dx
+ %else
+        mov     ax, dx
+        lock cmpxchg [rdi], si
+ %endif
+%else
+        mov     ecx, [esp + 04h]
+        mov     dx,  [esp + 08h]
+        mov     ax,  [esp + 0ch]
+        lock cmpxchg [ecx], dx
+%endif
+        setz    al
+        movzx   eax, al
+        ret
+ENDPROC ASMAtomicCmpXchgU16
+
Index: /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU16.asm
===================================================================
--- /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU16.asm	(revision 59055)
+++ /trunk/src/VBox/Runtime/common/asm/ASMAtomicXchgU16.asm	(revision 59055)
@@ -0,0 +1,60 @@
+; $Id$
+;; @file
+; IPRT - ASMAtomicXchgU16().
+;
+
+;
+; Copyright (C) 2006-2015 Oracle Corporation
+;
+; This file is part of VirtualBox Open Source Edition (OSE), as
+; available from http://www.virtualbox.org. This file is free software;
+; you can redistribute it and/or modify it under the terms of the GNU
+; General Public License (GPL) as published by the Free Software
+; Foundation, in version 2 as it comes in the "COPYING" file of the
+; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;
+; The contents of this file may alternatively be used under the terms
+; of the Common Development and Distribution License Version 1.0
+; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+; VirtualBox OSE distribution, in which case the provisions of the
+; CDDL are applicable instead of those of the GPL.
+;
+; You may elect to license modified versions of this file under the
+; terms and conditions of either the GPL or the CDDL or both.
+;
+
+;*******************************************************************************
+;* Header Files                                                                *
+;*******************************************************************************
+%include "iprt/asmdefs.mac"
+
+BEGINCODE
+
+;;
+; Atomically Exchange an unsigned 16-bit value, ordered.
+;
+; @param    pu16     x86:ebp+8   gcc:rdi  msc:rcx
+; @param    u16New   x86:ebp+c   gcc:si   msc:dx
+;
+; @returns Current (i.e. old) *pu16 value (AX).
+;
+BEGINPROC_EXPORTED ASMAtomicXchgU16
+%ifdef RT_ARCH_AMD64
+ %ifdef ASM_CALL64_MSC
+        mov     ax, dx
+        xchg    [rcx], ax
+ %else
+        mov     ax, si
+        xchg    [rdi], ax
+ %endif
+%elifdef RT_ARCH_X86
+        mov     ecx, [esp+04h]
+        mov     ax, [esp+08h]
+        xchg    [ecx], ax
+%else
+ %error "Unsupport arch."
+%endif
+        ret
+ENDPROC ASMAtomicXchgU16
+
