No argument from me. Diff'rent strokes for diff'rent folks. I don't "mind" 
having the entry point being in the middle of the CSECT, but if you do ...

If someone is using an entry point macro like EDCPRLG you would have to put 
*it* at the front of the CSECT and put J MYCODE right after it. 

A lot of my modules are collections of little MVS services for use by REXX or 
C++ code, so I have lots of modules with multiple entry points. Some of them 
are inevitably in the middle of the CSECT, whether I like it or not.

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Martin Trübner
Sent: Saturday, April 2, 2022 9:56 AM
To: [email protected]
Subject: Re: Eliminating Base Registers (was: Inlining routines)

Charles (et al),


I like the entry being at the CSECT and the base pointing to the entry 
of the CSECT (and I am lazy) so I borrowed  a neat technique from Ed Jaffe


I marked it with "<--- this is new " in your sample


It costs only 4bytes and helps me.


TEST     CSECT
MAIN1    LOCTR
          J     MYENTRY     <--------- this is new
M1       DC    'Eyecatcher at front of CSECT'
MAIN2    LOCTR
          DS    H    alignment
MYENTRY  EQU   *
          ENTRY MYENTRY    <--------- this is superfloush now
          SAVE  ...
          LARL  R12,TEST   no more BALRs!
          USING TEST,R12
          code ...

MAIN1    LOCTR
* put any macros that need a base in little subroutines here
          LTORG
          Small constants and, if CSECT not relocatable, work areas

MAIN2    LOCTR
          Any large buffers or tables
          END


Martin

Reply via email to