Skip to content

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.

See Also