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*


Reply via email to