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
Open Zaamo in the explorerDependencies
Required by
Instructions (18)
| Mnemonic | Name | Encoding | Match | Mask |
|---|---|---|---|---|
AMOADD.D | Atomic fetch-and-add doubleword | 00000------------011-----0101111 | 0x302f | 0xf800707f |
AMOADD.W | Atomic fetch-and-add word | 00000------------010-----0101111 | 0x202f | 0xf800707f |
AMOAND.D | Atomic fetch-and-and doubleword | 01100------------011-----0101111 | 0x6000302f | 0xf800707f |
AMOAND.W | Atomic fetch-and-and word | 01100------------010-----0101111 | 0x6000202f | 0xf800707f |
AMOMAX.D | Atomic MAX doubleword | 10100------------011-----0101111 | 0xa000302f | 0xf800707f |
AMOMAX.W | Atomic MAX word | 10100------------010-----0101111 | 0xa000202f | 0xf800707f |
AMOMAXU.D | Atomic MAX unsigned doubleword | 11100------------011-----0101111 | 0xe000302f | 0xf800707f |
AMOMAXU.W | Atomic MAX unsigned word | 11100------------010-----0101111 | 0xe000202f | 0xf800707f |
AMOMIN.D | Atomic MIN doubleword | 10000------------011-----0101111 | 0x8000302f | 0xf800707f |
AMOMIN.W | Atomic MIN word | 10000------------010-----0101111 | 0x8000202f | 0xf800707f |
AMOMINU.D | Atomic MIN unsigned doubleword | 11000------------011-----0101111 | 0xc000302f | 0xf800707f |
AMOMINU.W | Atomic MIN unsigned word | 11000------------010-----0101111 | 0xc000202f | 0xf800707f |
AMOOR.D | Atomic fetch-and-or doubleword | 01000------------011-----0101111 | 0x4000302f | 0xf800707f |
AMOOR.W | Atomic fetch-and-or word | 01000------------010-----0101111 | 0x4000202f | 0xf800707f |
AMOSWAP.D | Atomic SWAP doubleword | 00001------------011-----0101111 | 0x800302f | 0xf800707f |
AMOSWAP.W | Atomic SWAP word | 00001------------010-----0101111 | 0x800202f | 0xf800707f |
AMOXOR.D | Atomic fetch-and-xor doubleword | 00100------------011-----0101111 | 0x2000302f | 0xf800707f |
AMOXOR.W | Atomic fetch-and-xor word | 00100------------010-----0101111 | 0x2000202f | 0xf800707f |