IBM Support

PH31153: STRUCTURED PROGRAMMING MACROS COMPARE AND BRANCH SUPPORT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • The toolkit Structured Programming Macros should support the
    combined Compare and Branch instructions such as CIJ, available
    since z10.  It would also be helpful to provide "C" and "B"
    mnemonics for "Carry" and "Borrow" conditions following unsigned
     arithmetic operations.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Structured Programming Macros in    *
    *                 HLASM 1.6 Toolkit for z/OS, z/VM and z/VSE   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Structured Programming Macros support   *
    *                      for Compare and Branch instructions     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The HLASM Toolkit structured programming macros do not support
    the use of combined compare-and-branch instructions, which are
    expected to perform better than separate instructions and do not
    affect the condition code.
    
    Also, the macros do not support Carry and Borrow conditions.
    

Problem conclusion

Temporary fix

Comments

  • The combined compare-and-branch instructions (available since
    z10) can now be used in condition expressions when using the
    structured programming macros.  This consists of the following
    instructions:
    
      CIB     CGIB    CLIB    CLGIB
      CIJ     CGIJ    CLIJ    CLGIJ
      CRB     CGRB    CLRB    CLGRB
      CRJ     CGRJ    CLRJ    CLGRJ
    
    These instructions should be used without specifying the branch
    address, which will be filled in by the macros.
    
    Example:
    
             IF    (CIJ,R15,GT,4)
    
    Note that these instructions do not set the condition code, so
    if the following term in a condition only tests the condition
    code, this will not test the result of the comparison but rather
    any previous value of the condition code.
    
    Also, carry and borrow conditions following logical arithmetic
    instructions can now be indicated by C for Carry (representing
    CC mask 3) and B for Borrow (representing CC mask 12, including
    support for the Subtract Logical with Borrow instructions).
    
    DOCUMENTATION UPDATES:
    
    The following updates are made to the "Toolkit Feature User's
    Guide", GC26-8710-12:
    
    The following text is added to the summary of changes:
    
      Changes since the twelfth edition:
    
      - Structured programming macro support for compare and branch
        instructions (APAR PH31153)
    
      - Structured programming macro support for Carry and Borrow
        condition mnemonics (APAR PH31153)
    
    In Table 3, "Mnemonics and complements", the second row of the
    is modified as follows to include Carry and Borrow mnemonics:
    
      +-----------------+---------+-------------------+------------+
      |After arithmetic | P, M, Z,| plus, minus, zero,| NP, NM, NZ,|
      |instructions     | O, C, B | overflow, carry,  | NO, NC, NB |
      |                 |         | borrow            |            |
      +-----------------+---------+-------------------+------------+
    
    In the text for "IF macro option C" the following paragraph is
    inserted before the last paragraph starting "In all Option C
    formats":
    
      Combined compare and branch instructions (such as CRB and CIJ)
      may be used provided that the program will be executed only on
      hardware which supports them (IBM z10 and above).  In that
      case the branch address operand should be omitted, as it will
      be filled in automatically by the macros.
    
    END OF DOCUMENTATION UPDATES
    ×**** PE20/11/10 FIX IN ERROR. SEE APAR PH31448  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PH31153

  • Reported component name

    HLASM MVS, VM &

  • Reported component ID

    569623400

  • Reported release

    16A

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function / Xsystem

  • Submitted date

    2020-11-03

  • Closed date

    2020-11-09

  • Last modified date

    2020-12-01

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

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

    UI72456 UI72457 UI72458

Modules/Macros

  •    ASMMGBLV ASMMGETC ASMMIFPR ASMMPSHI ASMMSP
    

Publications Referenced
GC26871012    

Fix information

  • Fixed component name

    HLASM TOOLKIT

  • Fixed component ID

    569623401

Applicable component levels

  • R16A PSY UI72456

       UP20/11/10 P F011

  • R36A PSY UI72457

       UP20/11/30 P 2011

  • R6IM PSY UI72458

       UP20/11/09 I 1000

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.

[{"Line of Business":{"code":null,"label":null},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSENW6","label":"High Level Assembler and Toolkit Feature"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"16A"}]

Document Information

Modified date:
02 December 2020