lda
Load Acquire (A32)
LDA<c> <Rt>, [<Rn>]
Loads a word with Acquire semantics.
Details
Load Acquire: loads a 32-bit word from memory with Acquire semantics, ensuring memory synchronization and preventing subsequent memory operations from being reordered before this load. The address is computed from Rn (no offset). No condition flags are affected. Subject to condition code in A32; available in A32 with Atomic extension.
Pseudocode Operation
Rt ← [Rn]
Acquire_Semantics()
Example
LDA r3, [r1]
Encoding
Binary Layout
cond
00011
00
1
Rn
Rt
1
1
0
0
1001
1111
Operands
-
Rt
Transfer general-purpose register (load/store) -
Rn
First source / base general-purpose register
Reference (Arm AArch32 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x01900C9F | LDA{<c>}{<q>} <Rt>, [<Rn>] | A32 | cond | 00011 | 00 | 1 | Rn | Rt | 1 | 1 | 0 | 0 | 1001 | 1111 | ||
| 0xE8D00FAF | LDA{<c>}{<q>} <Rt>, [<Rn>] | T32 | 11101000110 | 1 | Rn | Rt | 1111 | 1 | 0 | 10 | 1111 |
Description
Load-Acquire Word loads a word from memory and writes it to a register. The instruction also has memory ordering semantics as described in Load-Acquire, Store-Release
For more information about support for shared memory see Synchronization and semaphores. For information about memory accesses see Memory accesses.
Operation
if ConditionPassed() then
EncodingSpecificOperations();
address = R[n];
R[t] = MemO[address, 4];