]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseSynchronizationLib/Ipf/InterlockedCompareExchange16.s
MdePkg/BaseSynchronizationLib: Add InterlockedCompareExchange16
[mirror_edk2.git] / MdePkg / Library / BaseSynchronizationLib / Ipf / InterlockedCompareExchange16.s
1 /// @file
2 /// Contains an implementation of InterlockedCompareExchange16 on Itanium-
3 /// based architecture.
4 ///
5 /// Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
6 /// Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>
7 /// This program and the accompanying materials
8 /// are licensed and made available under the terms and conditions of the BSD License
9 /// which accompanies this distribution. The full text of the license may be found at
10 /// http://opensource.org/licenses/bsd-license.php.
11 ///
12 /// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 /// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 ///
15 /// Module Name: InterlockedCompareExchange16.s
16 ///
17 ///
18
19 .auto
20 .text
21
22 .proc InternalSyncCompareExchange16
23 .type InternalSyncCompareExchange16, @function
24 InternalSyncCompareExchange16::
25 zxt2 r33 = r33
26 mov ar.ccv = r33
27 cmpxchg2.rel r8 = [r32], r34
28 mf
29 br.ret.sptk.many b0
30 .endp InternalSyncCompareExchange16