Floating-point Load Instructionldf
Instruction Type M
Format
(qp) ldffsz.fldtype.ldhint f1 = [r3] no_base_update_form
(qp) ldffsz.fldtype.ldhint f1 = [r3], r2 reg_base_update_form
(qp) ldffsz.fldtype.ldhint f1 = [r3], imm9 imm_base_update_form
(qp) ldf8.fldtype.ldhint f1 = [r3] integer_form, no_base_update_form
(qp) ldf8.fldtype.ldhint f1 = [r3], r2 integer_form, reg_base_update_form
(qp) ldf8.fldtype.ldhint f1 = [r3], imm9 integer_form, imm_base_update_form
(qp) ldf.fill.ldhint f1 = [r3] fill_form, no_base_update_form
(qp) ldf.fill.ldhint f1 = [r3], r2 fill_form, reg_base_update_form
(qp) ldf.fill.ldhint f1 = [r3], imm9 fill_form, imm_base_update_form
Description
A value consisting of fsz bytes is read from memory starting at the address specified by the value in GR r3. The value is then converted into the floating-point register format and placed in FR f1. The fldtype completer specifies special load operations.
For the integer_form, an 8-byte value is loaded and placed in the significand field of FR f1 without conversion. The exponent field of FR f1 is set to the biased exponent for 2.063 (0x1003E) and the sign field of FR f1 is set to positive(0).
For the fill_form, a 16-byte value is loaded, and the appropriate fields are placed in FR f1 without conversion. This instruction is used for reloading a spilled register.
In the base update forms, the value in GR r3 is added to either a signed immediate value (imm9) or a value from GR r2, and the result is placed back in GR r3. This base register update is done after the load, and does not affect the load address. In the reg_base_update_form, if the NaT bit corresponding to GR r2 is set, then the NaT bit corresponding to GR r3 is set and no fault is raised.
For the non-speculative load types, if NaT bit associated with GR r3 is 1, a Register NaT Consumption fault is taken. For speculative and speculative advanced loads, no fault is raised, and the exception is deferred. For the base-update calculation, if the NaT bit associated with GR r2 is 1, the NaT bit associated with GR r3 is set to 1 and no fault is raised.
The value of the ldhint modifier 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 ldhint. Prefetch and locality hints do not affect program functionality and may be ignored by the implementation.
In the no_base_update form, the value in GR r3 is not modified and no prefetch hint is implied.
The PSR.mfl and PSR.mfh bits are updated to reflect the modification of FR f1.
Hardware support for ldfe (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 ldfe accesses, an Unsupported Data Reference fault is raised when an unsupported reference is attempted. The fault is delivered only on the normal, advanced, and check load flavors. Control-speculative flavors of ldfe always defer the Unsupported Data Reference fault.
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
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
fmpy - Floating-point Multiply Instruction
fms - Floating-point Multiply Subtract Instruction
fneg - Floating-point Negate 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
fcvt.xuf - Convert Unsigned Integer to Floating-point Instruction
fpma - Floating-point Parallel Multiply Add Instruction
fpmax - Floating-point Parallel Maximum Instruction
fpmin - Floating-point Parallel Minimum Instruction
fpmerge - Floating-point Parallel Merge Instructions
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
getf - Get Floating-point Value or Exponent or Significand Instruction
Integer Multiply and Add (in FP Unit) Instructions
ldfp - Floating-point Load Pair Instruction
mov fr - Move Floating-point Register Instruction
setf - Set Floating-point Value, Exponent, or Significand Instruction