pld
Prefixed Load Doubleword
Loads a 64-bit value from memory using a 34-bit immediate offset (PC-relative or absolute).
Details
Loads a 64-bit doubleword from memory at the address calculated from RA plus a 34-bit immediate displacement, storing the result in RT. When R=1, the displacement is PC-relative; when R=0, it is treated as absolute. This is a 64-bit prefixed instruction from the Prefixed extension.
Pseudocode Operation
if R = 1 then
EA ← (RA | 0 if RA=0) + sign_extend(D34, 34) + CIA
else
EA ← (RA | 0 if RA=0) + sign_extend(D34, 34)
RT ← [EA]
Programming Note
The pld instruction is commonly used for loading doubleword data from memory into a register. Ensure the base address and offset are correctly calculated to avoid accessing invalid memory locations. This instruction operates at user privilege level unless specified otherwise.
Example
// Load value from label.
Encoding
Operands
-
RT
Target Register -
D34
34-bit Displacement -
RA
Base Register -
R
PC-Relative Flag