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
 
Format R-Type (Atomic)
Opcode 0x2F
Extension Zacas

Operands

  • rd
    Dest/Compare
  • rs2
    Swap Value
  • rs1
    Address