Floating-point Store Instructionstf
Instruction Type M
Format
(qp) stffsz.sthint [r3] = f2 normal_form, no_base_update_form
(qp) stffsz.sthint [r3] = f2, imm9 normal_form, imm_base_update_form
(qp) stf8.sthint [r3] = f2 integer_form, no_base_update_form
(qp) stf8.sthint [r3] = f2, imm9 integer_form, imm_base_update_form
(qp) stf.spill.sthint [r3] = f2 spill_form, no_base_update_form
(qp) stf.spill.sthint [r3] = f2, imm9 spill_form, imm_base_update_form
Description
A value, consisting of fsz bytes, is generated from the value in FR f2 and written to memory starting at the address specified by the value in GR r3. In the normal_form, the value in FR f2 is converted to the memory format and then stored. In the normal_form or the integer_form, if the NaT bit corresponding to GR r3 is 1 or if FR f2 contains NaTVal, a Register NaT Consumption fault is taken.
In the spill_form, a 16-byte value from FR f2 is stored without conversion. This instruction is used for spilling a register.
In the imm_base_update form, the value in GR r3 is added to a signed immediate value (imm9) and the result is placed back in GR r3. This base register update is done after the store, and does not affect the store address.
The ALAT is queried using the physical memory address and the access size, and all overlapping entries are invalidated.
The value of the sthint completer specifies the locality of the memory access. A prefetch hint is implied in the base update forms. The address specified by the value in GR r3 after the base update acts as a hint to prefetch the indicated cache line. This prefetch uses the locality hints specified by sthint. Hardware support for stfe (10-byte) instructions that reference a page that is neither a cacheable page with write-back policy nor a NaTPage is optional. On processor models that do not support such stfe accesses, an Unsupported Data Reference fault is raised when an unsupported reference is attempted.
fabs - Floating-point Absolute Value Instruction
fadd - Floating-point Add Instruction
famax - Floating-point Absolute Maximum Instruction
famin - Floating-point Absolute Minimum Instruction
fand - Floating-point AND Instruction
fchkf - Floating-point Check Flags Instruction
fclass - Floating-point Class Instruction
fclrf - Floating-point Clear Flags Instruction
fcmp - Floating-point Compare Instruction
fcvt.xf - Convert Signed Integer to Floating-point Instruction
fcvt.xuf - Convert Unsigned Integer to Floating-point Instruction
Floating-Point Arithmetic Instructions
Floating-Point Memory Access Instructions
Floating-Point Non-Arithmetic Instructions
Floating-Point Pseudo-Operations
Floating-Point Register Transfer Instructions
Floating-Point Status Register (FPSR) Status Field Instructions
fma - Floating-point Multiply Add Instruction
fmax - Floating-point Maximum Instruction
fmerge - Floating-point Merge Instruction
fmin - Floating-point Minimum Instruction
fmix - Floating-point Mix Instruction
fmpy - Floating-point Multiply Instruction
fms - Floating-point Multiply Subtract Instruction
fneg - Floating-point Negate Instruction
fnegabs - Floating-point Negate Absolute Value Instruction
fnma - Floating-point Negative Multiply Add Instruction
fnmpy - Floating-point Negative Multiply Instruction
fnorm - Floating-point Normalize Instruction
for - Floating-point OR Instruction
fpabs - Floating-point Parallel Absolute Value Instruction
fpack - Floating-point Pack Instruction
fpamax - Floating-point Parallel Absolute Value Maximum Instruction
fpamin - Floating-point Parallel Absolute Value Minimum Instruction
fpcmp - Floating-point Parallel Compare Instruction
fpcvt.fx - Convert Parallel Floating-point to Integer Instruction
fpma - Floating-point Parallel Multiply Add Instruction
fpmax - Floating-point Parallel Maximum Instruction
fpmerge - Floating-point Parallel Merge Instructions
fpmin - Floating-point Parallel Minimum Instruction
fpmpy - Floating-point Parallel Multiply Instruction
fpms - Floating-point Parallel Multiply Subtract Instruction
fpneg - Floating-point Parallel Negate Instruction
fpnegabs - Floating-point Parallel Negate Absolute Value Instruction
fpnma - Floating-point Parallel Negative Multiply Add Instruction
fpnmpy - Floating-point Parallel Negative Multiply Instruction
fprcpa - Floating-point Parallel Reciprocal Approximation Instruction
fprsqrta - Floating-point Parallel Reciprocal Square Root Approximation Instruction
frcpa - Floating-point Reciprocal Approximation Instruction
frsqrta - Floating-point Reciprocal Square Root Approximation Instruction
fselect - Floating-point Select Instruction
fsetc - Floating-point Set Controls Instruction
fsub - Floating-point Subtract Instruction
fswap - Floating-point Swap Instruction
fsxt - Floating-point Sign Extend Instruction
fwb - Flush Write Buffers Instruction
fxor - Floating-point Exclusive Or Instruction
getf - Get Floating-point Value or Exponent or Significand Instruction
Integer Multiply and Add (in FP Unit) Instructions
ldf - Floating-point Load Instruction
ldfp - Floating-point Load Pair Instruction
mov fr - Move Floating-point Register Instruction
setf - Set Floating-point Value, Exponent, or Significand Instruction