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

Reply via email to