From: "Steve Smith" <[email protected]>
Sent: Thursday, October 29, 2015 2:28 AM
I sometimes use MVCK for variable-length moves (in the same key). Usually,
a preceding IPK is needed, but EXed MVCs usually require a BCTR or
something. It's very convenient (especially when I don't want to decrement
the length register), but has the performance warning too.
It baffles me that we don't have an instruction like MVCK without the key
specification. MVCL isn't good enough (not that it isn't useful in many
cases) for a typical, relatively short, variable-length move. Not only do
you need to set up 3 or 4 registers, it destroys them all.
In the email to which you have replied, the author tells of the MVCOS
instruction that seems to do what you want.
On Tue, Oct 27, 2015 at 6:17 PM, Blaicher, Christopher Y. <
[email protected]> wrote:
I did some experiments on a z196 and a z10 to determine that until you get
close to several pages an MVC loop with a final executed MVC is faster. On
those machines the breakeven point was 32K.
The cost is because MVCL and the like are millicode instructions and there
is a fair overhead to starting and ending the millicode environment. MVCL
will kick into a move page shortcut when things line up on a page boundary,
both source and destination, but how often does that happen?
Chris Blaicher
Technical Architect
Software Development
Syncsort Incorporated
50 Tice Boulevard, Woodcliff Lake, NJ 07677
P: 201-930-8234 | M: 512-627-3803
E: [email protected]
-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Robert Ngan
Sent: Tuesday, October 27, 2015 5:27 PM
To: MVS List Server 2 <[email protected]>
Subject: Re: Moves and others
There's also MVCOS (with zero in R00 for problem state code). It also uses
2 extra registers (R00, plus a length register). I heard it was also
quite slow compared to MVC, but not sure how it's performance compares to
an executed MVC (or a MVC loop, plus a final executed MVC).
Excluding setup, it's only a single instruction for variable length moves
up to 4K.
Robert Ngan
CSC Financial Services Group
IBM Mainframe Assembler List <[email protected]> wrote on
2015/10/15 18:29:36:
> From: Robin Vowels <[email protected]>
> To: [email protected]
> Date: 2015/10/15 18:31
> Subject: Re: Moves and others
> Sent by: IBM Mainframe Assembler List
> <[email protected]>
>
> ----- Original Message -----
> From: "Paul Gilmartin"
> <[email protected]>
> To: <[email protected]>
> Sent: Friday, October 16, 2015 3:16 AM
> Subject: Re: Moves and others
>
>
> On 2015-10-15, at 08:48, Robin Vowels wrote:
> >
> > IBM should have produced a special EXC instruction for characters,
> > that did what EX does, but accepts k, the number of bytes to move
> (or compare, etc),
> > tests for zero (and performs a no-op if it is), subtracts 1, and
> then executes MVC.
>
> MVCL?
>
> Kind of overkill for small moves.
> 4 registers!
---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com