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

r3998 - glibc-package/trunk/debian/patches/ia64



Author: aurel32
Date: 2009-11-20 23:06:30 +0000 (Fri, 20 Nov 2009)
New Revision: 3998

Modified:
   glibc-package/trunk/debian/patches/ia64/cvs-memchr.diff
Log:
Update from upstream



Modified: glibc-package/trunk/debian/patches/ia64/cvs-memchr.diff
===================================================================
--- glibc-package/trunk/debian/patches/ia64/cvs-memchr.diff	2009-11-20 19:04:51 UTC (rev 3997)
+++ glibc-package/trunk/debian/patches/ia64/cvs-memchr.diff	2009-11-20 23:06:30 UTC (rev 3998)
@@ -1,3 +1,9 @@
+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]
@@ -3,17 +9,25 @@
 	* 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..e721e17 100644
+index cd062b2..cdd71ca 100644
 --- a/sysdeps/ia64/memchr.S
 +++ b/sysdeps/ia64/memchr.S
-@@ -71,7 +71,8 @@ ENTRY(__memchr)
- 	cmp.ne	p7, p0 = r0, r0		// clear p7
- 	extr.u	chr = in1, 0, 8		// chr = (unsigned char) in1
- 	mov	len = in2
--	cmp.gtu	p6, p0 = 16, in2	// use a simple loop for short
-+	// use a simple loop on data shorter than software pipeline
-+	cmp.gtu	p6, p0 = ((MEMLAT + 1) * 8), in2
- (p6)	br.cond.spnt .srchfew ;;	// searches
- 	sub	loopcnt = 8, tmp	// loopcnt = 8 - tmp
- 	cmp.eq	p6, p0 = tmp, r0
+@@ -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:


Reply to: