Compaq ECQD2KCTE Laptop User Manual


 
4–62 Alpha Architecture Handbook
4.7 Floating-Point Instructions
Alpha provides instructions for operating on floating-point operands in each of four data
formats:
F_floating (VAX single)
G_floating (VAX double, 11-bit exponent)
S_floating (IEEE single)
T_floating (IEEE double, 11-bit exponent)
Data conversion instructions are also provided to convert operands between floating-point and
quadword integer formats, between double and single floating, and between quadword and
longword integers.
Note:
D_floating is a partially supported datatype; no D_floating arithmetic operations are
provided in the architecture. For backward compatibility, exact D_floating arithmetic may
be provided via software emulation. D_floating "format compatibility," in which binary
files of D_floating numbers may be processed but without the last 3 bits of fraction
precision, can be obtained via conversions to G_floating, G arithmetic operations, then
conversion back to D_floating.
The choice of data formats is encoded in each instruction. Each instruction also encodes the
choice of rounding mode and the choice of trapping mode.
All floating-point operate instructions (not including loads or stores) that yield an F_floating or
G_floating zero result must materialize a true zero.
4.7.1 Single-Precision Operations
Single-precision values (F_floating or S_floating) are stored in the floating-point registers in
canonical form, as subsets of double-precision values, with 11-bit exponents restricted to the
corresponding single-precision range, and with the 29 low-order fraction bits restricted to be all
zero.
Single-precision operations applied to canonical single-precision values give single-precision
results. Single-precision operations applied to non-canonical operands give UNPREDICT-
ABLE results.
Longword integer values in floating-point registers are stored in bits <63:62,58:29>, with bits
<61:59> ignored and zeros in bits <28:0>.
4.7.2 Subsets and Faults
All floating-point operations may take floating disabled faults. Any subsetted floating-point
instruction may take an Illegal Instruction Trap. These faults are not explicitly listed in the
description of each instruction.