4–72 Alpha Architecture Handbook
• Traps are imprecise, and it is not always possible to determine which instruction trig-
gered a trap or the operands of that instruction.
• An underflow trap produces a zero.
• A conversion to integer trap with an integer overflow produces the low-order bits of the
integer.
• The result of any other operation that traps is UNPREDICTABLE.
When /SU or /SV mode is specified:
• Arithmetic is performed on all IEEE values, both finite and non-finite.
• Alpha systems support all IEEE features except inexact exception (which requires /SUI
or /SVI):
– The IEEE standard specifies a default where exceptions do not fault or trap.In com-
bination with the FPCR, this mode allows disabling exceptions and producing
IEEE compliant nontrapping results. See Sections 4.7.7.10 and 4.7.7.11.
– Each Alpha operating system provides a way to optionally signal IEEE floating-
point exceptions. This mode enables the IEEE status flags that keep a record of
each exception that is encountered. An Alpha operating system uses the IEEE float-
ing-point control (FP_C) quadword, described in Section B.2.1, to maintain the
IEEE status flags and to enable calls to IEEE user signal handlers.
• Exceptions signaled in this mode are precise and an application can locate the instruc-
tion that caused the exception, along with its operand values. See Section 4.7.7.3.
When /SUI or /SVI mode is specified:
• Arithmetic is performed on all IEEE values, both finite and non-finite.
• Inexact exceptions are supported, along with all the other IEEE features supported by
the /SU or /SV mode.
A summary of the IEEE trapping modes, instruction notation, and their meaning follows in
Table 4–9:
Table 4–9: Summary of IEEE Trapping Modes
Trap Mode Notation Meaning
Underflow disabled and
inexact disabled
No qualifier Imprecise
Underflow enabled and
inexact disabled
/U
/SU
Imprecise
Precise exception completion
Underflow enabled and
inexact enabled
/SUI Precise exception completion
Integer overflow disabled and
inexact disabled
No qualifier Imprecise