Atomic Operation¶
Ch 14
AMO — Atomic Memory Operations |
**Group:** Atomic Operation |
**Forms:** 72 |
**Unique mnemonics:** 72
Atomic read-modify-write operations on memory.
Instructions¶
| Mnemonic | Assembly | Length | Decode | Description |
|---|---|---|---|---|
| CASB | casb<.{aq, rl, aqrl}> [SrcL], SrcR, SrcD, ->{t, u, Rd} |
32 | — | Atomic memory read-modify-write operation. |
| CASD | casd<.{aq, rl, aqrl}> [SrcL], SrcR, SrcD, ->{t, u, Rd} |
32 | — | Atomic memory read-modify-write operation. |
| CASH | cash<.{aq, rl, aqrl}> [SrcL], SrcR, SrcD, ->{t, u, Rd} |
32 | — | Atomic memory read-modify-write operation. |
| CASW | casw<.{aq, rl, aqrl}> [SrcL], SrcR, SrcD, ->{t, u, Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.ADD | ld.add<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.AND | ld.and<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.OR | ld.or<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.SMAX | ld.smax<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.SMIN | ld.smin<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.UMAX | ld.umax<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.UMIN | ld.umin<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LD.XOR | ld.xor<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LR.B | lr.b<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LR.D | lr.d<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LR.H | lr.h<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LR.W | lr.w<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.ADD | lw.add<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.AND | lw.and<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.OR | lw.or<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.SMAX | lw.smax<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.SMIN | lw.smin<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.UMAX | lw.umax<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.UMIN | lw.umin<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| LW.XOR | lw.xor<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SC.B | sc.b<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> SrcL, [SrcR], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SC.D | sc.d<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> SrcL, [SrcR], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SC.H | sc.h<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> SrcL, [SrcR], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SC.W | sc.w<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> SrcL, [SrcR], {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SD.ADD | sd.add<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.AND | sd.and<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.OR | sd.or<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.SMAX | sd.smax<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.SMIN | sd.smin<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.UMAX | sd.umax<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.UMIN | sd.umin<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SD.XOR | sd.xor<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.ADD | sw.add<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.AND | sw.and<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.OR | sw.or<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.SMAX | sw.smax<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.SMIN | sw.smin<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.UMAX | sw.umax<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.UMIN | sw.umin<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SW.XOR | sw.xor<.{rl, f, rlf}> [SrcL], SrcR |
32 | — | Atomic memory read-modify-write operation. |
| SWAPB | swapb<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SWAPD | swapd<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SWAPH | swaph<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| SWAPW | swapw<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, {->t, ->u, ->Rd} |
32 | — | Atomic memory read-modify-write operation. |
| V.LD.ADD | v.ld.add<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LD.AND | v.ld.and<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LD.MAX | v.ld.max<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LD.MIN | v.ld.min<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LD.OR | v.ld.or<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LD.XOR | v.ld.xor<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.ADD | v.lw.add<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.AND | v.lw.and<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.MAX | v.lw.max<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.MIN | v.lw.min<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.OR | v.lw.or<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.LW.XOR | v.lw.xor<.{aq, rl, f, aqrl, aqf, rlf, aqrlf}> [SrcL], SrcR, ->Dst |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.ADD | v.sd.add<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.AND | v.sd.and<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.MAX | v.sd.max<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.MIN | v.sd.min<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.OR | v.sd.or<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SD.XOR | v.sd.xor<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.ADD | v.sw.add<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.AND | v.sw.and<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.MAX | v.sw.max<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.MIN | v.sw.min<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.OR | v.sw.or<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |
| V.SW.XOR | v.sw.xor<.{rl, f, rd, rlf, rdf, rlrd, rlrdf}> [SrcL], SrcR |
64 | — | [64-bit V.] Atomic memory read-modify-write operation. |