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
Item Description
stfdu FRS, D( RA)

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.