Folks,

Again, pardon my interruption. Two aspects (about three words I think) 
I have to relate is ... pipeline cache and (needless to add), the way 
the code (sequencing) was written. 

Jim Thomas
617-233-4130             (mobile)
636-294-1014                (res)
j...@thethomasresidence.us (Email)


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of David Crayford
Sent: Tuesday, May 31, 2011 10:32 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: What is the current feeling for MVC loop vs. MVCL?

On 1/06/2011 12:13 AM, Kirk Wolf wrote:
> The IBM C compiler would generate an MVC loop.   So, that's how IBM feels
I
> guess.
>

And when the length is a constant it generates multiple MVC instructions 
to eliminate branches. Kind of like
loop unrolling.

*
*    char input[528];
*
*    memcpy( output, input, sizeof input );
MVC      (*)void(256,r1,0),input(r4,1508)
MVC      (*)void(256,r1,256),input(r4,1764)
MVC      (*)void(16,r1,512),input(r4,2020)

And if you increase the size of the buffer it generates a loop with loop 
unrolling (if that makes sense). There
seems to be a HWM where it drops into a loop.

*
*    char input[10000];
*
*    memcpy( output, input, sizeof input );
LA       r0,5
LA       r6,2176(r4,)
@2L4     DS       0H
MVC      (*)void(256,r1,0),input(r6,0)
MVC      (*)void(256,r1,256),input(r6,256)
MVC      (*)void(256,r1,512),input(r6,512)
MVC      (*)void(256,r1,768),input(r6,768)
MVC      (*)void(256,r1,1024),input(r6,1024)
MVC      (*)void(256,r1,1280),input(r6,1280)
MVC      (*)void(256,r1,1536),input(r6,1536)
LA       r1,(*)void(,r1,1792)
LA       r6,input(,r6,1792)
BRCT     r0,@2L4
MVC      (*)void(256,r1,0),input(r6,0)
MVC      (*)void(256,r1,256),input(r6,256)
MVC      (*)void(256,r1,512),input(r6,512)
MVC      (*)void(256,r1,768),input(r6,768)
MVC      (*)void(16,r1,1024),input(r6,1024)


> Kirk Wolf
> Dovetailed Technologies
> http://dovetail.com
>
> On Tue, May 31, 2011 at 8:22 AM, Binyamin
Dissen<bdis...@dissensoftware.com
>> wrote:
>> If the move is for an unknown length but is likely to be less than 256:
>>
>> Is it worth checking the length for a specific value and proceed with MVC
>> loop
>> if small enough and MVCL if large?
>>
>> --
>> Binyamin Dissen<bdis...@dissensoftware.com>
>> http://www.dissensoftware.com
>>
>> Director, Dissen Software, Bar&  Grill - Israel
>>
>>
>> Should you use the mailblocks package and expect a response from me,
>> you should preauthorize the dissensoftware.com domain.
>>
>> I very rarely bother responding to challenge/response systems,
>> especially those from irresponsible companies.
>>
>> ----------------------------------------------------------------------
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
>> Search the archives at http://bama.ua.edu/archives/ibm-main.html
>>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
> Search the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1375 / Virus Database: 1509/3671 - Release Date: 05/31/11

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to