From: "Elardus Engelbrecht" <[email protected]>
Sent: Wednesday, December 16, 2015 8:16 PM


Robin Vowels wrote:

But!  In performance discussions on LinkeIn's "Mainframe Assembler
Professionals" group, like this one:
http://www.linkedin.com/groups/1462937/1462937-91082881 ...
...I've learned that LOAD/STORE sequences (IC/STC, L/ST, LM/STM) are much
faster than an equivalent length MVC.  See comments in the above discussion
such as:
"CLC (like MVC) is very fast - but only after a start-up penalty. In the
MVC case using two LG/STG is much faster than a 16 byte MVC..."
and
"There is a good reason why small MVCs run slower than LG/STG pairs. There
is a bunch of overhead at the beginning of a MVC. Just one example: you
have to check if the operands are on "good" boundaries. If not, you tiptoe
your way to a good boundary. Then you can rip. Have to check for operand
overlap conditions. There is a length check involved. During this time the
LG/STG is far on its way. Some IBM machines (if I remember correctly) also
had a bigger fetch/store path for MVC. Again, once it got going. I can
assure you that a LG/STG pair is faster than a 16 byte MVC. Anyone writing
a length-1 MVC instead of an IC/STC would be laughed out of their code
review.

Rubbish.

What part of above paragraph you're referring to is rubbish?

The final sentence.  That should have been clear from my lines that followed.

>For my part, I'm also struggling to swallow that paragraph. I would rather read formal bookies confirming those statements.

KISS.
A move of length 1 is clear and unequivocal.
And it's only one line.

Indeed, if you're thinking of MVI instead of MVC.

MVI is irrelevant to the discussion.
In the context of the post and in particular the long paragraph,
I was referring to MVC to move one byte.

BTW, one common use of MVC is to propagate a byte (or two or three or four)
through an area :-
   MVC A+1(5),A
MVC B+2(10),B

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

Reply via email to