>R13 is being used for dynamic storage (register save areas). >My whole point in this discussion is that I am using baseless code (for >instructions) so that I have additional registers available for various >control blocks, complex instructions (such as MVCL and PLO), etc.
>Chris made the argument that writing baseless code is a waste of time, a >position that may be fine for his applications, but is anything but for my >development efforts. I understand, but my point is that if the save area is the first part of any storage area, then R13 can serve as the save area pointer as well as the base register to address the remaining storage areas. Consequently a register that couldn't be used for anything else anyway can now serve the role of base register to storage areas. As for the rest of it, baseless code is trivial since once the storage areas are dealt with, using relative branch instructions is a "no-brainer", so it isn't a waste of time. In fact, it's so trivial that IBM even has a "macro" IEABRC which allows you to replace all existing base/displacement branch instructions with branch relative, so there is no basis for arguing that baseless code is difficult or requires any effort for processing instructions. It is trivially easy to do.