On Tue, 15 May 2018 10:13:05 -0500, John McKown <[email protected]> wrote:
>I think what Ed is getting at is to load a "32 bit" pointer, you need to >insure that the high word of the register being loaded (bits 0..31) are >zero. You can do this simply by somehow being sure that it is and using an >L, or the LLGF will load the 32 bits into the low word (32..63) of the >register and zero out the high word automatically (bits 0..31). This is the >safest way, rather than using an old fashioned L instruction. Of course, if >you are absolutely certain that the high word will always be zero, then >this is overkill. Oh I see. I wish to use "L", and assume that the high 32 bits are 0, so that existing 32-bit code works without change. So let's discuss how to ensure the high 32 bits are 0. Ideally IBM would guarantee that in the documentation. I only got one test case done on z/OS and it worked, which meant sufficient high bits in registers were zero. They just need to formalize that. Alternatively, we can use our own loader that zeroes out the top 32 bits using LMH prior to executing our 32-bit application. Another option is to have some startup code in the 32-bit application that manipulates the 64-bit registers by doing a LMH to zero them out. It only needs to be done once, because the rest of the 32-bit application will not disturb the top 32 bits. BFN. Paul. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
