At 18:44 +0000 on 06/04/2012, Bodoh John Robert wrote about Re: Base registers:
The code we use here at my job usually has very large modules and used several base registers. I have seen the following technique used: MYCSECT CSECT USING *,R15 B BYID ID DC C'module-name' BASES DC A(MYCSECT) DC A(MYCSECT+4096) DC A(MYCSECT+2*4096) DC A(MYCSECT+3*4096) BYID DS 0H LM R9,R12,BASES DROP R15 USING MYCSECT,R9,R10,R11,R12 One CPU instruction to load all base registers. I don't really like dealing with such large programs but I can't do anything about it so I'll support it the way it it. John
By replacing the MYCSECT references with BYID+4 you can pick up some extra free addressability (at the expense of having the offsets non-zero based).