IBM Support

PM66334: sample program ASMASTXP to validate transactional constraints

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • sample program ASMASTXP to validate transactional constraints
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of HLASM for z/OS.                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: PM66334 ships a new exit ASMAXTXP       *
    *                      and sample program ASMASTXP to validate *
    *                      constraints for the new transactional   *
    *                      memory instructions at assembly time.   *
    ****************************************************************
    * RECOMMENDATION: Apply the PTF provided                       *
    ****************************************************************
    A new listing exit ASMAXTXP provides functionality to validate
    the constraints associated with the new transactional memory
    instructions.
    For example, the exit validates the total number of instructions
    coded between the TBEGINC and TEND instructions does not
    exceed the specified limit.
    Further details of the constraints can be found in the
    z/Architecture Principles of Operation manual.
    

Problem conclusion

Temporary fix

Comments

  • The LISTING exit ASMAXTXP is shipped in SASMMOD1.
    The sample program ASMASTXP is shipped in SASMSAM1.
    The listing exit may issue warning messages as listed below.
    An assembly return code of 4 will be set should the listing
    exit fails any of its tests.
    The "High Level Assembler for z/OS & z/VM & z/VSE
    Programmmer's Guide Release 6" publication (SC26-4941-05)
    will be updated as follows:
    
    --- START OF DOC UPDATES ---
    
        A new appendix will be added:
            Appendix Q. Transactional Memory exit ASMAXTXP
            (z/OS only)
    
        The following text will be added:
            This appendix provides information regarding the use of
            the LISTING exit ASMAXTXP supplied with the High Level
            Assembler.
    
        The section "Function" will be added with the following
        text:
            The LISTING exit ASMAXTXP is used to verify the
            instructions used within a constrained transaction.
            ASMAXTXP performs the following checks for constrained
            transactions:
                1.  The transaction must not exceed more than 32
                    instructions.
                2.  All instructions within the transaction must be
                    within 256 bytes contiguous bytes of storage.
                3.  In addition to all regularly-restricted
                    instructions, i.e. those restricted in a
                    non-constrained transaction, the following
                    instructions are also restricted:
                      a. Any instruction not defined in Chapter 7
                         of the z/Architecture Principles of
                         Operation.
                      b. The only branching instructions are
                         relative branches with a positive relative
                         immediate operand.
                      c. Instructions that cause a classic
                         serialization operation.  Exceptions to
                         this rule include TRANSACTION END and any
                         instructions that cause specific-operand
                         serialization.
                      d. All SS and SSE format instructions.
                      e. A list of individual instructions that may
                         execute in the hardware coprocessor.
    
            Other constraints such as operand alignment and number
            of locations accessed are not possible to check during
            assembly.
    
        The section "Invoking the exit" will be added with the
        following text:
            To invoke the exit, specify the EXIT assembler option
            as follows:
                EXIT(PRTEXIT(ASMAXTXP))
            The sample program ASMASTXP found in SASMSAM1
            can be run with the above assembler option as an
            example of how ASMAXTXP processes constrained
            transactions.
    
        The section "Messages" will be added with the following
        text:
            ASMAXTXP might issue message ASMA701W as follows:
                @ ** ASMA701W LISTING: ASMAXTXP: HLASM R6.0 or
                  higher required.
                  This message is issued because HLASM R6.0 or
                  higher is required to run this exit.
                @ ** ASMA701W LISTING: ASMAXTXP: Could not acquire
                  memory.
                  An attempt to acquire memory failed and the exit
                  could not continue.
                @ ** ASMA701W LISTING: ASMAXTXP: Invalid exit type
                  or request type passed to exit.
                  ASMAXTXP will only process valid LISTING EXIT
                  requests; this message is issued if the listing
                  exit request is invalid.
                @ ** ASMA701W LISTING: ASMAXTXP: TBEGINC base
                  register nonzero.
                  The TBEGINC instruction would cause a
                  specification exception if bits in the base
                  register field are non-zero.
                @ ** ASMA701W LISTING: ASMAXTXP: TBEGINC second
                  operand is invalid.
                  The immediate mask value used in the TBEGINC
                  instruction does not conform to the instruction's
                  specification.
                @ ** ASMA701W LISTING: ASMAXTXP: Transaction
                  exceeds total byte limit.
                  The transaction length is longer than 256 bytes
                  allowed.
                @ ** ASMA701W LISTING: ASMAXTXP: Transaction
                  exceeds maximum instruction count (excluding)
                  TBEGIN and TEND.
                  The number of instructions between the TBEGIN
                  and TEND instructions exceeds 32 instructions.
                @ ** ASMA701W LISTING: ASMAXTXP: TBEGINC
                  allow-AR-modification control is 0.
                  If the allow-AR-modification flag is 0 then the
                  exit cannot guarantee that instructions used
                  within a transaction will not modify access
                  registers.
                @ ** ASMA701W LISTING: ASMAXTXP: Instruction is
                  restricted.
                  This message is issued if the instruction is
                  restricted for example: a privileged instruction,
                  modifying ARs / FRs etc.
                @ ** ASMA701W LISTING: ASMAXTXP: Relative branch
                  target is zero or negative.
                  A relative branch instruction may branch
                  backwards in the program. This is invalid in a
                  constrained transaction.
                @ ** ASMA701W LISTING: ASMAXTXP: Relative branch
                  target exceeds size limit.
                  The relative branch will cause program flow to
                  leave the constrained transaction without a TEND
                  instruction being issued.
                @ ** ASMA701W LISTING: ASMAXTXP: Relative branch
                  mask is 0.
                  The relative branch instruction will never
                  execute because its mask is 0.  ASMAXTXP flags
                  this as a warning.
                @ ** ASMA701W LISTING: ASMAXTXP: STCMH with M3
                  field = 0 and R1 field = 6 or 7.
                  The use of the STCMH instruction becomes
                  restricted when the M3 field value is 0
                  and the R1 field is 6 or 7.
                @ ** ASMA701W LISTING: ASMAXTXP: Warning: DC/DS
                  within transaction.
                  A DC or DS assembler instruction has been
                  detected during assembly within a constrained
                  transaction.  This only occurs if the duplication
                  factor on the instruction is non-zero.
                @ ** ASMA701W LISTING: ASMAXTXP: Code section ended
                  inside transaction.
                  An END statement has been encountered within a
                  constrained transaction that has not been
                  terminated with a TEND instruction.
    
        The end of the messages issued by ASMAXTXP terminates the
        appendix.
    
    --- END OF DOC UPDATES ---
    
    Additional keywords: PM49761 D/T2827
    

APAR Information

  • APAR number

    PM66334

  • Reported component name

    HLASM MVS, VM &

  • Reported component ID

    569623400

  • Reported release

    160

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function / Installability /

  •  

    Xsystem

  • Submitted date

    2012-06-07

  • Closed date

    2012-09-06

  • Last modified date

    2013-07-30

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

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

    UK81557 UK81558 UK81559

Modules/Macros

  • ASMAINFO ASMASTXP ASMAXTXP ASMA9Z   HMQ4160J
    

Publications Referenced
SC26494105    

Fix information

  • Fixed component name

    HLASM MVS, VM &

  • Fixed component ID

    569623400

Applicable component levels

  • R160 PSY UK81558

       UP12/09/08 P F209

  • R360 PSY UK81557

       UP12/09/30 P 1209

  • R689 PSY UK81559

       UP12/09/07 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.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"160","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSENW6","label":"High Level Assembler and Toolkit Feature"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"160","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
30 July 2013