On Tue, Nov 24, 2020 at 09:25:34AM -0800, Charles Mills wrote:
> The compilers now do a lot of using the high halves of registers as "scratch
> pads." So the upper half of the register might be storing some unrelated
> value.
> 
> Charles
> 
> 

 Even so - this could only be really meaningful in AMODE 31, if you want
 to keep those unrelated values in the upper half of the register and
 use the register to address the given item, then it could only be in 
 AMODE 31.

 And, since it's AMODE 31, LARL doesn't touch the upper half of the 64-bit
 register; from the POP for LOAD ADDRESS RELATIVE LONG:

    In the 24-bit addressing mode, the address is placed in bit
    positions 40-63, bits 32-39 are set to zeros, and bits 0-31 remain
    unchanged. In the 31-bit addressing mode, the address is placed
    in bit positions 33-63, bit 32 is set to zero, and bits 0-31
    remain unchanged.

 So, I think in this scenario you'd still be able to use LARL?

        - Dave R -

  p.s. The Dignus compilers will use the upper-halves of 64-bit registers
       when the option to do so is enabled and the situation allows.

--
[email protected]                        Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com

Reply via email to