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.
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
15 matches
Mail list logo