Finding information in Enterprise PL/I listings

Figure 1 shows the first two pages of an example Enterprise PL/I routine that was compiled with the LIST, MAP and SOURCE options.

Figure 1. Enterprise PL/I routine compiled with LIST, MAP, and SOURCE
5655-H31  IBM(R) Enterprise PL/I for z/OS       V3.R6.M0 (Built:20070119)
                     Options Specified
  Install:
  Command: s
  Line.File Process Statements
     1.0    *PROCESS SOURCE LIST MAP;
  Install:

5655-H31  IBM(R) Enterprise PL/I for z/OS
 Compiler Source
    Line.File
       2.0
       3.0      EXAMPLE: PROC OPTIONS(MAIN);
       4.0        DCL EXTR ENTRY EXTERNAL;
       5.0        DCL A FIXED BIN(31);
       6.0        DCL B(2,2)  FIXED BIN(31) STATIC EXTERNAL INIT((4)0);
       7.0        DCL C CHAR(20) STATIC INIT('SAMPLE CONSTANT');
       8.0        DCL D FIXED BIN(31) STATIC;
       9.0        DCL E FIXED BIN(31);
      10.0        FETCH EXTR;
      11.0        CALL EXTR(A,B,C,D,E);
      12.0        DISPLAY(C);
      13.0      END;

Figure 2 shows the output generated by the LIST and MAP options for this routine, including the pseudo-assembly listing, the external symbol dictionary and reference, the storage offset listing and the static and automatic storage maps. The sections following this example describe the contents of each type of listing.

Figure 2. Compiler-generated listings from example Enterprise PL/I routine (Part 1 of 4)
OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G

                           Timestamp and Version Information
 000000  F2F0  F0F7                                       =C'2007'           Compiled Year
 000004  F0F2  F0F1                                       =C'0201'           Compiled Date MMDD
 000008  F1F5  F3F2  F5F0                                 =C'153250'         Compiled Time HHMMSS
 00000E  F0F3  F0F6  F0F0                                 =C'030600'         Compiler Version

 000014  002C  ****                                       Service String     20070122
                           Timestamp and Version End

 5655-H31  IBM(R) Enterprise PL/I for z/OS                                  : EXAMPLE

 OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G

 000000                    000003 |        EXAMPLE  DS    0D
 000000  47F0  F024        000003 |                 B     36(,r15)
 000004  01C3C5C5                                         CEE eyecatcher
 000008  000000C8                                         DSA size
 00000C  00000180                                         =A(PPA1-EXAMPLE)
 000010  47F0  F001        000003 |                 B     1(,r15)
 000014  58F0  C31C        000003 |                 L     r15,796(,r12)
 000018  184E              000003 |                 LR    r4,r14
 00001A  05EF              000003 |                 BALR  r14,r15
 00001C  00000000                                         =F'0'
 000020  A7F4  000C        000003 |                 J     *+24
 000024  90E8  D00C        000003 |                 STM   r14,r8,12(r13)
 000028  58E0  D04C        000003 |                 L     r14,76(,r13)
 00002C  4100  E0C8        000003 |                 LA    r0,200(,r14)
 000030  5500  C314        000003 |                 CL    r0,788(,r12)
 000034  A724  FFF0        000003 |                 JH    *-32
 000038  58F0  C280        000003 |                 L     r15,640(,r12)
 00003C  90F0  E048        000003 |                 STM   r15,r0,72(r14)
 000040  9210  E000        000003 |                 MVI   0(r14),16
 000044  50D0  E004        000003 |                 ST    r13,4(,r14)
 000048  18DE              000003 |                 LR    r13,r14
 00004A  C030  0000  008A  000003 |                 LARL  r3,F'138'
 000050                    End of Prolog

 000050  5860  3002        000000 |                 L     r6,=A(EXAMPLE2)(,r3,2)
 000054  C070  0000  0092  000000 |                 LARL  r7,F'146'
 00005A  4110  6008        000003 |                 LA    r1,EXTR(,r6,8)
 00005E  4100  0000        000003 |                 LA    r0,0
 000062  5000  1000        000003 |                 ST    r0,_shadow3(,r1,0)
 000066  4110  6008        000010 |                 LA    r1,EXTR(,r6,8)
 00006A  5800  1000        000010 |                 L     r0,_shadow2(,r1,0)
 00006E  1200              000010 |                 LTR   r0,r0
 000070  A774  0012        000010 |                 JNE   @1L2
 000074  4100  6018        000010 |                 LA    r0,_Dsc_000002(,r6,24)
 000078  4120  6008        000010 |                 LA    r2,EXTR(,r6,8)
 00007C  58F0  3006        000010 |                 L     r15,=V(IBMQFRG)(,r3,6)
 000080  4110  D098        000010 |                 LA    r1,#MX_TEMP1(,r13,152)
 000084  5020  D098        000010 |                 ST    r2,#MX_TEMP1(,r13,152)
 000088  1827              000010 |                 LR    r2,r7
 00008A  5020  D09C        000010 |                 ST    r2,#MX_TEMP1(,r13,156)
 00008E  5000  D0A0        000010 |                 ST    r0,#MX_TEMP1(,r13,160)
 000092  05EF              000010 |                 BALR  r14,r15
 000094                    000010 |        @1L2     DS    0H
 000094  5800  300A        000011 |                 L     r0,=A(B)(,r3,10)
 000098  5000  D0C0        000011 |                 ST    r0,192(,r13)
 00009C  4100  6040        000011 |                 LA    r0,_Dsc_000005(,r6,64)
 0000A0  5000  D0C4        000011 |                 ST    r0,196(,r13)
 0000A4  4100  6028        000011 |                 LA    r0,C(,r6,40)
 0000A8  5000  D0B8        000011 |                 ST    r0,184(,r13)
 0000AC  4110  6004        000011 |                 LA    r1,_Dsc_000003(,r6,4)
 0000B0  5800  1000        000011 |                 L     r0,_shadow1(,r1,0)
 0000B4  5000  D0BC        000011 |                 ST    r0,_temp1(,r13,188)
 0000B8  4110  6008        000011 |                 LA    r1,EXTR(,r6,8)
 0000BC  5800  1000        000011 |                 L     r0,_shadow2(,r1,0)
 0000C0  1200              000011 |                 LTR   r0,r0
Figure 3. Compiler-generated listings from example Enterprise PL/I routine (Part 2 of 4)
 5655-H31  IBM(R) Enterprise PL/I for z/OS                                  : EXAMPLE

 OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G

 0000C2  A774  0012        000011 |                 JNE   @1L3
 0000C6  4100  6018        000011 |                 LA    r0,_Dsc_000002(,r6,24)
 0000CA  4120  6008        000011 |                 LA    r2,EXTR(,r6,8)
 0000CE  58F0  3006        000011 |                 L     r15,=V(IBMQFRG)(,r3,6)
 0000D2  4110  D098        000011 |                 LA    r1,#MX_TEMP1(,r13,152)
 0000D6  5020  D098        000011 |                 ST    r2,#MX_TEMP1(,r13,152)
 0000DA  1827              000011 |                 LR    r2,r7
 0000DC  5020  D09C        000011 |                 ST    r2,#MX_TEMP1(,r13,156)
 0000E0  5000  D0A0        000011 |                 ST    r0,#MX_TEMP1(,r13,160)
 0000E4  05EF              000011 |                 BALR  r14,r15
 0000E6                    000011 |        @1L3     DS    0H
 0000E6  4110  6008        000011 |                 LA    r1,EXTR(,r6,8)
 0000EA  58F0  1000        000011 |                 L     r15,_shadow2(,r1,0)
 0000EE  4100  D0B4        000011 |                 LA    r0,E(,r13,180)
 0000F2  1826              000011 |                 LR    r2,r6
 0000F4  4140  D0B8        000011 |                 LA    r4,_temp1(,r13,184)
 0000F8  4150  D0C0        000011 |                 LA    r5,_temp2(,r13,192)
 0000FC  4180  D0B0        000011 |                 LA    r8,A(,r13,176)
 000100  4110  D098        000011 |                 LA    r1,#MX_TEMP1(,r13,152)
 000104  5080  D098        000011 |                 ST    r8,#MX_TEMP1(,r13,152)
 000108  5050  D09C        000011 |                 ST    r5,#MX_TEMP1(,r13,156)
 00010C  5040  D0A0        000011 |                 ST    r4,#MX_TEMP1(,r13,160)
 000110  5020  D0A4        000011 |                 ST    r2,#MX_TEMP1(,r13,164)
 000114  5000  D0A8        000011 |                 ST    r0,#MX_TEMP1(,r13,168)
 000118  05EF              000011 |                 BALR  r14,r15
 00011A  4120  6010        000012 |                 LA    r2,_Dsc_000001(,r6,16)
 00011E  4100  6020        000012 |                 LA    r0,_Dsc_000004(,r6,32)
 000122  4140  6028        000012 |                 LA    r4,C(,r6,40)
 000126  58F0  300E        000012 |                 L     r15,=V(IBMQJDSB)(,r3,14)
 00012A  4110  D098        000012 |                 LA    r1,#MX_TEMP1(,r13,152)
 00012E  5040  D098        000012 |                 ST    r4,#MX_TEMP1(,r13,152)
 000132  5000  D09C        000012 |                 ST    r0,#MX_TEMP1(,r13,156)
 000136  4100  0000        000012 |                 LA    r0,0
 00013A  5000  D0A0        000012 |                 ST    r0,#MX_TEMP1(,r13,160)
 00013E  5020  D0A4        000012 |                 ST    r2,#MX_TEMP1(,r13,164)
 000142  5000  D0A8        000012 |                 ST    r0,#MX_TEMP1(,r13,168)
 000146  05EF              000012 |                 BALR  r14,r15
 000148                    000013 |        @1L1     DS    0H
 000148  58F0  3012        000013 |                 L     r15,=V(IBMQEFSH)(,r3,18)
 00014C  05EF              000013 |                 BALR  r14,r15
 00014E                    000013 |        @1L4     DS    0H

 00014E                    Start of Epilog
 00014E  58D0  D004        000013 |                 L     r13,4(,r13)
 000152  58E0  D00C        000013 |                 L     r14,12(,r13)
 000156  9828  D01C        000013 |                 LM    r2,r8,28(r13)
 00015A  051E              000013 |                 BALR  r1,r14
 00015C  0707              000013 |                 NOPR  7
 00015E  0000

 000160                    Start of Literals
 000160  00000000                                         =A(EXAMPLE2)
 000164  00000000                                         =V(IBMQFRG)
 000168  00000000                                         =A(B)
 00016C  00000000                                         =V(IBMQJDSB)

 5655-H31  IBM(R) Enterprise PL/I for z/OS                                  : EXAMPLE

 OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G

 000170  00000000                                         =V(IBMQEFSH)
 000174                    End of Literals
Figure 4. Compiler-generated listings from example Enterprise PL/I routine (Part 3 of 4)
                           ***   General purpose registers used: 1111111110001111
                           ***   Floating point  registers used: 1111111100000000
                           ***   Size of register spill area: 512(max) 0(used)
                           ***   Size of dynamic storage: 200
                           ***   Size of executable code: 350
                           ***   CSECT Offset: 72 : 0x48

 0001BC  0000  0000

                           Constant Area
 000000  0004C5E7 E3D9                          |..EXTR          |
 5655-H31  IBM(R) Enterprise PL/I for z/OS

 OFFSET OBJECT CODE        LINE#  FILE#    P S E U D O   A S S E M B L Y   L I S T I N G

                           PPA1: Entry Point Constants
 000000  1CCEA166                                         =F'483303782'      Flags
 000004  000001C8                                         =A(PPA2-EXAMPLE)
 000008  00000000                                         =F'0'              No PPA3
 00000C  00000000                                         =F'0'              No EPD
 000010  FFE00000                                         =F'-2097152'       Register save mask
 000014  00000000                                         =F'0'              Member flags
 000018  90                                               =AL1(144)          Flags
 000019  000000                                           =AL3(0)            Callee's DSA use/8
 00001C  0040                                             =H'64'             Flags
 00001E  0012                                             =H'18'             Offset/2 to CDL
 000020  00000000                                         =F'0'              State variable location
 000024  500000AF                                         =F'1342177455'     CDL function length/2
 000028  FFFFFE80                                         =F'-384'           CDL function EP offset
 00002C  38280000                                         =F'942145536'      CDL prolog
 000030  400800A7                                         =F'1074266279'     CDL epilog
 000034  00000000                                         =F'0'              CDL end
 000038  0007  ****                                       AL2(7),C'EXAMPLE'
                           PPA1 End

                           PPA2: Compile Unit Block
 000000  0B00  3203                                       =F'184562179'      Flags
 000004  FFFF  FDF0                                       =A(CEESTART-PPA2)
 000008  0000  0000                                       =F'0'              No PPA4
 00000C  FFFF  FDF0                                       =A(TIMESTMP-PPA2)
 000010  0000  0000                                       =F'0'              No primary
 000014  0200  0000                                       =F'33554432'       Flags
                           PPA2 End
 5655-H31  IBM(R) Enterprise PL/I for z/OS

                                   E X T E R N A L   S Y M B O L   D I C T I O N A R Y

           NAME        TYPE  ID  ADDR    LENGTH            NAME        TYPE  ID  ADDR    LENGTH

           EXAMPLE1     SD    1 000000   000228            EXAMPLE2     SD    2 000000   00005C
           @EXAMPLE     SD    3 000000   000004            B            SD    4 000000   000010
           EXAMPLE      LD    0 000048   000001            CEESG011     ER    5 000000
           IBMQFRG      ER    6 000000                     IBMQJDSB     ER    7 000000
           IBMQEFSH     ER    8 000000                     CEESTART     ER    9 000000
           CEEMAIN      SD   10 000000   00000C            IBMPINPL     ER   11 000000
           EXAMPLE      ER   12 000000
 5655-H31  IBM(R) Enterprise PL/I for z/OS

                             E X T E R N A L   S Y M B O L   C R O S S   R E F E R E N C E

           ORIGINAL NAME                                   EXTERNAL SYMBOL NAME

           EXAMPLE1                                        EXAMPLE1
           EXAMPLE2                                        EXAMPLE2
           _EXAMPLE                                        @EXAMPLE
           B                                               B
           EXAMPLE                                         EXAMPLE
           CEESG011                                        CEESG011
           IBMQFRG                                         IBMQFRG
           IBMQJDSB                                        IBMQJDSB
           IBMQEFSH                                        IBMQEFSH
           CEESTART                                        CEESTART
           CEEMAIN                                         CEEMAIN
           IBMPINPL                                        IBMPINPL
Figure 5. Compiler-generated listings from example Enterprise PL/I routine (Part 4 of 4)
 5655-H31  IBM(R) Enterprise PL/I for z/OS

                                * * * * *   S T O R A G E   O F F S E T   L I S T I N G   * * * * *

 IDENTIFIER          DEFINITION      ATTRIBUTES
                                     <SEQNBR>-<FILE NO="">:<FILE LINE="">

 A                   1-0:5           Class = automatic,           Location = 176 : 0xB0(r13),                   Length = 4

 B                   1-0:6           Class = external definition, Location = CSECT B,                           Length = 16

 C                   1-0:7           Class = static,              Location = 40 : 0x28 + CSECT EXAMPLE2,        Length = 20

 D                   1-0:8           Class = static,              Location = 0 : 0x0 + CSECT EXAMPLE2,          Length = 4

 E                   1-0:9           Class = automatic,           Location = 180 : 0xB4(r13),                   Length = 4

 EXTR                1-0:4           Class = static,              Location = 8 : 0x8 + CSECT EXAMPLE2,          Length = 8

                          * * * * *   E N D   O F   S T O R A G    O F F S E T   L I S T I N G   * * * * *
 5655-H31  IBM(R) Enterprise PL/I for z/OS

                                            * * * * *   S T A T I C     M A P   * * * * *

 OFFSET (HEX)   LENGTH (HEX)   NAME

           0              4    D
           4              4    _Dsc_000003
           8              8    EXTR
          10              8    _Dsc_000001
          18              8    _Dsc_000002
          20              8    _Dsc_000004
          28             14    C
          40             1C    _Dsc_000005

                                   * * * * *   E N D   O F     S T A T I C     M A P   * * * * *
 5655-H31  IBM(R) Enterprise PL/I for z/OS

                                         * * * * *   A U T O M A T I C     M A P   * * * * *

 Block name: EXAMPLE

 OFFSET (HEX)   LENGTH (HEX)   NAME

          98             18    #MX_TEMP1
          B0              4    A
          B4              4    E
          B8              8    _temp1
          C0              8    _temp2

                                * * * * *   E N D     O F     A U T O M A T I C     M A P   * * * * *