amoswap.d

Operands

reg, reg, (reg)

Atomic swap : Set t1 to the double word at the address in t3, and store t2 there. The exchange is indivisible, which makes this the natural way to implement a spinlock (64bit)

Variants

  • Atomic swap : Set t1 to the double word at the address in t3, and store t2 there. The exchange is indivisible, which makes this the natural way to implement a spinlock (64bit) amoswap.d t1, t2, (t3)

This example runs on RV64.

# value is initialized and naturally aligned for this operation.
.data
value: .dword 0x0000000012345678
.text
la t0, value
# Atomic operation returns the old value 305419896 in t2, then changes value to 5.
li t1, 5
amoswap.d t2, t1, (t0)