summaryrefslogtreecommitdiff
path: root/OvmfPkg/XenBusDxe/Ia32/InterlockedCompareExchange16.S
blob: 5306448515076d21be471da55cb223871356393b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# UINT16
# EFIAPI
# InternalSyncCompareExchange16 (
#   IN      volatile UINT16           *Value,
#   IN      UINT16                    CompareValue,
#   IN      UINT16                    ExchangeValue
#   );
ASM_GLOBAL ASM_PFX(InternalSyncCompareExchange16)
ASM_PFX(InternalSyncCompareExchange16):
  mov 4(%esp), %ecx
  mov 8(%esp), %eax
  mov 12(%esp), %edx
  lock
  cmpxchgw %dx, (%ecx)
  ret