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