This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.11-36-g6622141
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 20 Nov 2009 16:30:45 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.11-36-g6622141
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 66221417957963c1d2df8d79f43573e328df2275 (commit)
from df1934daa7788ca5f19d82efb02cdf9b9c495b1a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=66221417957963c1d2df8d79f43573e328df2275
commit 66221417957963c1d2df8d79f43573e328df2275
Author: H.J. Lu <hongjiu.lu@intel.com>
Date: Fri Nov 20 08:30:20 2009 -0800
Properly recover from shorter read.
diff --git a/ChangeLog b/ChangeLog
index a60bfcc..c99965f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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-19 Ulrich Drepper <drepper@redhat.com>
[BZ #10958]
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index e721e17..cdd71ca 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -71,8 +71,7 @@ ENTRY(__memchr)
cmp.ne p7, p0 = r0, r0 // clear p7
extr.u chr = in1, 0, 8 // chr = (unsigned char) in1
mov len = in2
- // use a simple loop on data shorter than software pipeline
- cmp.gtu p6, p0 = ((MEMLAT + 1) * 8), in2
+ cmp.gtu p6, p0 = 16, in2 // use a simple loop for short
(p6) br.cond.spnt .srchfew ;; // searches
sub loopcnt = 8, tmp // loopcnt = 8 - tmp
cmp.eq p6, p0 = tmp, r0
@@ -127,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:
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
sysdeps/ia64/memchr.S | 14 +++++++++++---
2 files changed, 17 insertions(+), 3 deletions(-)
hooks/post-receive
--
GNU C Library master sources