Chase, John wrote:
-----Original Message-----
From: IBM Mainframe Discussion List On Behalf Of Steve Comstock

Farley, Peter x23353 wrote:
I did not see anything about it in the updates page in the language
reference nor the programmer's guide, but I'm wondering if anyone
here
knows if the newest release of the Enterprise COBOL compiler will
generate "grande" arithmetic instructions for COBOL binary fields
(e.g.
will it generate an AG or AGR instruction for adding two PIC S9(18)
BINARY fields?).
1. Latest and greatest is actually Enterprise COBOL 4.2

2. Ran an experiment for you; here is the generated code
    for  'add fld-d to fld-e' where both are pic s9(18) binary:

Did you try it with PIC S9(18) COMP-5?

    -jc-

No, but good idea; so here it is:

         LM    2,3,48(8)               FLD-D
         SLDA  2,0(0)
         BC    11,394(0,11)            GN=31(0009EA)
         LCR   2,2
         LCR   3,3
         BC    8,394(0,11)             GN=31(0009EA)
         BCTR  2,0
GN=31    EQU   *
         ZAP   344(16,13),1367(1,10)   TS2=0
         LTR   2,2
         BC    2,420(0,11)             GN=32(000A04)
         BC    8,436(0,11)             GN=33(000A14)
         AP    344(16,13),1354(6,10)   TS2=0
         X     2,1336(0,10)            PGMLIT AT +1324
GN=32    EQU   *
         CVD   2,360(0,13)             TS2=16
         AP    344(16,13),360(8,13)    TS2=0
         MP    344(16,13),1348(6,10)   TS2=0
GN=33    EQU   *
         LTR   3,3
         BC    2,456(0,11)             GN=34(000A28)
         BC    8,466(0,11)             GN=35(000A32)
         AP    344(16,13),1354(6,10)   TS2=0
         X     3,1336(0,10)            PGMLIT AT +1324
GN=34    EQU   *
         CVD   3,360(0,13)             TS2=16
         AP    344(16,13),360(8,13)    TS2=0
GN=35    EQU   *
         TM    48(8),X'80'             FLD-D
         BC    8,478(0,11)             GN=36(000A3E)
         OI    359(13),X'01'           TS2=15
GN=36    EQU   *
         LM    2,3,56(8)               FLD-E
         SLDA  2,0(0)
         BC    11,500(0,11)            GN=37(000A54)
         LCR   2,2
         LCR   3,3
         BC    8,500(0,11)             GN=37(000A54)
         BCTR  2,0
GN=37    EQU   *
         ZAP   360(16,13),1367(1,10)   TS2=16
         LTR   2,2
         BC    2,526(0,11)             GN=38(000A6E)
         BC    8,542(0,11)             GN=39(000A7E)
         AP    360(16,13),1354(6,10)   TS2=16
         X     2,1336(0,10)            PGMLIT AT +1324
GN=38    EQU   *
         CVD   2,376(0,13)             TS2=32
         AP    360(16,13),376(8,13)    TS2=16
         MP    360(16,13),1348(6,10)   TS2=16
GN=39    EQU   *
         LTR   3,3
         BC    2,562(0,11)             GN=40(000A92)
         BC    8,572(0,11)             GN=41(000A9C)
         AP    360(16,13),1354(6,10)   TS2=16
         X     3,1336(0,10)            PGMLIT AT +1324
GN=40    EQU   *
         CVD   3,376(0,13)             TS2=32
         AP    360(16,13),376(8,13)    TS2=16
GN=41    EQU   *
         TM    56(8),X'80'             FLD-E
         BC    8,584(0,11)             GN=42(000AA8)
         OI    375(13),X'01'           TS2=31
GN=42    EQU   *
         AP    365(11,13),350(10,13)   TS2=21
         MVC   376(16,13),360(13)      TS2=32
         L     2,92(0,9)               TGTFIXD+92
         L     15,60(0,2)              V(IGZCIDB )
         LA    1,1802(0,10)            PGMLIT AT +1790
         BASR  14,15
         MVC   56(8,8),392(13)         FLD-E


So, still using packed decimal; one more try with
trunc(opt):

         LM    2,3,48(8)               FLD-D
         SLDA  2,0(0)
         BC    11,394(0,11)            GN=31(0009EA)
         LCR   2,2
         LCR   3,3
         BC    8,394(0,11)             GN=31(0009EA)
         BCTR  2,0
GN=31    EQU   *
         ZAP   344(16,13),1367(1,10)   TS2=0
         LTR   2,2
         BC    2,420(0,11)             GN=32(000A04)
         BC    8,436(0,11)             GN=33(000A14)
         AP    344(16,13),1354(6,10)   TS2=0
         X     2,1336(0,10)            PGMLIT AT +1324
GN=32    EQU   *
         CVD   2,360(0,13)             TS2=16
         AP    344(16,13),360(8,13)    TS2=0
         MP    344(16,13),1348(6,10)   TS2=0
GN=33    EQU   *
         LTR   3,3
         BC    2,456(0,11)             GN=34(000A28)
         BC    8,466(0,11)             GN=35(000A32)
         AP    344(16,13),1354(6,10)   TS2=0
         X     3,1336(0,10)            PGMLIT AT +1324
GN=34    EQU   *
         CVD   3,360(0,13)             TS2=16
         AP    344(16,13),360(8,13)    TS2=0
GN=35    EQU   *
         TM    48(8),X'80'             FLD-D
         BC    8,478(0,11)             GN=36(000A3E)
         OI    359(13),X'01'           TS2=15
GN=36    EQU   *
         LM    2,3,56(8)               FLD-E
         SLDA  2,0(0)
         BC    11,500(0,11)            GN=37(000A54)
         LCR   2,2
         LCR   3,3
         BC    8,500(0,11)             GN=37(000A54)
         BCTR  2,0
GN=37    EQU   *
         ZAP   360(16,13),1367(1,10)   TS2=16
         LTR   2,2
         BC    2,526(0,11)             GN=38(000A6E)
         BC    8,542(0,11)             GN=39(000A7E)
         AP    360(16,13),1354(6,10)   TS2=16
         X     2,1336(0,10)            PGMLIT AT +1324
GN=38    EQU   *
         CVD   2,376(0,13)             TS2=32
         AP    360(16,13),376(8,13)    TS2=16
         MP    360(16,13),1348(6,10)   TS2=16
GN=39    EQU   *
         LTR   3,3
         BC    2,562(0,11)             GN=40(000A92)
         BC    8,572(0,11)             GN=41(000A9C)
         AP    360(16,13),1354(6,10)   TS2=16
         X     3,1336(0,10)            PGMLIT AT +1324
GN=40    EQU   *
         CVD   3,376(0,13)             TS2=32
         AP    360(16,13),376(8,13)    TS2=16
GN=41    EQU   *
         TM    56(8),X'80'             FLD-E
         BC    8,584(0,11)             GN=42(000AA8)
         OI    375(13),X'01'           TS2=31
GN=42    EQU   *
         AP    365(11,13),350(10,13)   TS2=21
         MVC   376(16,13),360(13)      TS2=32
         L     2,92(0,9)               TGTFIXD+92
         L     15,60(0,2)              V(IGZCIDB )
         LA    1,1802(0,10)            PGMLIT AT +1790
         BASR  14,15
         MVC   56(8,8),392(13)         FLD-E


Nope. No 64-bit arithmetic instructions were harmed in
the making of this object code. :-)



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

  z/OS Application development made easier
    * Our classes include
       + How things work
       + Programming examples with realistic applications
       + Starter / skeleton code
       + Complete working programs
       + Useful utilities and subroutines
       + Tips and techniques

==> Ask about being added to our opt-in list:              <==
==>   * Early announcement of new courses                  <==
==>   * Early announcement of new techincal papers         <==
==>   * Early announcement of new promotions               <==

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

Reply via email to