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...@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...@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:


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to