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
