Brevity and clarity. Don't expect a difference in performance. Using BCTR will shorten the pipeline by 2 bytes. Other than that, don't expect a difference in performance.
I'm in the habit of using LA, but I'm getting better. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Mark Hammack <00001b4f3fed68ca-dmarc-requ...@listserv.uga.edu> Sent: Thursday, July 10, 2025 12:39 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Subject: Food for thought. External Message: Use Caution Is there any advantage to using: LA Rx,1(,Rx) vs. AHI Rx,1 Back in the old days (I started on S/370 with MVS right before XA came out), to increment a register, you had to use option 1. Now, either will work. I prefer the latter because I think it is clearer what you intend but since it sets the CC flags, I'm not sure it is any "better" and may be (slightly) slower. Really, the same question can be asked about: BCTR Rx,0 vs. AHI Rx,-1 and LA Rx,value LHI Rx,value Same thing, the latter is much clearer, especially for new-to-assembler programmers. In the LA vs LHI case, LA is limited to 4095 whereas LHI can go to 32767 so there is an advantage in some situations. IDK, maybe it's the closet C programmer in me... *Mark Hammack*