Regarding TRKADDR, While I'm sure that no one truly thinks that use of 64-bit regs is restricted to AMODE 64, it is true that only for AMODE 64 can one reasonably have expectation that the user has conformed to the linkage conventions for the high-halves of regs.
Thus it is viewed as in general unacceptable to use the high half of any GR other than 0,1,15 in a macro without the "blessing" of the user (where that "blessing" is treated as being given for AMODE 64). That blessing could be the documentation if the service always has taken that approach (as opposed to introducing it unconditionally after it didn't used to do so; that would be an incompatibility). Consider -- Module A is using 64-bit GRs (whether AMODE 64 or not) and expects anything it calls to comply with the linkage conventions -- Module A calls Module B -- Module B is AMODE 31, knows nothing about 64-bit GRs so saves/restores low halves only -- Module B uses some macro that clobbers the high half of something other than reg 0,1,15 -- Module B restores low halves, returns to Module A -- Module A is now broken Peter Relson z/OS Core Technology Design
