There was a thread here. What you say is utterly logically correct but I
think the assembler may have some issue with relocatable externs in IILF.
Perhaps that is what you are referring to when you say "recent HLASM
support."

I believe LARL works however, but requires the "new" object file format.

This is from memory. Too lazy to search or experiment. 

A simpler change would be to change the =A(extrn) into a constant that is
adjacent to other fields that should already be in cache -- in which case
the L will essentially take no time at all.

I would also add the usual disclaimer: unless this is incredibly
time-sensitive code that gets executed millions of times a day, it is going
to take a lot of years for IILR or LARL to save enough CPU time to recover
the time spent re-assembling and testing your code a couple of times. 

OTOH, it is perhaps an interesting pursuit intellectually.

Charles

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Don Higgins
Sent: Friday, January 15, 2021 8:27 AM
To: [email protected]
Subject: A faster replacement for L R15,=A(EXTRN)

All

 

With the recent HLASM and z390 support for 32 bit relocatible immediate
fields, it appears that for amode 31, the IILF insert immediate instruction
is a more efficient way to load a register with an external address than
using the traditional L load instruction to fetch an address constant.  The
6 byte insert immediate instruction can replace 8 bytes for the load and
address constant.  And the insert instruction avoids having to add base and
displacement address and then load the separate address constant.  

 

Don Higgins

[email protected] <mailto:[email protected]> 

www.donhiggins.org <http://www.don-higgins.net/>  

 

Reply via email to