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
