IBM Support

PH45898: The IGZXDIVZ sample does not return expected values for infinity with an IEEE-Division-By-Zero operation

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • In environments where vector registers are active, for example
    Java 8, the infinity placed in the floating point area of the
    resume state is being replaced by values in the vector register
    area of the resume state.
    
    (The floating point registers are colocated with the upper
    halves of vector registers 0-15 in the hardware, but not in the
    resume state.)
    

Local fix

  • Use a prior Java version, such as Java 7.1.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 5 and later        *
    *                 releases running programs that use           *
    *                 IGZXDIVZ handler sample.                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: The IGZXDIVZ handler sample may         *
    *                      incorrectly result in an unexpected     *
    *                      value instead of "infinity" with an     *
    *                      IEEE divide by zero operation.          *
    ****************************************************************
    * RECOMMENDATION: Install the provided PTF.                    *
    ****************************************************************
    The IGZXDIVZ handler sample failed to account for the
    possibility that the vector registers might be active. In that
    case, the "infinity" placed by the handler in the target
    floating point register of the instruction receiving the
    division-by-zero was being overwritten by the corresponding
    vector register value, as the vector registers are restored
    last during the resume processing if active.
    
    COB0501T/K COB0502T/K COB0601T/K COB0602T/K COB0603T/K
    COB0604T/K
    

Problem conclusion

  • Sample IGZXDIVZ has been updated to correctly handle when
    an IEEE divide by zero operation occurs and vector registers
    are active. The IGZXDIVZ places a correct "infinity" value.
    
    Follow the instructions in the IGZXDIVZ sample installed by this
    PTF to compile and link the condition handler into the SCEERUN
    dataset, and use the LE runtime option USRHDLR with
    the affected application.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH45898

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    7D0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-04-25

  • Closed date

    2023-04-11

  • Last modified date

    2023-05-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  • IGZCEV4  IGZCJNI2 IGZLLIBV IGZXAPI  IGZXCA31 IGZXCDA  IGZXD24
    IGZXDIVZ IGZXDMR  IGZXJNI2 IGZXLPIO IGZXLPKA IGZXLPKB IGZXLPKC
    IGZXLPKD IGZXLPKE IGZXLPKF IGZXLPKG IGZXPK2
    

Fix information

  • Fixed component name

    LE ENT COBOL LI

  • Fixed component ID

    568819812

Applicable component levels

  • R7C0 PSY UI91392

       UP23/04/26 P F304

  • R7D0 PSY UI91393

       UP23/04/26 P F304

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7D0","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
03 May 2023