It appears that XPLINK is standard for AMODE 64, but 31-bit XPLINK is a bit 
non-standard.

Gary Weinhold
Senior Application Architect

DATAKINETICS | Data Performance & Optimization

Phone:  +1.613.523.5500 x216<tel:+1.613.523.5500%20x216>
Email:  [email protected]<mailto:[email protected]>

[http://www.dkl.com/wp-content/uploads/2015/07/dkl_logo.png]<http://www.dkl.com/>

Visit us online at www.DKL.com<http://www.dkl.com/>

[http://www.dkl.com/wp-content/uploads/2015/08/banner.png]<http://www.dkl.com/mailsig>

E-mail Notification: The information contained in this email and any 
attachments is confidential and may be subject to copyright or other 
intellectual property protection. If you are not the intended recipient, you 
are not authorized to use or disclose this information, and we request that you 
notify us by reply mail or telephone and delete the original message from your 
mail system.



__________
On 2017-06-09 14:50, Charles Mills wrote:

I know what XPLINK means. Is XPLINK a standard? Then is XPLINK linkage non-standard? That 
was my "whatever that means." Is XPLINK a standard for non-standard linkage?

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Tom Marchant
Sent: Friday, June 9, 2017 11:38 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: Save areas (not XPLINK).

On Fri, 9 Jun 2017 08:59:02 -0700, Charles Mills wrote:



31-bit C can use non-standard (whatever that means) XPLINK linkage.



Standard linkage uses register 13 to hold the address of a 72-byte save area 
when a program is caller. The called program uses the area pointed to by 
register 13 to save its caller's registers. Registers 14 and 15 contain the 
return and entry point address. Register 1 contains the address of a parameter 
list.

XPLINK uses different registersDetails ire in the LE Vendor Interfaces manual.



64-bit C only uses XPLINK.



Yes.



-----Original Message-----
From: IBM Mainframe Assembler List
[mailto:[email protected]] On Behalf Of Swarbrick, Frank
Sent: Friday, June 9, 2017 8:54 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: Save areas (not XPLINK).



You say "COBOL, and other LE languages, use only standard linkage".
Is this true for 64-bit C/C++ and PL/I?



You are correct. C and C++ use XPLINK (if AMODE 31) or XPLINK-64 (if AMODE 64). 
I don't know for sure if 31-bit C programs can be made to use standard linkage 
upon entry. AMODE 64 PL/I uses XPLINK-64.

And, BTW, LE uses a modified standard linkage, with the NAB (address of the 
Next Available Byte) in the word immediately following the 72-byte save area. 
The NAB is used upon entry to provide the called program with an address for it 
to use for its own save area after saving the caller's registers.



Isn't the pragma linkage in C and the extern "linkage specifier" used to 
specify alternative linkages?



Yes. That is used when calling a program that uses standard linkage.

--
Tom Marchant

Reply via email to