Dale,

>> 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.

Which is good, but your sample shows "nothing". All you did is use
LARL to establish the base for the data-area. The rest of your coding
is either converted by hand or by the various available methods to go
without a base. None of them introduced LARL.

When relative+immediate feature became available, LARL was not there.
Hence AHI was used (to get from entry of the program to start of
data-area). There are other techniques as well- see code for a sample.

The problem that John B is addressing is in the following (complete) example:

in front of your code:
CODE     LOCTR
DATA     LOCTR
BASECOVER DS  0D
CODE     LOCTR
   JAS   R3,*+8
   DC    AL4(BASECOVER)
   L     R3,0(,R3)
   USING BASECOVER,R3

somewhere (in the code)
   LARL  R1,=X'23'    1 = see note
and later
   LARL  R1,=X'45'    2 = see note

somewhere (very later in the code)
DATA     LOCTR
         LTORG

Note1 = this will assemble without errors (assuming that this is the
first not aligned odd-sized literal)

Note2 = this will fail, if no other odd length literal is in between


--
Martin

Pi_cap_CPU - all you ever need around MWLC/SCRT/CMT in z/VSE
more at http://www.picapcpu.de

Reply via email to