Home | History | Annotate | Download | only in Ia32
      1 ;------------------------------------------------------------------------------
      2 ;
      3 ; Copyright (c) 2006, 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     .486
     26     .model  flat,C
     27     .code
     28 
     29 ;------------------------------------------------------------------------------
     30 ; UINT16
     31 ; EFIAPI
     32 ; InternalSyncCompareExchange16 (
     33 ;   IN      UINT16                    *Value,
     34 ;   IN      UINT16                    CompareValue,
     35 ;   IN      UINT16                    ExchangeValue
     36 ;   );
     37 ;------------------------------------------------------------------------------
     38 InternalSyncCompareExchange16   PROC
     39     mov     ecx, [esp + 4]
     40     mov     ax, [esp + 8]
     41     mov     dx, [esp + 12]
     42     lock    cmpxchg [ecx], dx
     43     ret
     44 InternalSyncCompareExchange16   ENDP
     45 
     46     END
     47