1 #------------------------------------------------------------------------------
3 # Copyright (c) 2006, Intel Corporation
4 # All rights reserved. This program and the accompanying materials
5 # are licensed and made available under the terms and conditions of the BSD License
6 # which accompanies this distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php
9 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 # InterlockedCompareExchange32.Asm
18 # InterlockedCompareExchange32 function
22 #------------------------------------------------------------------------------
28 #------------------------------------------------------------------------------
31 # InterlockedCompareExchangePointer (
33 # IN VOID *CompareValue,
34 # IN VOID *ExchangeValue
36 #------------------------------------------------------------------------------
37 .global _InterlockedCompareExchangePointer
38 _InterlockedCompareExchangePointer:
40 # InterlockedCompareExchangePointer() shares the same code as
41 # InterlockedCompareExchange32() on IA32 and thus no code inside this
46 #------------------------------------------------------------------------------
49 # InterlockedCompareExchange32 (
51 # IN UINT32 CompareValue,
52 # IN UINT32 ExchangeValue
54 #------------------------------------------------------------------------------
55 .global _InterlockedCompareExchange32
56 _InterlockedCompareExchange32:
60 lock cmpxchgl %edx,(%ecx)