Fujitsu Fujitsu SPARC64 V manual Fpexceptionother Exception ftt=unfinishedFPop

Models: Fujitsu SPARC64 V

1 255
Download 255 pages 53.5 Kb
Page 73
Image 73

SPARC64 V floating-point hardware has its specific range of computation. If either the values of input operands or the value of the intermediate result shows that the computation may not fall in the range that hardware provides, SPARC64 V generates an fp_exception_other exception (tt = 02216) with FSR.ftt = 0216 (unfinished_FPop) and the operation is taken over by software.

The kernel emulation routine completes the remaining floating-point operation in accordance with the IEEE 754-1985 floating-point standard (impl. dep. #3).

SPARC64 V implements a nonstandard mode, enabled when FSR.NS is set (see FSR_nonstandard_fp (NS) on page 18). Depending on the setting in FSR.NS, the behavior of SPARC64 V with respect to the floating-point computation varies.

B.6.1 fp_exception_other Exception (ftt=unfinished_FPop)

SPARC64 V may invoke an fp_exception_other (tt = 02216) exception with FSR.ftt =

unfinished_FPop (ftt = 0216) in FsTOd, FdTOs, FADD(s,d), FSUB(s,d),

FsMULd(s,d), FMUL(s,d), FDIV(s,d), FSQRT(s,d) floating-point instructions. In addition, Floating-point Multiply-Add/Subtract instructions generate the exception, since the instruction is the combination of a multiply and an add/subtract operation: FMADD(s,d), FMSUB(s,d), FNMADD(s,d), and FNMADD(s,d).

The following basic policies govern the detection of boundary conditions:

1. When one of the operands is a denormalized number and the other operand is a normal non-zero floating-point number (except for a NaN or an infinity), an fp_exception_other with unfinished_FPop condition is signalled. The cases in which the result is a zero or an overflow are excluded.

2. When both operands are denormalized numbers, except for the cases in which the result is a zero or an overflow, an fp_exception_other with unfinished_FPop condition is signalled.

3. When both operands are normal, the result before rounding is a denormalized number and TEM.UFM = 0, and fp_exception_other with unfinished_FPop condition is signalled, except for the cases in which the result is a zero.

When the result is expected to be a constant, such as an exact zero or an infinity, and an insignificant computation will furnish the result, SPARC64 V tries to calculate the result without signalling an unfinished_FPop exception.

62 SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002

Page 73
Image 73
Fujitsu Fujitsu SPARC64 V manual Fpexceptionother Exception ftt=unfinishedFPop