On Nov 15, 2018, at 6:44 AM, Peter Relson <[email protected]> wrote:
> 
> A more modern (over 20 years old by now?) would suggest not having a USING 
> for your "code" at all, but rather using relative branch with one register 
> set up to point to your static data and a USING for that. It is relatively 
> infrequent that your static data would exceed 4K, and even if it did you 
> could often use long-displacement instructions to access any data that is 
> more than 4K from the beginning. In some cases you might be able to take 
> advantage of the "immediate" instructions and not even need access to 
> static data.
> 
> The IEABRCX macro can help in modules that want to use relative branch, 
> particularly if they invoke system macros.
> Also be sure to identify the architecture level that macros are allowed to 
> assume you are running with, via SYSSTATE ARCHLVL=.
> 
> Some macro expansions might need local code register addressability, but 
> that is usually easy to provide.
> 

+1

As I’ve had occasion to maintain assembler routines, I’ve tried to do this. It 
makes the code cleaner and I believe (I haven’t tested) it makes it run faster.


-- 
Pew, Curtis G
[email protected]
ITS Systems/Core/Administrative Services


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

Reply via email to