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 C/C++
Created by Guest
Created on Dec 4, 2018

Need more builtin functions in C/C++ compiler

In the XL C/C++ Programming Guide there are only a few General instructions like __pack and __unpack.
In order for Metal C to be used for system software it would be better if these instructions were expanded so __asm would not have to be used as often.
My list of what I would like first:
esar
ssar
sar
spka
mvcl
Another Language we use has these:
AL ADD LOGICAL
ALC ADD LOGICAL WITH CARRY
AP ADD DECIMAL
B UNCONDITIONAL BRANCH
BASSM BRANCH AND SAVE AND SET MODE
BC BRANCH ON CONDITION
BE BRANCH ON EQUAL
BH BRANCH ON HIGH
BL BRANCH ON LOW
BM BRANCH ON MINUS
BNE BRANCH ON NOT EQUAL
BNH BRANCH ON NOT HIGH
BNL BRANCH ON NOT LOW
BNM BRANCH ON NOT MINUS
BNO BRANCH ON NOT OVERFLOW
BNP BRANCH ON NOT PLUS
BNZ BRANCH ON NOT ZERO
BO BRANCH ON OVERFLOW
BP BRANCH ON PLUS
BRC BRANCH RELATIVE ON CONDITION
BRCL BRANCH RELATIVE ON CONDITION LONG
BSM BRANCH AND SET MODE
BZ BRANCH ON ZERO
CDS COMPARE DOUBLE AND SWAP
CDSG COMPARE DOUBLE AND SWAP
CFC COMPARE AND FORM CODEWORD
CKSM CHECK SUM
CLCL COMPARE LOGICAL LONG
CLCLE COMPARE LOGICAL LONG EXTENDED
CLST COMPARE LOGICAL STRING
CP COMPARE DECIMAL
CPYA COPY ACCESS REGISTER
CS COMPARE AND SWAP
CSG COMPARE AND SWAP
CSCH CLEAR SUBCHANNEL
CVB CONVERT TO BINARY
CVBG CONVERT TO BINARY
CVD CONVERT TO DECIMAL
CVDG CONVERT TO DECIMAL
DIAG DIAGNOSE
DP DIVIDE DECIMAL
EAR EXTRACT ACCESS REGISTER
ED EDIT
EDMK EDIT AND MARK
EFPC EXTRACT FLOATING POINT
CONTROL REGISTER
EPAR EXTRACT PRIMARY ADDRESS SPACE NUMBER
EREG EXTRACT STACKED REGISTERS
EREGG EXTRACT STACKED REGISTERS
ESAR EXTRACT SECONDARY ADDRESS SPACE NUMBER
ESEA EXTRACT AND SET EXTENDED AUTHORITY
ESTA EXTRACT STACKED STATE
FLOGR FIND LEFTMOST ONE
HSCH HALT SUBCHANNEL
IAC INSERT ADDRESS SPACE CONTROL
IPK INSERT PSW KEY
IPM INSERT PROGRAM MASK
ISKE INSERT STORAGE KEY EXTENDED
IVSK INSERT VIRTUAL STORAGE KEY
LAE LOAD ADDRESS EXTENDED
LAM LOAD ACCESS MULTIPLE
LARL LOAD ADDRESS RELATIVE LONG
LCTL LOAD CONTROL
LCTLG LOAD CONTROL
LFPC LOAD FLOATING POINT CONTROL REGISTER
LLGTR LOAD LOGICALBIT
LM LOAD MULTIPLE
LMG LOAD MULTIPLE
LMH LOAD MULTIPLE HIGH
LPSW LOAD PSW
LPSWE LOAD PSW EXTENDED
LRA LOAD REAL ADDRESS
LRAG LOAD REAL ADDRESS
LURA LOAD USING REAL ADDRESS
LURAG LOAD USING REAL ADDRESS
MC MONITOR CALL
MP MULTIPLY DECIMAL
MSCH MODIFY SUBCHANNEL
MSTA MODIFY STACKED STATE
MVC MOVE CHARACTERS
MVCDK MOVE WITH DESTINATION KEY
MVCK MOVE WITH KEY
MVCL MOVE LONG
MVCLE MOVE LONG EXTENDED
MVCP MOVE TO PRIMARY
MVCS MOVE TO SECONDARY
MVCSK MOVE WITH SOURCE KEY
MVN MOVE NUMERICS
MVO MOVE WITH OFFSET
MVST MOVE STRING
MVZ MOVE ZONES
PACK-PACK
PALB PURGE ALB
PC PROGRAM CALL
PFD PREFETCH DATA, PFDRL
PREFETCH DATA RELATIVE LONG
PKA PACK ASCII
PLO PERFORM LOCKED OPERATION
PR PROGRAM RETURN
PT PROGRAM TRANSFER
RCHP RESET CHANNEL PATH
RLL ROTATE LEFT SINGLE LOGICAL
RLLG ROTATE LEFT SINGLE LOGICAL
RSCH RESUME SUBCHANNEL
SAC SET ADDRESS SPACE CONTROL
SAL SET ADDRESS LIMITS
SAR SET ACCESS REGISTER
SCHM SET CHANNEL MONITOR
SCK SET CLOCK
SCKC SET CLOCK COMPARATOR
SFPC SET FLOATING POINT CONTROL
REGISTER
SIGP SIGNAL PROCESSOR
SL SUBTRACT LOGICAL
SLA SHIFT LEFT SINGLE
SLAG SHIFT LEFT SINGLE
SLB SUBTRACT LOGICAL WITH BORROW
SLDA SHIFT LEFT DOUBLE
SLDL SHIFT LEFT DOUBLE LOGICAL
SLL SHIFT LEFT SINGLE LOGICAL
SLLG SHIFT LEFT SINGLE LOGICAL
SP SUBTRACT DECIMAL
SPKA SET PSW KEY FROM ADDRESS
SPM SET PROGRAM MASK
SPT SET CPU TIMER
SPX SET PREFIX
SRA SHIFT RIGHT SINGLE
SRAG SHIFT RIGHT SINGLE
SRDA SHIFT RIGHT DOUBLE
SRDL SHIFT RIGHT DOUBLE LOGICAL
SRL SHIFT RIGHT SINGLE LOGICAL
SRLG SHIFT RIGHT SINGLE LOGICAL
SRNM SET FLOATING POINT
ROUNDING MODE
SRP SHIFT AND ROUND DECIMAL
SRST SEARCH STRING
SSAR SET SECONDARY ADDRESS SPACE
NUMBER
SSCH START SUBCHANNEL
SSKE SET STORAGE KEY EXTENDED
SSM SET SYSTEM MASK
STAM STORE ACCESS MULTIPLE
STAP STORE CPU ADDRESS
STCK STORE CLOCK
STCKC STORE CLOCK COMPARATOR
STCMH STORE CHARACTERS UNDER
MASK
STCPS STORE CHANNEL PATH STATUS
STCRW STORE CHANNEL REPORT
WORD
STCTG STORE CONTROL
STCTL STORE CONTROL
STFPC STORE FLOATING POINT
CONTROL REGISTER
STIDP STORE CPU ID
STCKE STORE CLOCK EXTENDED
STM STORE MULTIPLE
STMG STORE MULTIPLE
STMH STORE MULTIPLE HIGH
STNSM STORE THEN AND SYSTEM
MASK
STOSM STORE THEN OR SYSTEM MASK
STPT STORE CPU TIMER
STPX STORE PREFIX
STRAG STORE REAL ADDRESS
STSCH STORE SUBCHANNEL
STURA STORE USING REAL ADDRESS
STURG STORE USING REAL ADDRESS
SVC SUPERVISOR CALL
TAR TEST ACCESS REGISTER
TMH TEST UNDER MASK
TMHH TEST UNDER MASK
TMHL TEST UNDER MASK
TML TEST UNDER MASK
TP TEST DECIMAL
TPI TEST PENDING INTERRUPTS
TPROT TEST PROTECTION
TR TRANSLATE
TRE TRANSLATE EXTENDED
TROO TRANSLATE ONE TO ONE
TROT TRANSLATE ONE TO TWO
TRT TRANSLATE AND TEST
TRTO TRANSLATE TWO TO ONE
TRTR TRANSLATE AND TEST REVERSE
TRTT TRANSLATE TWO TO TWO
TS TEST AND SET
TSCH TEST SUBCHANNEL
UNPK-UNPACK
UNPKA UNPACK ASCII
UPT UPDATE TREE
ZAP ZERO AND ADD DECIMAL

Idea priority Medium
  • Guest
    Reply
    |
    Mar 8, 2019

    We add new built-in functions as we can but we can't commit to any particular one. This will depend on the amount of resources available at any given time. We're rejecting for now, but will keep the list handy.

  • Guest
    Reply
    |
    Jan 2, 2019

    This RFE is being investigated further.