Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Categories Assembler
Created by Guest
Created on Mar 22, 2022

New extended mnemonics needed for branches/jumps following TMLL and friends

New extended mnemonics are needed for "branch/jump [not]mixed" instructions to be used following the newer Test Under Mask instructions.

The older TM instruction never sets CC=2, so the older branch/jump [not]mixed mnemonics (JM, JNM and similar) sufficed.

But those older mnemonics generated masks (B'0100' for "mixed" and B'1011' for "not mixed") that do not take cc=2 into account.

The new TMLL (etc.) instructions can set either cc=1 or cc=2 for two different flavors of "mixed". So if they are followed by (for example) JM or JNM, then the wrong jumping action will occur when CC=2 is set. The resulting bugs will likely be rather difficult to shoot.

I suggest new mnemonics be supported: JMX and JNMX (etc.) that generate B'0110' and B'1001' masks, respectively.



In addition, in the HLASM Reference, Figure 17, part 3, section "Used After Test Under Mask Instructions" never mentions either JM or JNM. It should.

Finally, at the very least, that same section of that same figure should explicitly state that the {B|J}[N]M[R] mnemonics are not suitable for use after TMLL (and similar) instructions.

Idea priority High
  • Guest
    Reply
    |
    Apr 14, 2022

    Hi John,

    It's too bad that LO and LZ were the only possibilities considered back in the day. My guess would be that the idea was not implemented at least partly because they were not the complete solution. They did not cover the mixed case where the coder does not care what the mix actually was.

    I suspect that in the real world, when a coder wants to see if only some flags are on, in that moment they really don't much care what the distribution of the mix actually is.
    - This is what B/JNM gives you for the old TM
    - But it's what B/JNM fails to give you for the new TMLL (and friends). [I wonder how many bugs are coded as a result of this?]

    An B/JMX mnemonic would give you all flavors of the mix case for both TM and TMLL.

    Yes, B'0110' can certainly be used, but I though the idea of branch mnemonics was convenience and reduction of the need for arcane knowledge. Coding B'0110' is neither convenient nor non-arcane.

    Apparently your management has made some sort of policy decision not to implement new mnemonics and instructions. That is regrettable. I do hope you change your mind some day.

  • Guest
    Reply
    |
    Apr 12, 2022
    Extended mnemonics for branches following TMLL and similar were previously suggested by the architects long ago, referring to leftmost one (LO) and leftmost zero (LZ), but were not implemented. We think this is partly because this is such a specific special case and partly because the corresponding Jump mnemonics were already in use with a different meaning. The architects did not suggest any mnemonic to cover both "mixed" cases.

    As a result of this request, we have noticed that the reference manual is currently misleading, in that note 3 added recently after the extended mnemonics table refers to the TMLL condition code being set as for a signed binary integer, but the setting is actually the opposite, in that if the leftmost bit is zero the condition code is set to 1 (Minus or Low) and if it is one the condition code is set to 2 (Plus or High). This effect is related to the useful property of TMLL that if it is applied to a saved 2-bit condition code, it loads that condition code. It is slightly unfortunate from this point of view that in the original System/360 design, the condition codes expressed in bits were 01 = negative and 10 = positive, so the sign of the condition code as a binary number is opposite to the sign it represents! We will update the manual to clarify this note.

    We are also considering how to reorganise the extended mnemonics section to make it more useful and consistent overall, but this will need more time.

    We have no plans to define new mnemonics for these special cases, nor for carry and borrow combinations which are also frequently requested. These can easily be represented instead using an appropriate condition code mask, which can be given an appropriate symbolic name if necessary for clarity.

    If you really want to use a mnemonic following TMLL to select either of the mixed cases individually, I would suggest using the "High" and "Low" mnemonics, where "High" means that the first bit is set and "Low" means that it is not. For both mixed cases, a condition code mask of B'0110' or 6 can be used.

    As we (and the architects) have no current plans to introduce any more extended mnemonics to cover TMLL and similar, we are declining this request.

    - Jonathan Scott, HLASM