]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange16.nasm
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseSynchronizationLib / X64 / InterlockedCompareExchange16.nasm
CommitLineData
a04618e6
JJ
1;------------------------------------------------------------------------------\r
2;\r
4cee954e 3; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
a04618e6 4; Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>\r
9344f092 5; SPDX-License-Identifier: BSD-2-Clause-Patent\r
a04618e6
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 DEFAULT REL\r
20 SECTION .text\r
21\r
22;------------------------------------------------------------------------------\r
23; UINT16\r
24; EFIAPI\r
fa1beef5 25; InternalSyncCompareExchange16 (\r
4cee954e 26; IN volatile UINT16 *Value,\r
a04618e6
JJ
27; IN UINT16 CompareValue,\r
28; IN UINT16 ExchangeValue\r
29; );\r
30;------------------------------------------------------------------------------\r
31global ASM_PFX(InternalSyncCompareExchange16)\r
32ASM_PFX(InternalSyncCompareExchange16):\r
33 mov ax, dx\r
34 lock cmpxchg [rcx], r8w\r
35 ret\r
36\r