|
From: <sv...@va...> - 2005-09-25 10:16:50
|
Author: sewardj
Date: 2005-09-25 11:16:46 +0100 (Sun, 25 Sep 2005)
New Revision: 4759
Log:
Unroll loop in VG_(memcpy). This is a bit less effective than
unroll-and-vectorise, but it's also simpler.
Modified:
branches/ASPACEM/coregrind/m_libcbase.c
Modified: branches/ASPACEM/coregrind/m_libcbase.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_libcbase.c 2005-09-25 09:55:29 UTC (rev =
4758)
+++ branches/ASPACEM/coregrind/m_libcbase.c 2005-09-25 10:16:46 UTC (rev =
4759)
@@ -337,6 +337,20 @@
const Char *s =3D (const Char *)src;
Char *d =3D (Char *)dest;
=20
+ while (sz >=3D 8) {
+ d[0] =3D s[0];
+ d[1] =3D s[1];
+ d[2] =3D s[2];
+ d[3] =3D s[3];
+ d[4] =3D s[4];
+ d[5] =3D s[5];
+ d[6] =3D s[6];
+ d[7] =3D s[7];
+ sz -=3D 8;
+ d +=3D 8;
+ s +=3D 8;
+ }
+
while (sz--)
*d++ =3D *s++;
=20
|