Home | History | Annotate | Download | only in X64
      1 ;------------------------------------------------------------------------------
      2 ;
      3 ; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
      4 ; Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>
      5 ; This program and the accompanying materials
      6 ; are licensed and made available under the terms and conditions of the BSD License
      7 ; which accompanies this distribution.  The full text of the license may be found at
      8 ; http://opensource.org/licenses/bsd-license.php.
      9 ;
     10 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 ;
     13 ; Module Name:
     14 ;
     15 ;   InterlockedCompareExchange16.Asm
     16 ;
     17 ; Abstract:
     18 ;
     19 ;   InterlockedCompareExchange16 function
     20 ;
     21 ; Notes:
     22 ;
     23 ;------------------------------------------------------------------------------
     24 
     25     .code
     26 
     27 ;------------------------------------------------------------------------------
     28 ; UINT16
     29 ; EFIAPI
     30 ; InternalSyncCompareExchange16 (
     31 ;   IN      volatile UINT16           *Value,
     32 ;   IN      UINT16                    CompareValue,
     33 ;   IN      UINT16                    ExchangeValue
     34 ;   );
     35 ;------------------------------------------------------------------------------
     36 InternalSyncCompareExchange16   PROC
     37     mov     ax, dx
     38     lock    cmpxchg [rcx], r8w
     39     ret
     40 InternalSyncCompareExchange16   ENDP
     41 
     42     END
     43