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     DEFAULT REL
     26     SECTION .text
     27 
     28 ;------------------------------------------------------------------------------
     29 ; UINT16
     30 ; EFIAPI
     31 ; InternalSyncCompareExchange16 (
     32 ;   IN      volatile UINT16           *Value,
     33 ;   IN      UINT16                    CompareValue,
     34 ;   IN      UINT16                    ExchangeValue
     35 ;   );
     36 ;------------------------------------------------------------------------------
     37 global ASM_PFX(InternalSyncCompareExchange16)
     38 ASM_PFX(InternalSyncCompareExchange16):
     39     mov     ax, dx
     40     lock    cmpxchg [rcx], r8w
     41     ret
     42 
     43