stfdu (Store Floating-Point Double with Update) instruction
Purpose
Stores a doubleword of data in a specified location in memory and in some cases places the address in a general-purpose register.
Syntax
Bits | Value |
---|---|
0 - 5 | 55 |
6 - 10 | FRS |
11 - 15 | RA |
16 - 31 | D |
Description
The stfdu instruction stores the contents of floating-point register (FPR) FRS into the doubleword storage addressed by the effective address (EA).
If general-purpose register (GPR) RA is not 0, the EA is the sum of the contents of GPR RA and D. The sum is a 16-bit signed two's complement integer sign-extended to 32 bits. If GPR RA is 0, then the EA is D.
If GPR RA does not equal 0 and the storage access does not cause Alignment Interrupt or a Data Storage Interrupt, then the EA is stored in GPR RA.
The stfdu instruction has one syntax form and does not affect the Floating-Point Status and Control Register or Condition Register Field 0.
Parameters
Item | Description |
---|---|
FRS | Specifies source floating-point register of stored data. |
D | Specifies a 16-bit signed two's complement integer sign-extended to 32 bits for EA calculation. |
RA | Specifies source general-purpose register for EA calculation and possible address update. |
Examples
The following code stores the doubleword contents of FPR 6 into a location in memory and stores the address in GPR 4:
.csect data[rw]
buffer: .long 0,0
# Assume FPR 6 contains 0x4865 6C6C 6F20 776F.
# GPR 4 contains the address of csect data[rw].
.csect text[pr]
stfdu 6,buffer(4)
# buffer now contains 0x4865 6C6C 6F20 776F.
# GPR 4 now contains the address of buffer.