AMOCAS.D
Atomic Compare and Swap Doubleword
AMOCAS.D rd, rs2, (rs1)
Atomically compares 64-bit memory at rs1 with rd; if equal, writes rs2 to memory.
Details
AMOCAS.D atomically compares a doubleword in memory with a register pair and conditionally swaps it with another register pair (RV64 only).
Pseudocode Operation
atomic { if(M[rs1]==R[rd]) M[rs1]=R[rs2]; R[rd]=M[rs1]; }
Example
AMOCAS.D t0, a1, a0
Encoding
Binary Layout
00101
31:27
1
26
0
25
rs2
24:20
rs1
19:15
011
14:12
rd
11:7
0101111
6:0
Operands
-
rd
Dest/Compare -
rs2
Swap Value -
rs1
Address