Does AMOMINU.B return the post-operation value?
No. Like A-extension AMOs, rd receives the old value loaded from memory.
Atomic byte unsigned min: rd = *rs1 (sign-ext), *rs1 = umin(*rs1, rs2[7:0])
AMOMINU.B (Zabha extension) atomically loads a byte from the address in rs1 into rd (sign-extended), compares it as an unsigned byte with the low byte of rs2, and stores the selected unsigned min value back. Supports aq/rl bits.
Shows Zabha byte atomic field decode, aq/rl ordering bits, memory read, and RMW state update.
Zabha-extension byte atomic instructions use a 32-bit encoding; the animation starts by splitting the fields.
AMOMINU.B selects the memory writeback byte using a unsigned 8-bit comparison; this is not a per-bit logical operation.
This animation shows ISA-visible atomic read-modify-write, compare-and-swap, LR/SC reservation state, and ordering bits, not any specific CPU cache-coherence implementation, pipeline, or timing.
AMOMINU.B is a Zabha 8-bit unsigned min instruction. It atomically reads the old memory value, selects the memory writeback with an unsigned 8-bit comparison, and writes the sign-extended old value to rd.
Understand this scenario with real code like «amominu.b a0, a2, (a1)».
Understand this scenario with real code like «amominu.b a0, a2, (a1)».
No. Like A-extension AMOs, rd receives the old value loaded from memory.
Architecturally it modifies only the byte operand; Zabha provides native byte-granule atomic read-modify-write operations.