I’m betting you would not see any difference in performance. Modern z machines will likely execute most of those instructions in parallel since there are no dependencies after the first LA.
However, if you’re still concerned, I would code it this way: > L R15,ARXEXCOM > CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5), X > MF=(E,SHVPARMB) > DS 0H > LA 1,SHVPARMB > LA 0,SHVPARM1 > ST 0,0(0,1) > LA 0,SHVPARM2 > ST 0,4(0,1) > LA 0,SHVPARM2 > ST 0,8(0,1) > LA 0,SHVBLOCK > ST 0,12(0,1) > LA 0,SHVPARM5 > ST 0,16(0,1) > OI 16(1),X'80 > BALR 14,15 ORG-2 Back up over the BALR For building your CALL list, and then use > LA R1,SHVPARMB > L R15,ARXEXCOM > BALR R14,R15 For subsequent invocations. Tom Harper Phoenix Software International Sent from my iPhone > On Oct 18, 2023, at 12:48 PM, Dave Clark <dlcl...@winsupplyinc.com> wrote: > > "IBM Mainframe Assembler List" <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on > 10/18/2023 12:15:12 PM: >> Execute version of the CALL macro with MF=(E,parm_area_name) can fix > that. > > > Well, the other issue is performance. I potentially call this > program hundreds of times. So, I can build the parameter list just once > and call it as follows: > > LA R1,SHVPARMB > L R15,ARXEXCOM > BALR R14,R15 > > Or I can call it as follows -- much less desireable. Note that > the program address is not supplied by a V-con but by an external program > vector list from REXX. That is why I have to preload R15 rather than > puting it in the CALL statement. But, I still wouldn't want a V-con > inserted into the middle of my instructions by the CALL with a branch > around it. > > L R15,ARXEXCOM > CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5), X > MF=(E,SHVPARMB) > DS 0H > LA 1,SHVPARMB > LA 0,SHVPARM1 > ST 0,0(0,1) > LA 0,SHVPARM2 > ST 0,4(0,1) > LA 0,SHVPARM2 > ST 0,8(0,1) > LA 0,SHVBLOCK > ST 0,12(0,1) > LA 0,SHVPARM5 > ST 0,16(0,1) > OI 16(1),X'80 > BALR 14,15 > > > Sincerely, > > Dave Clark > -- > int.ext: 91078 > direct: (937) 531-6378 > home: (937) 751-3300 > > Winsupply Group Services > 3110 Kettering Boulevard > Dayton, Ohio 45439 USA > (937) 294-5331 > > > > > > ********************************************************************************************* > This email message and any attachments is for use only by the named > addressee(s) and may contain confidential, privileged and/or proprietary > information. If you have received this message in error, please > immediately notify the sender and delete and destroy the message and all > copies. All unauthorized direct or indirect use or disclosure of this > message is strictly prohibited. No right to confidentiality or privilege > is waived or lost by any error in transmission. > ********************************************************************************************* -------------------------------------------------------------------------------- This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use.