]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseSynchronizationLib/Ia32/InterlockedCompareExchange16.nasm
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseSynchronizationLib / Ia32 / InterlockedCompareExchange16.nasm
CommitLineData
0b45f691
JJ
1;------------------------------------------------------------------------------\r
2;\r
4cee954e 3; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
0b45f691 4; Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>\r
9344f092 5; SPDX-License-Identifier: BSD-2-Clause-Patent\r
0b45f691
JJ
6;\r
7; Module Name:\r
8;\r
9; InterlockedCompareExchange16.Asm\r
10;\r
11; Abstract:\r
12;\r
13; InterlockedCompareExchange16 function\r
14;\r
15; Notes:\r
16;\r
17;------------------------------------------------------------------------------\r
18\r
19 SECTION .text\r
20\r
21;------------------------------------------------------------------------------\r
22; UINT16\r
23; EFIAPI\r
24; InternalSyncCompareExchange16 (\r
4cee954e 25; IN volatile UINT16 *Value,\r
0b45f691
JJ
26; IN UINT16 CompareValue,\r
27; IN UINT16 ExchangeValue\r
28; );\r
29;------------------------------------------------------------------------------\r
30global ASM_PFX(InternalSyncCompareExchange16)\r
31ASM_PFX(InternalSyncCompareExchange16):\r
32 mov ecx, [esp + 4]\r
33 mov ax, [esp + 8]\r
34 mov dx, [esp + 12]\r
35 lock cmpxchg [ecx], dx\r
36 ret\r
37\r