pststd

Prefixed Store Doubleword

pststd RS, D34(RA), R

Stores a 64-bit value to memory using a 34-bit immediate offset.

Details

Stores a 64-bit doubleword from RS to memory at the address calculated from RA plus a 34-bit immediate displacement. 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)
[EA] ← RS

Programming Note

The pststd instruction stores a doubleword from the source register to memory. It uses the Program Counter (PC) or an effective address calculated from the base register and displacement. Ensure proper alignment for optimal performance; unaligned accesses may incur penalties. This instruction operates at user privilege level.

Example

pststd r3, label@pcrel(0), 1

// Store value to label.

Encoding

Binary Layout
1
0
2
6
R
8
0
9
D0
14
61
32
RS
38
RA
43
D1
48
 
Format MLS:D-form
Opcode 0x04000000F4000000
Extension Prefixed
Registers Altered PC

Operands

  • RS
    Source Register
  • D34
    34-bit Displacement
  • RA
    Base Register
  • R
    PC-Relative Flag