diff --git a/zabha.adoc b/zabha.adoc index c861088..09c53ee 100644 --- a/zabha.adoc +++ b/zabha.adoc @@ -3,9 +3,10 @@ Zabha extends A and Zacas cite:[zacas] standard extensions by adding _byte_ (`width=0`) and _halfword_ (`width=1`) support in `width` field for atomic -memory operation instructions. Byte and halfword AMOs always sign-extend the -value placed in `rd`, and ignore the `XLEN-1:(2^(width + 3))` bits of the -original value in `rs2`. +memory operation instructions. + +Zabha provides `AMO[ADD|AND|OR|XOR|SWAP|MIN[U]|MAX[U]].[B|H]`. If Zacas is also +implemented, Zabha further provides `AMOCAS.[B|H]`. [wavedrom, , ] .... @@ -21,6 +22,9 @@ original value in `rs2`. ], config:{lanes: 1, hspace:1024}} .... +Byte and halfword AMOs always sign-extend the value placed in `rd`, and +ignore the `XLEN-1:(2^(width + 3))` bits of the original value in `rs2`. + Similar to the AMOs specified in the A extension, the Zabha extension mandates that the address contained in the `rs1` register must be naturally aligned to the size of the operand. The same exception options as specified in the A