IEEE binary floating-point introduction

Starting with the IBM® S/390® Generation 5 Server, support for IEEE binary floating-point (IEEE floating-point) as defined by the ANSI/IEEE Standard 754-1985, IEEE Standard for Binary Floating-Point Arithmetic, is included. Starting with Version 2 Release 6, OS/390® (including the Language Environment® and C/C++ components) has added support for IEEE floating-point.
Note:
  1. You must have OS/390 Release 6 or later to use the IEEE floating-point instructions. In OS/390 Version 2 Release 6, the base control program (BCP) was enhanced to support the new IEEE floating-point hardware in the IBM S/390 Generation 5 Server. This enabled programs running on OS/390 Release 6 or later to use the IEEE floating-point instructions and 16 floating-point registers. In addition, the BCP provided simulation support for all the new floating-point hardware instructions. This enabled applications that make light use of IEEE floating-point, and which could tolerate the overhead of software simulation, to execute on OS/390 Release 6 or later without requiring an IBM S/390 Generation 5 Server.
  2. The terms binary floating-point and IEEE floating-point are used interchangeably. The abbreviations BFP and HFP, which are used in some function names, refer to binary floating-point and S/390 hexadecimal floating-point (hexadecimal floating-point), respectively.
  3. IEEE binary floating-point is fully supported in a CICS® environment only if CICS TS Version 4 or later is in use.

The z/OS® XL C/C++ compiler provides a FLOAT option to select the format of floating-point numbers produced in a compile unit. The FLOAT option allows you to select either IEEE floating-point or hexadecimal floating-point format. For more information about the FLOAT option, see FLOAT in z/OS XL C/C++ User's Guide.

The C/C++ runtime library interfaces support both IEEE floating-point and hexadecimal floating-point formats. For more information about floating-point interfaces, see Floating-point conversions in z/OS XL C/C++ Language Reference.

The primary documentation for the IEEE floating-point support is contained in the z/Architecture® Principles of Operation, SA22-7832, and z/OS XL C/C++ Language Reference.

IEEE floating-point is provided on S/390 primarily to enhance interoperability and portability between S/390 and other platforms. It is anticipated that IEEE floating-point will be most commonly used for new and ported applications, and in emerging environments, such as Java™. Customers should not migrate existing applications that use hexadecimal floating-point to IEEE floating-point, unless there is a specific reason (such as a need to interoperate with a non-S/390 platform).

IBM does not recommend mixing floating-point formats in an application. However, for applications which must handle both formats, the C/C++ runtime library does provide some support which is described below.