The rule for just about anything is "the fewer cache lines you can use, the 
better".
How you accomplish that (if you even choose to try) is a matter of programming 
(not necessarily a simple matter of programming).

As Jonathan Scott mentioned, if you're going to try to "align" you at least 
need to make sure that your module is on a strong enough boundary.
If you want to do cache-alignment stuff (i.e., 256-byte boundary) within a 
module, you'll need your module loaded on a page boundary.
z/OS does not support loading modules on boundaries other than doubleword and 
page (and maybe, going forward, 1M-boundary for RMODE 64).

Most relative-branch modules find the need to have a static area (whether for 
literals or other things) and find it convenient to locate such an area with a 
register (a base reg for static data, in this case).  Various z/OS macros 
require addressability to wherever a literal generated by the macro might get 
placed. Obviously you could set that up temporarily with LARL, wherever needed, 
if you choose not to devote a reg for that purpose.

Peter Relson
z/OS Core Technology Design

Reply via email to