What is the effect of ASMMREL? Does it enable the use of anything beyond branch 
relative? Is it dependent on ARCHLVL?

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר



________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of 
Peter Relson <[email protected]>
Sent: Tuesday, August 27, 2024 9:10 AM
To: [email protected]
Subject: Re: Relative Instructions not generated by some IBM macros, e.g. 
STORAGE and ATTACHX

You are expected to make use of IEABRC/IEABRCX if you encounter a macro that 
uses base displacement branches.
But I know that the post was not about branches.

It is always to be expected that you need a reg to locate your static data (not 
your code). You might like the thought of "baseless" coding. But there is no 
expectation that you can accomplish that with our macros. You should be 
prepared to provide such addressability.

As to when this would be changed? The likely answer is "never". A 6-byte 
instruction will generally not be used to replace a 4-byte instruction. 
Conditionally? Conceivably.
As to when you would not have to worry about AMODE switching? With LE, that is 
already conceivable. If simply using z/OS services, the likely answer is 
"never" in general.

Will the macros ever be "changed" from using "LA" or "LAE" to some 
long-displacement form unconditionally? Surely "no". That's the same 6-byte vs 
4-byte consideration.
Conditionally? Maybe. But only if a formal request is submitted. And it's more 
likely to happen for those macros that are tool-generated (as many of the 
macros created since the mid 80's are).

Regarding LARL, it's the case that only the standard form can ever use it. 
Nothing else has any idea whether your expression is locatable relatively or by 
resolution of base-displacement.
Could some alternate syntax be defined that lets you select between the two? 
Sure. Will it? Not likely.
I have to believe that the use of list/execute forms is dominant.

Regarding LRL, that's a good idea (again, conditionally). When these macros 
were created (or even when enhanced to accommodate not needing a base reg for 
your code), that was not an instruction that existed. And until z/OS 2.2 that 
was not an instruction that could be relied upon to be available according to 
some architecture level set (LRL was introduced on the z10 machine). The 
general expectation is that you can re-assemble using the new release's macros 
and still run that expansion on older releases (perhaps limited to those older 
releases that are still supported). Now that only z/OS 2.4 and up are supported 
(other than extended support), there are opportunities to use some instructions 
that were not previously OK to use.

Peter Relson
z/OS Core Technology Design.


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to