nld Utility
nld and noft Manual — 520384-003
2- 25
Run-Time Consistency Checking
Run-Time Consistency Checking
If a program tries to use a processor that does not support IEEE floating-point format,
then process creation error code 64 occurs (
IEEE floating-point support not
available on this processor
). To determine whether a processor can run IEEE
floating-point instructions, programs can call the
PROCESSOR_GETINFOLIST_
procedure. For more information about this procedure, see the
Guardian Procedure
Calls Reference Manual
.
Run-time consistency checking includes a check for
floattype
consistency between
the program file and the user library file, if one is used. IEEE and Tandem floating-point
formats use different data formats and calling conventions: IEEE floating-point values
are typically passed in IEEE floating-point registers, while Tandem floating-point values
are passed in general purpose registers. Problems can occur if a function using one
floating-point format calls a function using the other format. Checks are performed at
process creation to ensure that the user library (if there is one) has a
floattype
compatible with that of the program file. If not, the program is not allowed to run.
If the
floattype
attribute of the program file is IEEE and
floattype
attribute of the
user library file is Neutral, the program is allowed to run, and the C/C++ run-time
libraries operate in IEEE mode.
Even if the user library is marked with a
floattype
attribute that conflicts with the
program file, the program can use the library if the program does not call anything in
the user library that uses floating point. In this case, you must mark the program file
with the
-set float_lib_overrule on
command to disregard the
floattype
attribute of the user library file (see
Overruling the Run-Time Consistency Check
on
page 2-26).
TNS/R Native User Libraries
If you are using a TNS/R native user library, the library file must use the same floating-
point format as the program, and the library must be marked accordingly. If the user
library does not use floating point at all, you can mark the library
NEUTRAL_FLOAT
using the
-set floattype
or
-change floattype
option. Then the user library
can be used by any kind of program.
Table 2-5. Incompatible Program File and User Library floattypes (TNS)
floattype in program file
floattype in user library file
IEEE
Tandem
Tandem
IEEE
Neutral
IEEE
Summary of Contents for nld
Page 12: ...Contents nld and noft Manual 520384 003 x ...
Page 16: ...What s New in This Manual nld and noft Manual 520384 003 xiv Miscellaneous ...
Page 22: ...About This Manual nld and noft Manual 520384 003 xx Change Bar Notation ...
Page 28: ...Introduction to the Utilities nld and noft Manual 520384 003 1 6 strip ...
Page 60: ...nld Utility nld and noft Manual 520384 003 2 32 Declaration and Definition ...
Page 78: ...nld Options nld and noft Manual 520384 003 3 18 y ...
Page 90: ...noft Utility nld and noft Manual 520384 003 4 12 Debugging With noft ...
Page 150: ...strip Utility nld and noft Manual 520384 003 7 2 ...
Page 242: ...nld Diagnostic Messages nld and noft Manual 520384 003 10 82 Informational Messages ...
Page 278: ...noft Diagnostic Messages nld and noft Manual 520384 003 11 36 Syntax Errors ...
Page 286: ...ar Diagnostic Messages nld and noft Manual 520384 003 12 8 ...
Page 314: ...Sample nld and noft Session nld and noft Manual 520384 003 A 28 LISTSRLFIXUPS ...
Page 330: ...Index nld and noft Manual 520384 003 Index 10 Special Characters ...