6.6.8.5.1 Huge Integer and Subnormal Exceptions

In addition to the IEEE 754-2008/2019 compliant exception support, this macro also offers two additional exceptions and associated masks that some users may find useful.

  • Huge Integer: FSR.HUGI

    Exception signaled whenever a Float-to-Integer conversion operation (FF2DI and FF2LI) results in an integer value that is larger than the destination register can represent.

  • Subnormal Operand: FSR.SUBO

    Exception signaled whenever an operand of an affected instruction is a subnormal value and Subnormals-Are-Zeros (SAZ) mode is disabled (FCR.SAZ = 0). This is the only exception that can be triggered by an operand source condition (all others are related to result conditions).

Table 6-44. Default Exception Results
ExceptionFSR Bit NameDefault Result
InvalidINVAL(2)

Distinguished qNaN or quieted sNaN or

Largest integer result (for FF2DI/FF2LI only)

Divide By ZeroDIV0Correctly signed Infinity(3)
OverflowOVFRounding ModeNearest (Even)Infinity with sign of exact result
ZeroMost positive finite number with sign of exact result
+Infinity

Positive overflow: +Infinity

Negative overflow: Most negative finite number

-Infinity

Positive overflow: Most positive finite number

Negative overflow: -Infinity

UnderflowUDF(1)FCR.FTZ = 0: Rounded subnormal result
FCR.FTZ = 1; Zero with sign of exact result
InexactINXRounded (inexact) result
Huge IntegerHUGILargest integer value with sign of input operand
Subnormal OperatorSUBON/A (input operand exception)
Note:
  1. Under default exception handling, UDF is only set (along with INX) if the result is an inexact underflow. Applies irrespective of whether FTZ mode is enabled or not.
  2. FCPS and FCPQ do not generate a result other than an FSR update. However, INVAL will be set by FCPS if either or both operands are a qNaN or sNaN, or by FCPQ if either or both operands are an sNaN.
  3. 0/0 is a special case (where both the dividend and divisor are not finite) which will return the distinguished qNaN as the result. INVAL will be set but DIV0 will not.