AMOADD.D
Atomic Add Doubleword
AMOADD.D rd, rs2, (rs1)
Atomically adds a value to a 64-bit doubleword in memory.
Encoding
Binary Layout
00000
31:27
aq
26
rl
25
rs2
24:20
rs1
19:15
011
14:12
rd
11:7
0101111
6:0
Operands
-
rd
Dest (Old Value) -
rs2
Value to Add -
rs1
Address
Example
AMOADD.D x10, x11, (x12)
// 64-bit atomic add.
Related
Across architectures
Atomic Fetch and Add : how x86, ARM, RISC-V, and PowerISA each do this.
More in A
Reference
View in RISC-V Unprivileged ISA Specification ↗
RISC-V ISA Manual
Description
AMOADD.D atomically loads a doubleword from the address in rs1 into rd, adds rs2, and stores the result back (RV64 only).
Operation
temp = M[R[rs1]]; M[R[rs1]] = temp + R[rs2]; R[rd] = temp;