Here is example of what is possible as far as generating 64 z9/z10 
instructions, extended HFP, BFP, and DFP floating point, and 31 digit packed 
and zoned decimal.  With NOTRUNC, a 64 bit add for 1 byte literals can be 
done with single AGSI instruction as shown below.  The use of 64 bit 
arithmetic instructions is a separate issue from 64 bit addressing.  The 
example below was run in 31 bit address mode. 


The following COBOL program was compiled using open source zcobol compiler 
which generates HLASM source assembler with labels.  Then the zcobol source 
execution trace was run to show both the instruction operand hex values and 
the corresponding source code:

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    TESTZC1.
       AUTHOR.        DON HIGGINS.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  INT64  PIC S9(18) COMP           
                  VALUE 123456789012345678
       77  INT128 PIC S9(39) COMP          
                  VALUE 123456789012345678901234567890123456789.
       77  HFP-EXT FLOAT-HEX-30 
                   VALUE 123456789012345678901234567890.
       77  BFP-EXT FLOAT-BINARY-34
                   VALUE 12345678901234567890123456789012301234.
       77  DFP-EXT FLOAT-DECIMAL-34
                   VALUE 12345678901234567890123456789012301234.
       77 PD31    COMP-3 PIC S9(31) 
                  VALUE 1234567890123456789012345678901.
       77 ZD31           PIC S9(31) 
                  VALUE 1234567890123456789012345678901.
       PROCEDURE DIVISION.
           ADD 1 TO INT64
           ADD 1 TO INT128
           ADD 1 TO HFP-EXT
           ADD 1 TO BFP-EXT
           ADD 1 TO DFP-EXT
           ADD 1 TO PD31   
           ADD 1 TO ZD31
           STOP RUN.

Here is the resulting ZPARTRS source execution trace:

 CBL=TESTZC1    PROCEDURE DIVISION ; ADD   1,TO,INT64

 800FFDAC 2 EB01D058007A  AGSI  S2(000FFF28)=01B69B4BA630F34E I2=01
 TESTZC1  0000DC TESTZC1  AGSI  INT64,1

 CBL=TESTZC1      23         ADD   1,TO,INT128

 800FFDB2 2 EB01D0600004  LMG   R0=F4F4F4F400000130 
R1=F4F4F4F4000FFED0 S2(000FFF30)=5CE0E9A56015FEC5
 TESTZC1  0000E2          LMG  ZC_R0,ZC_R1,INT128
 800FFDB8 2 C0E000000068  LARL  RE=800FFD48 S2(000FFE88)
 TESTZC1  0000E8          LARL ZC_R14,=FL16'1'
 800FFDBE 2 E31E0008000A  ALG   R1=AADFA328AE398115 S2(000FFE90)
=0000000000000001
 TESTZC1  0000EE          ALG  ZC_R1,8(ZC_R14)
 800FFDC4 1 E30E00000088  ALCG  R0=5CE0E9A56015FEC5 S2(000FFE88)
=0000000000000000
 TESTZC1  0000F4          ALCG ZC_R0,0(ZC_R14)
 800FFDCA 1 EB01D0600024  STMG  R0=5CE0E9A56015FEC5 
R1=AADFA328AE398116 S2(000FFF30)=5CE0E9A56015FEC5
 TESTZC1  0000FA          STMG ZC_R0,ZC_R1,INT128

 CBL=TESTZC1      24         ADD   1,TO,HFP_EXT

 800FFDD0 1 6800D070      LD    F0=F4F4F4F4F4F4F4F4 S2(000FFF40)
=5918EE90FF6C373E
 TESTZC1  000100          LD    ZC_F0,HFP_EXT
 800FFDD4 1 6820D078      LD    F2=F4F4F4F4F4F4F4F4 S2(000FFF48)
=4B0EE4E3F0AD2000
 TESTZC1  000104          LD    ZC_F2,8+HFP_EXT
 800FFDD8 1 C0E000000060  LARL  RE=000FFE88 S2(000FFE98)
 TESTZC1  000108          LARL  ZC_R14,=LH'1'
 800FFDDE 1 681E0000      LD    F1=F4F4F4F4F4F4F4F4 S2(000FFE98)
=4110000000000000
 TESTZC1  00010E          LD    ZC_F1,0(ZC_R14)
 800FFDE2 1 683E0008      LD    F3=F4F4F4F4F4F4F4F4 S2(000FFEA0)
=3300000000000000
 TESTZC1  000112          LD    ZC_F3,8(ZC_R14)
 800FFDE6 1 3601          AXR   F0=5918EE90FF6C373E F1=4110000000000000
 TESTZC1  000116          AXR   ZC_F0,ZC_F1
 800FFDE8 2 6000D070      STD   F0=5918EE90FF6C373E S2(000FFF40)
=5918EE90FF6C373E
 TESTZC1  000118          STD   ZC_F0,HFP_EXT
 800FFDEC 2 6020D078      STD   F2=4B0EE4E3F0AD3000 S2(000FFF48)
=4B0EE4E3F0AD2000
 TESTZC1  00011C          STD   ZC_F2,8+HFP_EXT

 CBL=TESTZC1      25         ADD   1,TO,BFP_EXT

 800FFDF0 2 6800D080      LD    F0=5918EE90FF6C373E S2(000FFF50)
=407A29361EDE0046
 TESTZC1  000120          LD    ZC_F0,BFP_EXT
 800FFDF4 2 6820D088      LD    F2=4B0EE4E3F0AD3000 S2(000FFF58)
=627889320A1BC709
 TESTZC1  000124          LD    ZC_F2,8+BFP_EXT
 800FFDF8 2 C0E000000058  LARL  RE=000FFE98 S2(000FFEA8)
 TESTZC1  000128          LARL  ZC_R14,=LB'1'
 800FFDFE 2 681E0000      LD    F1=4110000000000000 S2(000FFEA8)
=3FFF000000000000
 TESTZC1  00012E          LD    ZC_F1,0(ZC_R14)
 800FFE02 2 683E0008      LD    F3=3300000000000000 S2(000FFEB0)
=0000000000000000
 TESTZC1  000132          LD    ZC_F3,8(ZC_R14)
 800FFE06 2 B34A0001      AXBR  F0=407A29361EDE0046 
F1=3FFF000000000000
 TESTZC1  000136          AXBR  ZC_F0,ZC_F1
 800FFE0A 2 6000D080      STD   F0=407A29361EDE0046 S2(000FFF50)
=407A29361EDE0046
 TESTZC1  00013A          STD   ZC_F0,BFP_EXT
 800FFE0E 2 6020D088      STD   F2=627889320A1BC708 S2(000FFF58)
=627889320A1BC709
 TESTZC1  00013E          STD   ZC_F2,8+BFP_EXT

 CBL=TESTZC1      26         ADD   1,TO,DFP_EXT

 800FFE12 2 6800D090      LD    F0=407A29361EDE0046 S2(000FFF60)
=2609134B9C1E28E5
 TESTZC1  000142          LD    ZC_F0,DFP_EXT
 800FFE16 2 6820D098      LD    F2=627889320A1BC708 S2(000FFF68)
=6F3C127177823530
 TESTZC1  000146          LD    ZC_F2,8+DFP_EXT
 800FFE1A 2 C0E00000004F  LARL  RE=000FFEA8 S2(000FFEB8)
 TESTZC1  00014A          LARL  ZC_R14,=LD'1'
 800FFE20 2 681E0000      LD    F1=3FFF000000000000 S2(000FFEB8)
=2208000000000000
 TESTZC1  000150          LD    ZC_F1,0(ZC_R14)
 800FFE24 2 683E0008      LD    F3=0000000000000000 S2(000FFEC0)
=0000000000000001
 TESTZC1  000154          LD    ZC_F3,8(ZC_R14)
 800FFE28 2 B3DA1000      AXTR  F0=2609134B9C1E28E5 
F0=2609134B9C1E28E5 F1=2208000000000000
 TESTZC1  000158          AXTR  ZC_F0,ZC_F0,ZC_F1
 800FFE2C 2 6000D090      STD   F0=2609134B9C1E28E5 S2(000FFF60)
=2609134B9C1E28E5
 TESTZC1  00015C          STD   ZC_F0,DFP_EXT
 800FFE30 2 6020D098      STD   F2=6F3C127177823530 S2(000FFF68)
=6F3C127177823530
 TESTZC1  000160          STD   ZC_F2,8+DFP_EXT

 CBL=TESTZC1      27         ADD   1,TO,PD31

 800FFE34 2 A7E50003      BRAS  RE=000FFEB8 S2(000FFE3A)=FAF1D0A0E000 
AP
 TESTZC1  000164          BRAS  ZC_R14,3 SET ZC_R1 TO A(INLINE LIT) AND 
SKIP OVER IT

 800FFE3A 2 FAF1D0A0E000  AP    S1(000FFF70)
=1234567890123456789012345678901C S2(000FFE38)=001C
 TESTZC1  00016A          AP    PD31,0(2,ZC_R14)

 CBL=TESTZC1      28         ADD   1,TO,ZD31

 800FFE40 2 F27E90A0D0B0  PACK  S1(000FD0C8)=F6F6F6F6F6F6F6F6 S2
(000FFF80)=F1F2F3F4F5F6F7F8F9F0F1F2F3F4F5
 TESTZC1  000170          PACK  ZCVT_PWORK1(8),ZD31(15)    PACK FIRST 14 
DIGITS OF ODD TOT
 800FFE46 2 F27E90A7D0BE  PACK  S1(000FD0CF)=5FF6F6F6F6F6F6F6 S2
(000FFF8E)=F5F6F7F8F9F0F1F2F3F4F5F6F7F8F9
 TESTZC1  000176          PACK  ZCVT_PWORK1+7(8),14+ZD31(15)    PACK 
NEXT 14
 800FFE4C 2 F21290AED0CC  PACK  S1(000FD0D6)=9FF6 S2(000FFF9C)
=F9F0C1
 TESTZC1  00017C          PACK  ZCVT_PWORK1+14(2),28+ZD31(3)  PACK 
REMAINDER
 800FFE52 2 C0E00000003B  LARL  RE=800FFE38 S2(000FFEC8)
 TESTZC1  000182          LARL  ZC_R14,=PL2'1'
 800FFE58 2 FAF190A0E000  AP    S1(000FD0C8)
=1234567890123456789012345678901C S2(000FFEC8)=001C
 TESTZC1  000188          AP    ZCVT_PWORK1(16),0(2,ZC_R14)
 800FFE5E 2 F3E7D0B090A0  UNPK  S1(000FFF80)
=F1F2F3F4F5F6F7F8F9F0F1F2F3F4F5 S2(000FD0C8)=1234567890123456
 TESTZC1  00018E          UNPK  0+ZD31(15),0+ZCVT_PWORK1(8)     UNPACK 
FIRST 14
 800FFE64 2 F3E7D0BE90A7  UNPK  S1(000FFF8E)
=65F6F7F8F9F0F1F2F3F4F5F6F7F8F9 S2(000FD0CF)=5678901234567890
 TESTZC1  000194          UNPK  14+ZD31(15),7+ZCVT_PWORK1(8)     UNPACK 
NEXT 14
 800FFE6A 2 F321D0CC90AE  UNPK  S1(000FFF9C)=09F0C1 S2(000FD0D6)
=902C
 TESTZC1  00019A          UNPK  28+ZD31(3),14+ZCVT_PWORK1(2) UNPACK 
REMAINING

 CBL=TESTZC1      29         STOP  RUN

 800FFE70 2 4810D127      LH    R1=AE398116 S2(000FFFF7)=0000
 TESTZC1  0001A0          LH    ZC_R1,RETURN_CODE      PASS RETURN CODE 
IN R1
 800FFE74 2 58F09030      L     RF=000FD2C0 S2(000FD058)=000FD7EC
 TESTZC1  0001A4          L     ZC_R15,ZCVT_GOBACK
 800FFE78 2 07FF          BR    RF(000FD7EC)=58DD0004 L
 TESTZC1  0001A8          BR    ZC_R15
.... SKIP INS=6 MSG=0 BRK=2 ....
 MSG=TESTZC1   EZ390 ENDED   RC= 0 SEC= 0 MEM(MB)= 17 IO=180 INS=78
ZPARTRS INPUT  RECORDS TRE=93 LST=126 PRN=880
ZPARTRS STORED KEYS    CBL/ECA=8 ASM=89
ZPARTRS OUTPUT RECORDS TRS=174 CBL=8 ASM=67 MSG=4

Don Higgins
d...@higgins.net

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to