A32 (Atomic) Instructions
25 ARM instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| clrex | CLREX | Thumb System | Clears exclusive monitor (Thumb). |
| lda | LDA<c> <Rt>, [<Rn>] | Load/Store | Loads a word with Acquire semantics. |
| ldaex | LDAEX<c> <Rt>, [<Rn>] | Load/Store | Loads a word with Acquire Exclusive semantics. |
| ldaexb | LDAEXB<c> <Rt>, [<Rn>] | Load Excl | Loads a byte, acquires semantics, marks exclusive. |
| ldaexd | LDAEXD<c> <Rt>, <Rt2>, [<Rn>] | Load Excl | Loads a doubleword, acquires semantics, marks exclusive. |
| ldaexh | LDAEXH<c> <Rt>, [<Rn>] | Load Excl | Loads a halfword, acquires semantics, marks exclusive. |
| ldrex | LDREX <Rt>, [<Rn>] | Thumb Load Excl | Loads word and sets exclusive monitor (Thumb). |
| ldrex | LDREX<c> <Rt>, [<Rn>] | Load/Store | Loads a word and marks physical address as exclusive. |
| ldrexb | LDREXB<c> <Rt>, [<Rn>] | Load/Store Excl | Loads a byte and marks address as exclusive. |
| ldrexb | LDREXB <Rt>, [<Rn>] | Thumb Load Excl | Loads byte exclusively (Thumb). |
| ldrexd | LDREXD<c> <Rt>, <Rt2>, [<Rn>] | Load/Store Excl | Loads a doubleword and marks address as exclusive. |
| ldrexh | LDREXH<c> <Rt>, [<Rn>] | Load/Store Excl | Loads a halfword and marks address as exclusive. |
| ldrexh | LDREXH <Rt>, [<Rn>] | Thumb Load Excl | Loads halfword exclusively (Thumb). |
| stl | STL<c> <Rt>, [<Rn>] | Load/Store | Stores a word with Release semantics. |
| stlex | STLEX<c> <Rd>, <Rt>, [<Rn>] | Load/Store | Stores a word with Release Exclusive semantics. |
| stlexb | STLEXB<c> <Rd>, <Rt>, [<Rn>] | Store Excl | Stores a byte with Release semantics if exclusive. |
| stlexd | STLEXD<c> <Rd>, <Rt>, <Rt2>, [<Rn>] | Store Excl | Stores a doubleword with Release semantics if exclusive. |
| stlexh | STLEXH<c> <Rd>, <Rt>, [<Rn>] | Store Excl | Stores a halfword with Release semantics if exclusive. |
| strex | STREX <Rd>, <Rt>, [<Rn>] | Thumb Store Excl | Stores word if exclusive monitor is open (Thumb). |
| strexb | STREXB<c> <Rd>, <Rt>, [<Rn>] | Load/Store Excl | Stores a byte if address is still exclusive. |
| strexb | STREXB <Rd>, <Rt>, [<Rn>] | Thumb Store Excl | Stores byte exclusively (Thumb). |
| strexd | STREXD<c> <Rd>, <Rt>, <Rt2>, [<Rn>] | Load/Store Excl | Stores a doubleword if address is still exclusive. |
| strexh | STREXH<c> <Rd>, <Rt>, [<Rn>] | Load/Store Excl | Stores a halfword if address is still exclusive. |
| strexh | STREXH <Rd>, <Rt>, [<Rn>] | Thumb Store Excl | Stores halfword exclusively (Thumb). |
| swp | SWP<c> <Rt>, <Rt2>, [<Rn>] | Load/Store | Atomic swap word (Legacy). |