On Sun, Sep 22, 2024, 18:59 Fish Fish via <david.b.trout=[email protected]> wrote:
I've been following this thread with interest, so allow me to offer what may be, while somewhat radical, a nevertheless viable solution:
Require your Hercules control file to have a "FACILITY ENABLE HERC_370_EXTENSION" statement (after your "ARCHLVL 370" statement), and then change your code to use "Branch Relative" instructions instead:
which, as you may or may not know, do not require any base register at all.
? * S/370 Backport of select ESA/390 and z/Architecture instructions
? ?
Note too, that Hercules's 370 Extension also gives you gives you access to many other very handy instructions as well (such as the "Immediate" instructions). For the complete list, see:
? *
As I said, it IS admittedly a rather radical approach (and would never work on real hardware of course; only on Hercules), but it IS nevertheless a possible solution to consider.
After all, not requiring ANY base register AT ALL would allow your module to be as big as you would need it to be! (and would free that register to be used for something else!)
Just something I thought I'd throw out there.
--
"Fish" (David B. Trout)
Software Development Laboratories