IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

OPTLINK linkage convention


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
zmoney

New User


Joined: 15 Jan 2021
Posts: 4
Location: PL

PostPosted: Mon Nov 29, 2021 7:39 pm
Reply with quote

Does anyone know where the OPTLINK linkage convention is documented? I can't find it in any of the PL/I or LE manuals.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Mon Nov 29, 2021 8:49 pm
Reply with quote

This appears to be related to PL/1 on Windows.

www.ibm.com/docs/en/developer-for-zos/14.1.0?topic=SSQ2R2_14.1.0/com.ibm.etools.pl1.win.doc/topics/optlink.htm

Garry.
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1255
Location: Bamberg, Germany

PostPosted: Mon Nov 29, 2021 8:50 pm
Reply with quote

Garry Carroll wrote:
This appears to be related to PL/1 on Windows.

www.ibm.com/docs/en/developer-for-zos/14.1.0?topic=SSQ2R2_14.1.0/com.ibm.etools.pl1.win.doc/topics/optlink.htm

Garry.

You beat me by seconds. icon_biggrin.gif
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 917
Location: The Universe

PostPosted: Sun Dec 12, 2021 3:42 am
Reply with quote

I came across some documentation back in the 90s. I'm just feeding back my analysis of the documentation at the time as I don't recall all the gory details.

It seeks to lower CALL/SAVE/RETURN overhead, which is rather awful in standard LE. It's not really as much an issue in PL/I as it is in C++.

It reduces number of saved registers. The STM 14,12,12(13) and LM 14,12,12(13) in LE standard linkage is terribly expensive. This has caused me to be more aware of this issue in my code, and I'm almost 100% Assembler.

The truth of the matter is most of us Assembler programmers are rather poor in using registers, and the compilers could do better. It's forcing the compilers to use fewer registers. The STM and LM in standard linkage are saving and restoring registers that are not always being used.

There are a lot of changes in stack management. The most notable change I can recall is storage for a single stack element is limited to 2K. The stack pointer reg points to the stack area - 2K.

It understands the difference in code that calls a subroutine and code that does not call a subroutine, and uses a simplified approach that does not use the full stack management. This is important for C++.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts "Output" internal table (OD... COBOL Programming 0
No new posts Linkage editor is part of COBOL, z/OS... COBOL Programming 5
No new posts Number of parameters in Linkage COBOL Programming 4
No new posts COBOL Parmlist and Associated Linkage... COBOL Programming 10
Search our Forums:

Back to Top