Home | History | Annotate | Download | only in Ia32
      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     SECTION .text
     26 
     27 ;------------------------------------------------------------------------------
     28 ; UINT16
     29 ; EFIAPI
     30 ; InternalSyncCompareExchange16 (
     31 ;   IN      volatile UINT16           *Value,
     32 ;   IN      UINT16                    CompareValue,
     33 ;   IN      UINT16                    ExchangeValue
     34 ;   );
     35 ;------------------------------------------------------------------------------
     36 global ASM_PFX(InternalSyncCompareExchange16)
     37 ASM_PFX(InternalSyncCompareExchange16):
     38     mov     ecx, [esp + 4]
     39     mov     ax, [esp + 8]
     40     mov     dx, [esp + 12]
     41     lock    cmpxchg [ecx], dx
     42     ret
     43 
     44