Are BALR R12,0 and BASR R12,0 linkage instructions?
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Dan Greiner [dan_grei...@att.net] Sent: Thursday, February 10, 2022 1:27 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Branch-and-Link nomenclature question Having learned this stuff in the 1970s — before the linkage stack showed up in the late 1980s — I was accustomed to hearing them called simply "linkage instructions." For the common usage of application programmers who need a simple instruction to branch to Oz while leaving a footprint of how to get back to Kansas, that's probably sufficient. The z/Architecture Principles of Operation (SA22-7832-10) refers to such instruction in a section labelled "Subroutine Linkage without the Linkage Stack" (p. 5-16 onward), with the simple stuff like BAL[R], BAS[R] and friends called "Simple Branch Instructions". This text shows the awkwardness that crept into the architecture when various commonly-used terms get redeployed for other purposes. [A brief aside: During the design of the S/360, the designers deliberately eschewed a stack architecture in favor of the chained save-area approach. With the advent of ESA, they changed their minds (sort of) and implemented a linkage stack.] A gentle reminder on terminology: The term "JUMP" appears neither in the PoO nor in the z/Architecture Reference Summary (SA22-7832). What you refer to as "JAS (jump and save)" is simply reflecting the extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS).