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 31