X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OldMdePkg%2FLibrary%2FBaseLib%2FX64%2FInterlockedCompareExchange32.S;fp=OldMdePkg%2FLibrary%2FBaseLib%2FX64%2FInterlockedCompareExchange32.S;h=cd85279c7342c6d43541aa28ef5759caa87eab6d;hp=0000000000000000000000000000000000000000;hb=586cd1f1f4129ab7ec24543d4968801e17cc870b;hpb=144d783d40c8a02113350feabd1b9a55b692313f diff --git a/OldMdePkg/Library/BaseLib/X64/InterlockedCompareExchange32.S b/OldMdePkg/Library/BaseLib/X64/InterlockedCompareExchange32.S new file mode 100644 index 0000000000..cd85279c73 --- /dev/null +++ b/OldMdePkg/Library/BaseLib/X64/InterlockedCompareExchange32.S @@ -0,0 +1,37 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2006, Intel Corporation +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# Module Name: +# +# InterlockedCompareExchange32.Asm +# +# Abstract: +# +# InterlockedCompareExchange32 function +# +# Notes: +# +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# UINT32 +# EFIAPI +# InterlockedCompareExchange32 ( +# IN UINT32 *Value, +# IN UINT32 CompareValue, +# IN UINT32 ExchangeValue +# ); +#------------------------------------------------------------------------------ +.global _InternalSyncCompareExchange32; +_InternalSyncCompareExchange32: + mov %edx, %eax + lock cmpxchg %r8d, (%rcx) + ret