Yes, I was just mentioning an alternative.  But MVCOS is a fairly new
instruction, and I can't use it until ZS-3 is the minimum level supported
by z/OS.

Also, both MVCK and MVCOS require an extra register that my ideal
variable-length MVC would not.

I would also hope it would come *without* the performance caveat!

sas

On Wed, Oct 28, 2015 at 11:44 AM, Robin Vowels <[email protected]> wrote:

> 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
>



-- 
sas

Reply via email to