summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/XenBusDxe/X64/InterlockedCompareExchange16.S
blob: 23e08f3f6e884bc525e8fc1867bae6e65d45b0b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
# UINT16
# EFIAPI
# InternalSyncCompareExchange16 (
#   IN      volatile UINT16           *Value,
#   IN      UINT16                    CompareValue,
#   IN      UINT16                    ExchangeValue
#   );
ASM_GLOBAL ASM_PFX(InternalSyncCompareExchange16)
ASM_PFX(InternalSyncCompareExchange16):
  mov %edx, %eax
  lock
  cmpxchgw %r8w, (%rcx)
  ret