Alternatively, consider the BRANCH INDIRECT ON CONDITION (BIC) instruction (available on the z14). The second operand of BIC is an 8-byte location in memory from which the branch address is fetched.
BIC was designed to assist Java in returning from a garbage collection operation, where the return address is an 8-byte entry in the program stack, and there isn't another register besides the stack pointer available. However, if you can structure the program such that a branch table comprises 8-byte addresses in memory, BIC is useful, e.g., * R15 assumed to contain table index as a multiple of 8. * To make Seymour happy, validate R15 if not a trusted value. LARL 14,BR_TABLE BI 0(14,15) BI is the extended mnemonic for BIC with mask of F. ... BR_TABLE DC AD(CURLEY) DC AD(MOE) DC AD(LARRY)