Bug#563882: (no subject)
On Wed, Jan 27, 2010 at 11:47:42AM +0100, Petr Baudis wrote:
> > This patch is already included in the Debian libc6 package. It actually
> > may be the cause of the problem you reported.
>
> This problem is already fixed in 2.11.1 or master. Have you also applied
> the proper _second_ patch in that bug? C.f. my and H.J.Lu's comments and
> mailing list posts.
>
Here is the patch that is applied. It makes memchr.S identical to the
current HEAD version. I guess the problem is *not* fixed in HEAD or
2.11.1. What is fixed is the stratcliff testsuite problem, and this
fixes may have actually introduced this problem.
2009-11-18 H.J. Lu <hongjiu.lu@intel.com>
[BZ #10162]
* sysdeps/ia64/memchr.S: Don't use a simple loop on data shorter
than software pipeline. Properly recover from shorter read.
2009-11-09 H.J. Lu <hongjiu.lu@intel.com>
[BZ #10162]
* sysdeps/ia64/memchr.S: Use a simple loop on data shorter than
software pipeline.
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index cd062b2..cdd71ca 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -126,7 +126,16 @@ ENTRY(__memchr)
br.ret.sptk.many b0
.recovery:
- adds ret0 = -((MEMLAT + 1) * 8), ret0;;
+#if MEMLAT != 6
+# error "MEMLAT must be 6!"
+#endif
+(p[MEMLAT-6]) add ret0 = -8, ret0;;
+(p[MEMLAT-5]) add ret0 = -8, ret0;;
+(p[MEMLAT-4]) add ret0 = -8, ret0;;
+(p[MEMLAT-3]) add ret0 = -8, ret0;;
+(p[MEMLAT-2]) add ret0 = -8, ret0;;
+(p[MEMLAT-1]) add ret0 = -8, ret0;;
+(p[MEMLAT]) add ret0 = -8, ret0;;
(p[MEMLAT+1]) add ret0 = -8, ret0;;
(p[MEMLAT+2]) add ret0 = -8, ret0;;
.l4:
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
Reply to: