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.

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

Reply via email to