John P. Baker wrote:
Dale,

This code sample misses the whole point.

It uses a base register.

Baseless code is intended to be exactly that.  Baseless.

The intent is to reserve registers for calculations and for base registers
pointing to dynamic data.  No base registers for code, and no base registers
for static data.

John P. Baker

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Bohn, Dale
Sent: Sunday, August 22, 2010 2:01 AM
To: [email protected]
Subject: Re: LARL vs. Literal Alignment

This whole discussion seems to miss the reason for using a literal(i.e. to
group together constants in order of their storage alignment requirements).
This code will do what he wants with any alignment error...
     LARL   3,LTORG
     USING  3,LTORG
     LA     3,=x'23'
     DROP   3
     ...
     ...
LTORG LTORG ,

I have found that by assigning a register to the literal pool via LARL at
the beginning of a module, I took a program that had 5 base registers and
now only has one LTORG pointer register.


A big problem with using LARL to access literals is that they will have
to be in the same control section as the code that accesses them.  This
is almost never true in any code I work with.  Static data is usually in
a separate CSECT.  In any case, where did you get the notion that static
data should not be addressable by base-displacement instructions?  Are
we supposed to precede every instruction that refers to a constant with
a LARL?  What's the point?

This whole issue is a straw-man.

sas

Reply via email to