You have the option of using the LINKINST= parameter of the CALL macro to convert the BALR to BASR (or BASSM).
Robert Ngan CSC Financial Services Group From: Steve Comstock <[email protected]> To: [email protected] Date: 2012/01/10 16:05 Subject: Re: Enhanced CALL macro? Sent by: IBM Mainframe Assembler List <[email protected]> On 1/10/2012 2:20 PM, McKown, John wrote: > I could use an enhanced CALL macro. I am writing RENT code and > trying to be "baseless". For the RENT, I am using CALL with MF=(E,(1)) > and GPR1 pointing to an array of fullwords in dynamic storage. The > parameters within the CALL are a mixture of locations within the CSECT > (these are read-only "constants") and areas in dynamic storage. Basically > the CALL uses an "LA 0,..." to load the address of the parameter into > GPR0 followed by a "ST 0,n(0,1)" to save the address in the parameter area. > I wish that there were a way to tell the CALL to use a LARL instruction > to address the parameters which are within the CSECT. Even if I had to do > it on a parameter by parameter indicator, such as prefixing the symbol > with an "invalid" character. For instance, a !. So my CALL would look like: > CALL (15),(!IN_CSECT,IN_DYN),MF=(E,(1)) . So that CALL would use > > LARL 0,IN_CSECT > ST 0,0(0,1) > LA 0,IN_DYN > ST 0,4(0,1) > BALR 14,15 > > This would eliminate almost all base+index instructions in my current code. 'ST' and 'LA' are base+index+displacement instructions You could build your own list of parameters in dynamic storage, then load R1 with a pointer to the list, then do BASR 14,15 ('BALR' is so 20th century for a guy trying to stay ahead of the curve, don't you think?) > Well, I still have a few MVCs and CLCs left too. > > Am I going too crazy? I think so. > I'm a bit "register poor" because I really love to keep values > in registers, rather than do redundant loads and stores. > > > -- > John McKown > Systems Engineer IV > IT > > Administrative Services Group > > HealthMarkets(r) > > 9151 Boulevard 26 * N. Richland Hills * TX 76010 > (817) 255-3225 phone * > [email protected] * www.HealthMarkets.com > > Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM > -- Kind regards, -Steve Comstock The Trainer's Friend, Inc. 303-355-2752 http://www.trainersfriend.com * To get a good Return on your Investment, first make an investment! + Training your people is an excellent investment * Try our tool for calculating your Return On Investment for training dollars at http://www.trainersfriend.com/ROI/roi.html
