Subject: Re: Fast memcpy(3) making use of MMX instructions
To: Andreas Persson <pap.is@home.se>
From: Bang Jun-Young <bjy@mogua.org>
List: tech-perform
Date: 08/20/2001 21:58:03
On Sat, Aug 18, 2001 at 04:15:24PM +0200, Andreas Persson wrote:
> On Sat, Aug 18, 2001 at 10:29:04PM +0900, Bang Jun-Young <bjy@mogua.org> wrote:
> >Which version of gas did you try with? I have installed cvs version
> >of binutils as of a few days ago. gas doesn't recognize prefetch[012]
> I am using the toolchain now:
> GNU assembler version 2.11.2 (i386--netbsdelf) using BFD version 2.11.2
> And you missed a t there, its prefetcht[012].

Thanks for pointing out that. I wasn't careful.

> 
> >while it does just fine with prefetch and prefetchnta. I have
> >experienced the same error with binutils-2.11.2. Strangely, even
> >Linux is using prefetch for all kinds of P6 family and compatibles.
> >How would it work if prefetch instruction was only available for 
> >Athlon?
> The only place I see it used in on my very old linux tree is in mmx.c which
> specifically says MMX 3DNow! library helper functions. Anyway, all I know is
> that the prefetch opcode that gas is producing is not documented anywhere
> in the intel developer manual.

I was careless again. It was written for AMD processors.

> 
> >I should read Intel and AMD manuals again. BTW, is there anybody
> >who will send me results obtained from MMX-capable Intel processors? 
> >I sold my Pentium III some months ago (to buy an Athlon ;), so I have
> >only Pentium and 6x86 now. 
> >
> Sure, here's mine. The empty ones are the ones dumping core.
[snip]

From the results:
 - Utilizing MMX for memcpy gives _no_ gain on Intel processor. Only
   AMD processors can benefit from it. I guess Linux people already
   knew that.
 - Memory transfer performance of Pentium III (machine) is even lower
   than that of Athlon (machine).

Feel free to add to the above. :)

Jun-Young

-- 
Bang Jun-Young <bjy@mogua.org>