IMO R3 should be set to a length that reflects the end of the storage 
containing the string.
Setting the length to 2 GB-1 is sloppy programming.

-- 
Tom Marchant

On Thu, 27 Apr 2023 14:09:17 -0700, Michael Stein <m...@zlvfc.com> wrote:

>On Thu, Apr 27, 2023 at 07:54:56PM +0000, Seymour J Metz wrote:
>> R1 is the table address; only 256 bytees need to be addressable. R2
>> is the string address, and you need write access to everything up until
>> the delimiter ('00'x in this case.)
>
>No!  You need write access for at least 4K from the start of the string even
>if that's past the x'00'.
>
>From z/Architecture Priciples of Operation for the TRE instruction:
>
>   Access exceptions for the portion of the first operand to the right
>   of the last byte processed may or may not be recognized. For an
>   operand longer than 4K bytes, access exceptions are not recognized
>   for locations more than 4K bytes beyond the last byte processed.
>
>His operand is 7fffffff long so it's longer than 4K so the at a minimum
>he needs write access to the 4K where the string starts and the
>next 4K too since the string doesn't start on a 4K boundary.
>
>That's probably why his 0C4 only happens sometimes -- it depends
>on the status/protect key of the next 4K block.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to