[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: