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)

Reply via email to