Itanium(R) processor topicFloating-point Store Instruction

stf

Operation Font Conventions

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.


Related Topics:

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 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

st - Store Instruction