Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Brite
I compared to the performance of same programs before they were converted to 64-bit. How do those 64-bit instructions (e.g. LGR, STMG, LMG) work in 31-bit AMODE? This is the first I have to deal with 64-bit mode.

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Steve Smith
The Bind attribute merely tells Program Management what mode you want to be called in, it has no lingering effect. What is slow? Compared to what? I converted a service routine to 64-bit, but it keeps the same interface to its 31-bit mode callers. When called, it cleans up the registers, then

Re: Lower case csect/entry names

2015-05-05 Thread John Ehrman
I just completed an assembler program that will be linked with a c program. The objective of the assembler program is to perform SRB/zIIP-enabled socket i/o for the c program. I would like the csect and entry names in the assembler program to include lower case letters (to match c

Re: Lower case csect/entry names

2015-05-05 Thread Paul Gilmartin
On 2015-05-05 18:00, Russ Teubner (HostBridge) wrote: I just completed an assembler program that will be linked with a c program. The objective of the assembler program is to perform SRB/zIIP-enabled socket i/o for the c program. I would like the csect and entry names in the assembler

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Chuck Arney
I believe what he is saying Steve, is that his table access subroutine is called once for each record. Another routine does the I/O and passes him the buffer address. Therefore, his AMODE 64 subroutine must exit in the caller's AMODE each time thus requiring the mode switches. Mr/MS Brite,

Lower case csect/entry names

2015-05-05 Thread Russ Teubner (HostBridge)
I just completed an assembler program that will be linked with a c program. The objective of the assembler program is to perform SRB/zIIP-enabled socket i/o for the c program. I would like the csect and entry names in the assembler program to include lower case letters (to match c

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Brite
Thanks everyone for all the helpful info. The program does use SAM64 to switch to AMODE(64) before issuing IARV64 to get storage above 2GB. And use SAM31 to switch back. So the attribute of load module after LNKEDT really doesn't matter. Is this correct? The program also use SYSSTATE

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Tom Marchant
On Tue, 5 May 2015 08:59:00 -0400, Brite wrote: We have some assembler programs written in 64-bit mode Do you mean that they run AMODE(64)? (using 64-bit mode instructions) I think you may be confusing AMODE(64) with using 64-bit registers. since they allocate storage above 2G line to put

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Chuck Arney
You can use any of the instructions you listed while in AMODE 31. They should be no faster or slower in either AMODE 31 or 64. The only reason you need AMODE 64, from your description, is to use storage above the bar. This will mean using a z/OS service to request the allocation of the

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Blaicher, Christopher Y.
SAM64, SAM31 and SAM24 are relatively slow instructions. Are you shifting between addressing modes only when you have to? If you clear the 64-bit registers and set up the base registers you can probably do a single SAM64 and leave it in that mode. Yes, you will have to shift to AMODE 31 to

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Steve Smith
It's important to keep the concepts of 64-bit registers separate from 64-bit addressing. The former supports that latter, but there are many capabilities and benefits of 64-bit registers that have nothing to do with addressing. Most -G instructions work the same in any addressing mode. A few

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Steve Smith
SYSSTATE sets a global variable that many IBM macros refer to so they can generate different code for AMODE 64. For example CALL expands parameter lists with 8-byte addresses when set. It has effect only at assembly time, and doesn't actually set the AMODE. It's analogous to USING on a register

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Brite
The program is mainly in AMODE 31. It switches to AMODE 64 using SAM64 only when need to use the table in storage above 2GB and switches back after. Can this explain why I only notice significant delay during initial load? It loads a table of 200,000 records from QSAM file to the memory. It

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Abe Kornelis
Agreed. Switching to BSAM might be another way to speed the thing up. Abe Kornelis. === Gary Weinhold schreef op 5-5-2015 om 17:50: Sounds like buffering records (like 100) or so into 31-bit memory in AMODE 31 and then looping on the load in AMODE64 could improve things. On

Re: LNKEDT 64-bit mode assembler in AMODE 31

2015-05-05 Thread Brite
These programs don't do I/O. They are called by other programs that do I/O. The record will be moved from I/O buffer (I remember they are always below 16MB) to storage above 2GB. Is there performance difference between moving from below 16MB to above 16MB and moving from below 16MB to above