2.6.4.8.2 Operation
LDREX
, LDREXB
, and
LDREXH
load a word, byte, and halfword respectively from a memory
address.
STREX
, STREXB
, and
STREXH
attempt to store a word, byte, and halfword respectively to a
memory address. The address used in any Store-Exclusive instruction must be the same as the
address in the most recently executed Load-exclusive instruction. The value stored by the
Store-Exclusive instruction must also have the same data size as the value loaded by the
preceding Load-exclusive instruction. This means software must always use a Load-exclusive
instruction and a matching Store-Exclusive instruction to perform a synchronization
operation, see 2.5.2.7 Synchronization Primitives.
If an Store-Exclusive instruction performs the store, it writes 0 to its destination register. If it does not perform the store, it writes 1 to its destination register. If the Store-Exclusive instruction writes 0 to the destination register, it is ensured that no other process in the system has accessed the memory location between the Load-exclusive and Store-Exclusive instructions.
For reasons of performance, keep the number of instructions between corresponding Load-Exclusive and Store-Exclusive instruction to a minimum.