#------------------------------------------------------------------------------
#
# LoongArch synchronization ASM functions.
#
# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
#------------------------------------------------------------------------------

ASM_GLOBAL ASM_PFX(AsmInternalSyncCompareExchange16)
ASM_GLOBAL ASM_PFX(AsmInternalSyncCompareExchange32)
ASM_GLOBAL ASM_PFX(AsmInternalSyncCompareExchange64)
ASM_GLOBAL ASM_PFX(AsmInternalSyncIncrement)
ASM_GLOBAL ASM_PFX(AsmInternalSyncDecrement)

/**
UINT32
EFIAPI
AsmInternalSyncCompareExchange16 (
  IN volatile UINT32 *Ptr32,
  IN UINT64          Mask,
  IN UINT64          LocalCompareValue,
  IN UINT64          LocalExchangeValue
  )
**/
ASM_PFX(AsmInternalSyncCompareExchange16):
1:
  ll.w  $t0, $a0, 0x0
  and   $t1, $t0, $a1
  bne   $t1, $a2, 2f
  andn  $t1, $t0, $a1
  or    $t1, $t1, $a3
  sc.w  $t1, $a0, 0x0
  beqz  $t1, 1b
  b     3f
2:
  dbar  0
3:
  move   $a0, $t0
  jirl   $zero, $ra, 0

/**
UINT32
EFIAPI
AsmInternalSyncCompareExchange32 (
  IN volatile UINT32 *Value,
  IN UINT64          CompareValue,
  IN UINT64          ExchangeValue
  )
**/
ASM_PFX(AsmInternalSyncCompareExchange32):
1:
  ll.w  $t0, $a0, 0x0
  bne   $t0, $a1, 2f
  move  $t1, $a2
  sc.w  $t1, $a0, 0x0
  beqz  $t1, 1b
  b     3f
2:
  dbar  0
3:
  move   $a0, $t0
  jirl   $zero, $ra, 0

/**
UINT64
EFIAPI
AsmInternalSyncCompareExchange64 (
  IN volatile UINT64 *Value,
  IN UINT64          CompareValue,
  IN UINT64          ExchangeValue
  )
**/
ASM_PFX(AsmInternalSyncCompareExchange64):
1:
  ll.d  $t0, $a0, 0x0
  bne   $t0, $a1, 2f
  move  $t1, $a2
  sc.d  $t1, $a0, 0x0
  beqz  $t1, 1b
  b     3f
2:
  dbar  0
3:
  move   $a0, $t0
  jirl   $zero, $ra, 0

/**
UINT32
EFIAPI
AsmInternalSyncIncrement (
  IN      volatile UINT32  *Value
  )
**/
ASM_PFX(AsmInternalSyncIncrement):
  li.w     $t0, 1
  amadd.w  $zero, $t0, $a0

  ld.w     $a0, $a0, 0
  jirl     $zero, $ra, 0

/**
UINT32
EFIAPI
AsmInternalSyncDecrement (
  IN      volatile UINT32  *Value
  )
**/
ASM_PFX(AsmInternalSyncDecrement):
  li.w     $t0, -1
  amadd.w  $zero, $t0, $a0

  ld.w     $a0, $a0, 0
  jirl     $zero, $ra, 0
.end
