RISC-V ISA Explorer · Atomics (Za/Zic*)
Zabha: Byte/Halfword AMO
Ratified 2024-04 · version 1.0.0
Byte and halfword widths for the atomic memory operations, useful for subword locks, flags and counters.
Typical use: Subword AMO support
Open Zabha in the explorerDependencies
Requires
Instructions (18)
| Mnemonic | Name | Encoding | Match | Mask |
|---|---|---|---|---|
AMOADD.B | Atomic fetch-and-add byte | 00000------------000-----0101111 | 0x2f | 0xf800707f |
AMOADD.H | Atomic fetch-and-add halfword | 00000------------001-----0101111 | 0x102f | 0xf800707f |
AMOAND.B | Atomic fetch-and-and byte | 01100------------000-----0101111 | 0x6000002f | 0xf800707f |
AMOAND.H | Atomic fetch-and-and halfword | 01100------------001-----0101111 | 0x6000102f | 0xf800707f |
AMOMAX.B | Atomic MAX byte | 10100------------000-----0101111 | 0xa000002f | 0xf800707f |
AMOMAX.H | Atomic MAX halfword | 10100------------001-----0101111 | 0xa000102f | 0xf800707f |
AMOMAXU.B | Atomic MAX unsigned byte | 11100------------000-----0101111 | 0xe000002f | 0xf800707f |
AMOMAXU.H | Atomic MAX unsigned halfword | 11100------------001-----0101111 | 0xe000102f | 0xf800707f |
AMOMIN.B | Atomic MIN byte | 10000------------000-----0101111 | 0x8000002f | 0xf800707f |
AMOMIN.H | Atomic MIN halfword | 10000------------001-----0101111 | 0x8000102f | 0xf800707f |
AMOMINU.B | Atomic MIN unsigned byte | 11000------------000-----0101111 | 0xc000002f | 0xf800707f |
AMOMINU.H | Atomic MIN unsigned halfword | 11000------------001-----0101111 | 0xc000102f | 0xf800707f |
AMOOR.B | Atomic fetch-and-or byte | 01000------------000-----0101111 | 0x4000002f | 0xf800707f |
AMOOR.H | Atomic fetch-and-or halfword | 01000------------001-----0101111 | 0x4000102f | 0xf800707f |
AMOSWAP.B | Atomic SWAP byte | 00001------------000-----0101111 | 0x800002f | 0xf800707f |
AMOSWAP.H | Atomic SWAP halfword | 00001------------001-----0101111 | 0x800102f | 0xf800707f |
AMOXOR.B | Atomic fetch-and-xor byte | 00100------------000-----0101111 | 0x2000002f | 0xf800707f |
AMOXOR.H | Atomic fetch-and-xor halfword | 00100------------001-----0101111 | 0x2000102f | 0xf800707f |