|
VMS Help CC, /IEEE_MODE *Conan The Librarian |
/IEEE_MODE=option
/IEEE_MODE=DENORM_RESULTS (D)
Selects the IEEE floating-point mode to be used.
Options:
FAST During program execution, only finite values (no
infinities, NaNs, or denorms) are created.
Exceptional conditions, such as floating point
overflow and divide by zero, are fatal.
UNDERFLOW_TO_ZERO Generate infinities and NaNs. Flush
denormalized results and underflow to zero
without exceptions.
DENORM_RESULTS Same as UNDERFLOW_TO_ZERO, except that denorms
are generated. This is the default for I64
systems.
INEXACT Same as DENORM_RESULTS, except that inexact
values are trapped. This is the slowest mode.
On Alpha sytems, the /IEEE_MODE qualifier generally has its
greatest effect on the generated code of a compilation. When calls
are made between functions compiled with different /IEEE_MODE
qualifiers, each function produces the /IEEE_MODE behavior with
which it was compiled.
On I64 systems, the /IEEE_MODE qualifier primarily affects only the
setting of a hardware register at program startup. In general, the
/IEEE_MODE behavior for a given function is controlled by the
/IEEE_MODE option specified on the compilation that produced the
main program: the startup code for the main program sets the
hardware register according the command-line qualifiers used to
compile the main program.
When applied to a compilation that does not contain a main program,
the /IEEE_MODE qualifier does have some effect: it might affect
the evaluation of floating-point constant expressions, and it is
used to set the EXCEPTION_MODE used by the math library for calls
from that compilation. But the qualifier has no effect on the
exceptional behavior of floating-point calculations generated as
inline code for that compilation. Therefore, if floating-point
exceptional behavior is important to an application, all of its
compilations, including the one containing the main program, should
be compiled with the same /IEEE_MODE setting.
Even on Alpha systems, the particular setting of
/IEEE_MODE=UNDERFLOW_TO_ZERO has this characteristic: its primary
effect requires the setting of a runtime status register, and so it
needs to be specified on the compilation containing the main
program in order to be effective in other compilations.
|
|