IBM Support

PH42050: 20-BIT ADDRESSABILITY FOR DEPENDENT USING

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A dependent USING statement is currently required to be resolved
    using 12-bit addressing.  For programs which use 20-bit
    addressing, this can be an unhelpful limitation.  Also, the
    Using Map report and Active Usings headings may show incorrect
    start and range values if a dependent USING base address is not
    the start of a section.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of HLASM for z/OS, z/VM, z/VSE and     *
    *                 Linux                                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: Dependent USING incorrectly required    *
    *                      12 bit displacement to resolve          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    1. A dependent USING instruction is rejected if the second
       operand address cannot be referenced using a 12-bit
       displacement, although the documentation suggests that a
       20-bit displacement should also be accepted.  This can be
       worked around, but is an unhelpful limitation when writing
       programs that use 20-bit displacements.
    
    2. The USING Map information in the value field for a dependent
       USING was incorrect when the specified base address was not
       the start of a section.  It should always be the offset of
       the second (address) operand from the start of the supporting
       ordinary USING.  Similar problems were also present in the
       register offset values shown for dependent USINGs in the
       Active Usings headings.
    
    3. If a USING statement was used to resolve a qualified
       (labeled) dependent USING, the last used statement and
       maximum displacement in the USING Map were incorrectly
       updated even though this should not count as a reference.
    
    4. If an end address is specified on a dependent USING, the
       documentation says that the range will be limited either to
       that end address or to the end address of the original USING,
       whichever is lesser.  This check was not complete, so the
       range of a dependent USING was not being limited by an end
       address specified on the original USING.
    
    5. If the Active Using headers included a nesting depth, there
       should have been one blank before the first USING item.
    

Problem conclusion

  • 1. If the selected OPTABLE option supports 20-bit addressing, a
       dependent USING statement is now accepted whenever the second
       operand address is addressable using either a 12-bit
       displacement or a signed 20-bit displacement if necessary.
    
       The displacement value in the object code columns of the
       USING statement is now increased to five hexadecimal digits
       (a signed 20-bit displacement) if the first byte is non-zero.
    
    2. The value field shown in the USING map has been corrected for
       a dependent USING where the base address is not at the start
       of a section.  The offset may now be a negative value when a
       20-bit displacement is used.
    
       The active USING headings have also been corrected for
       similar existing problems with dependent USINGs and updated
       to show correct information for 20-bit dependent USING
       statements.  If the second operand address is not addressable
       by a 12-bit displacement, then the 12-bit range is now shown
       as '(0)'.  Also, if the range of addressability for a
       dependent USING is simply to the end of the base registers,
       the range is omitted, as for an ordinary USING, even if the
       start of range is offset from the first base register.
    
    3. The last used statement and maximum displacement in the USING
       map are no longer updated when the USING statement is being
       used only to resolve another USING statement.
    
    4. If the end address specified on a dependent USING is beyond
       the end address of the original USING, it is now limited to
       match the original USING, as documented.
    
    5. When the Active Using headers include a nesting depth, there
       is now a blank after "(n):" before the first USING item.
    
    DOCUMENTATION UPDATES:
    
    In the HLASM Language Reference, SC26-4940, in the topic
    "Dependent USING instruction", the second sentence of the
    description of the address operand is modified as follows:
    
      The range of an active USING is considered to be that which is
      valid for generating 12 bit displacements, or for signed
      20 bit displacements if the specified OPTABLE level includes
      support for instructions with displacements in this form.
    
    END OF DOCUMENTATION UPDATES
    

Temporary fix

Comments

  • ×**** PE22/01/25 FIX IN ERROR. SEE APAR PH42918  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PH42050

  • Reported component name

    HLASM MVS, VM &

  • Reported component ID

    569623400

  • Reported release

    160

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-11-12

  • Closed date

    2021-11-16

  • Last modified date

    2022-01-25

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

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

    UI78084 UI78085 UI78086

Modules/Macros

  •    ASMAINFO ASMA2F   ASMA2W   ASMA26   ASMA9Z
    

Publications Referenced
SC26494009    

Fix information

  • Fixed component name

    HLASM MVS, VM &

  • Fixed component ID

    569623400

Applicable component levels

  • R160 PSY UI78085

       UP21/11/17 P F111

  • R360 PSY UI78084

       UP21/11/16 P 2111

  • R689 PSY UI78086

       UP21/11/16 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":"LOB10","label":"Data and AI"},"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":"160"}]

Document Information

Modified date:
26 January 2022