Added the LDRIRW variant of the LDR instruction
All checks were successful
Central(Architecture) Docs Build / Build Documentation (push) Successful in 14s
All checks were successful
Central(Architecture) Docs Build / Build Documentation (push) Successful in 14s
This commit is contained in:
parent
07acc7ff1e
commit
ca71abdc10
@ -147,8 +147,19 @@ Assembler syntax::
|
|||||||
+
|
+
|
||||||
[source]
|
[source]
|
||||||
----
|
----
|
||||||
ldr{cond} dst, [src, off]
|
ldr<cond?> <dst>, [<src>, <off?>]
|
||||||
----
|
----
|
||||||
|
+
|
||||||
|
Where:
|
||||||
|
[horizontal]
|
||||||
|
cond::: Optional condition.
|
||||||
|
dst::: Destination register.
|
||||||
|
src::: Source register.
|
||||||
|
off:::
|
||||||
|
Optional offset immediate.
|
||||||
|
Must be a multiple of 4 and in the range 0-8188.
|
||||||
|
If omitted, then 0 is used.
|
||||||
|
|
||||||
Examples::
|
Examples::
|
||||||
+
|
+
|
||||||
[source]
|
[source]
|
||||||
@ -160,6 +171,50 @@ ldr.eq r5, [r4] ; If the last comparison resulted in an 'eq' condition status
|
|||||||
; then reads a word from the memory address in r4 into r5.
|
; then reads a word from the memory address in r4 into r5.
|
||||||
; Else, does nothing.
|
; Else, does nothing.
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Privileged instruction:: No.
|
||||||
|
Updates program state flags:: No.
|
||||||
|
Exceptions::
|
||||||
|
[horizontal]
|
||||||
|
MemFault:::
|
||||||
|
If the memory address being accessed is invalid, non readable or not paged in.
|
||||||
|
The kernel may update the page table entries and re-execute the instruction without the user application being aware that it failed in the first place.
|
||||||
|
|
||||||
|
====== LDRIRW: Load Register Immediate Pre-indexed with Write-back
|
||||||
|
Description::
|
||||||
|
Increments the source register then reads a word from memory into the destination register.
|
||||||
|
The immediate offset `off` is added to the `src` register value before reading a word from memory into the `dst` register.
|
||||||
|
Encoding:: A-Type
|
||||||
|
Assembler syntax::
|
||||||
|
+
|
||||||
|
[source]
|
||||||
|
----
|
||||||
|
ldr<cond?> <dst>, ![<src>, <off?>]
|
||||||
|
----
|
||||||
|
+
|
||||||
|
Where:
|
||||||
|
[horizontal]
|
||||||
|
cond::: Optional condition.
|
||||||
|
dst::: Destination register.
|
||||||
|
src::: Source register.
|
||||||
|
off:::
|
||||||
|
Optional offset immediate.
|
||||||
|
Must be a multiple of 4 and in the range 0-8188.
|
||||||
|
If omitted, then 4 is used.
|
||||||
|
|
||||||
|
Examples::
|
||||||
|
+
|
||||||
|
[source]
|
||||||
|
----
|
||||||
|
ldr r1, ![r0] ; Increments r0 by 4 then reads a word from the memory address
|
||||||
|
; in r0 into r1.
|
||||||
|
ldr r3, ![r2, 8] ; Increments r2 by 8 then reads a word from the memory address
|
||||||
|
; in r2 into r3.
|
||||||
|
ldr.eq r5, ![r4] ; If the last comparison resulted in an 'eq' condition status,
|
||||||
|
; then increments r4 by 4 and reads a word from the memory
|
||||||
|
; address in r4 into r5. Else, does nothing.
|
||||||
|
----
|
||||||
|
|
||||||
Privileged instruction:: No.
|
Privileged instruction:: No.
|
||||||
Updates program state flags:: No.
|
Updates program state flags:: No.
|
||||||
Exceptions::
|
Exceptions::
|
||||||
|
Loading…
Reference in New Issue
Block a user