| |||
| Home > ARM and Thumb Instructions > Memory access instructions > PLD, PLDW, and PLI | |||
Preload Data and Preload Instruction. The processor can signal the memory system that a data or instruction load from an address is likely in the near future.
PLtype{cond} [Rn{, #offset}]
PLtype{cond} [Rn, +/-Rm{,shift}]
PLtype{cond}label
where:
typecan be one of:
DData address
DWData address with intention to write
IInstruction address.
cannot
be typeDW if the syntax specifies label.
condis an optional condition code.
is permitted
only in Thumb-2 code, using a preceding condIT instruction.
This is an unconditional instruction in ARM and you must not use .cond
Rnis the register on which the memory address is based.
offsetis an immediate offset. If offset is omitted, the
address is the value in .Rn
Rmis a register containing a value to be used as the offset.
shiftis an optional shift.
labelis a PC-relative expression.
The offset is applied to the value in before
the preload takes place. The result is used as the memory address
for the preload. The range of offsets permitted is:Rn
-4095 to +4095 for ARM instructions
-255 to +4095 for Thumb-2 instructions, when is
not PC.Rn
-4095 to +4095 for Thumb-2 instructions, when is
PC.Rn
The assembler calculates the offset from the PC for you. The
assembler generates an error if is
out of range.label
In ARM, the value in is
added to or subtracted from the value in Rm.
In Thumb-2, the value in Rn can
only be added to the value in Rm.
The result used as the memory address for the preload.Rn
The range of shifts permitted is:
LSL #0
to #3 for Thumb-2 instructions
Any one of the following for ARM instructions:
LSL #0
to #31
LSR #1 to #32
ASR #1 to #32
ROR #1 to #31
RRX
must not
be PC. For Thumb instructionsRm must
also not be SP. Rm
must not
be PC for Thumb instructions of the syntaxRnPL.type{cond}
[Rn, +/-Rm{,
#shift}]
ARM PLD is available in ARMv5TE and above.
32-bit Thumb PLD is available in ARMv6T2 and
above.
PLDW is available only in ARMv7 and above that
implement the Multiprocessing Extensions.
PLI is available only in ARMv7 and above.
There are no 16-bit Thumb PLD, PLDW,
or PLI instructions.
These are hint instructions, and their implementation is optional.
If they are not implemented, they execute as NOPs.
Using the Assembler: