RISC-V ISA Explorer · Atomics (Za/Zic*)

Zaamo: Atomic Memory Operations

Ratified 2024-04 · version 1.0.0

Atomic read-modify-write operations on memory such as swap, add, logical, min and max, with no LR/SC pair.

Typical use: Lock-free counters and shared-memory updates

Specification

Open Zaamo in the explorer

Dependencies

Required by

Instructions (18)

MnemonicNameEncodingMatchMask
AMOADD.DAtomic fetch-and-add doubleword00000------------011-----01011110x302f0xf800707f
AMOADD.WAtomic fetch-and-add word00000------------010-----01011110x202f0xf800707f
AMOAND.DAtomic fetch-and-and doubleword01100------------011-----01011110x6000302f0xf800707f
AMOAND.WAtomic fetch-and-and word01100------------010-----01011110x6000202f0xf800707f
AMOMAX.DAtomic MAX doubleword10100------------011-----01011110xa000302f0xf800707f
AMOMAX.WAtomic MAX word10100------------010-----01011110xa000202f0xf800707f
AMOMAXU.DAtomic MAX unsigned doubleword11100------------011-----01011110xe000302f0xf800707f
AMOMAXU.WAtomic MAX unsigned word11100------------010-----01011110xe000202f0xf800707f
AMOMIN.DAtomic MIN doubleword10000------------011-----01011110x8000302f0xf800707f
AMOMIN.WAtomic MIN word10000------------010-----01011110x8000202f0xf800707f
AMOMINU.DAtomic MIN unsigned doubleword11000------------011-----01011110xc000302f0xf800707f
AMOMINU.WAtomic MIN unsigned word11000------------010-----01011110xc000202f0xf800707f
AMOOR.DAtomic fetch-and-or doubleword01000------------011-----01011110x4000302f0xf800707f
AMOOR.WAtomic fetch-and-or word01000------------010-----01011110x4000202f0xf800707f
AMOSWAP.DAtomic SWAP doubleword00001------------011-----01011110x800302f0xf800707f
AMOSWAP.WAtomic SWAP word00001------------010-----01011110x800202f0xf800707f
AMOXOR.DAtomic fetch-and-xor doubleword00100------------011-----01011110x2000302f0xf800707f
AMOXOR.WAtomic fetch-and-xor word00100------------010-----01011110x2000202f0xf800707f