LSE (Atomics) Instructions
19 ARM instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| cas | CAS <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic Compare and Swap (32-bit). |
| cas | CAS <Xs>, <Xt>, [<Xn|SP>] | Atomic | Atomic Compare and Swap (64-bit). |
| casa | CASA <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic CAS with Acquire semantics. |
| casal | CASAL <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic CAS with Acquire and Release semantics. |
| casl | CASL <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic CAS with Release semantics. |
| casp | CASP <Ws>, <W(s+1)>, <Wt>, <W(t+1)>, [<Xn|SP>] | Atomic | Atomic CAS of a pair of registers (128-bit or 64-bit pair). |
| ld64b | LD64B <Xt>, [<Xn|SP>] | Load/Store | Loads a 64-byte block of data atomically (Accelerator support). |
| ldadd | LDADD <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic add to memory, return old value. |
| ldclr | LDCLR <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic bit clear (AND NOT) to memory. |
| ldeor | LDEOR <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic XOR to memory. |
| ldset | LDSET <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic bit set (OR) to memory. |
| ldsmax | LDSMAX <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic signed max to memory. |
| ldsmin | LDSMIN <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic signed min to memory. |
| ldumax | LDUMAX <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic unsigned max to memory. |
| ldumin | LDUMIN <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic unsigned min to memory. |
| st64b | ST64B <Xt>, [<Xn|SP>] | Load/Store | Stores a 64-byte block of data atomically. |
| st64bv | ST64BV <Ws>, <Xt>, [<Xn|SP>] | Load/Store | Stores 64 bytes atomically and returns status (Success/Fail). |
| st64bv0 | ST64BV0 <Ws>, <Xt>, [<Xn|SP>] | Load/Store | Stores 64 bytes (eliding the first 8 bytes as zero) and returns status. |
| swp | SWP <Ws>, <Wt>, [<Xn|SP>] | Atomic | Atomic swap of a word. |