stfdux (Store Floating-Point Double with Update Indexed) 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 | 31 |
6 - 10 | FRS |
11 - 15 | RA |
16 - 20 | RB |
21 - 30 | 759 |
31 | / |
Description
The stfdux 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 GPRs RA and RB. If GPR RA is 0, then the EA is the contents of GPR RB.
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 stfdux 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. |
RA | Specifies source general-purpose register for EA calculation and possible address update. |
RB | Specifies source general-purpose register for EA calculation. |
Examples
The following code stores the contents of FPR 6 into a location in memory and stores the address in GPR 4:
.csect data[rw]
buffer: .long 0,0,0,0
# Assume FPR 6 contains 0x9000 3000 9000 3000.
# Assume GPR 4 contains 0x0000 0008.
# Assume GPR 5 contains the address of buffer.
.csect text[pr]
stfdux 6,4,5
# buffer+8 now contains 0x9000 3000 9000 3000.
# GPR 4 now contains the address of buffer+8.