aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/ia64/strncpy.S7
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 95dae705b4..c0e9d2e38f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-26 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/ia64/strncpy.S: Fix recovery code.
+ Patch by David Mosberger <davidm@hpl.hp.com>.
+
2002-04-24 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/Versions [libc]: Add getunwind for
diff --git a/sysdeps/ia64/strncpy.S b/sysdeps/ia64/strncpy.S
index a6e0e7b7f2..f5c1c9da6f 100644
--- a/sysdeps/ia64/strncpy.S
+++ b/sysdeps/ia64/strncpy.S
@@ -205,6 +205,7 @@ ENTRY(strncpy)
st1 [in0] = c, 1 // *dest++ = c
(p6) cmp.ne p6, p0 = c, r0
br.cloop.dptk .l8
+ ;;
mov ar.lc = saved_lc // restore the loop counter
mov pr = saved_pr, -1 // restore the predicate registers
br.ret.sptk.many b0
@@ -213,11 +214,11 @@ ENTRY(strncpy)
ld8 r[0] = [tmp]
br.cond.sptk .back2
.recovery3:
- add tmp = -(MEMLAT + 1) * 8, src ;;
+ add tmp = -MEMLAT * 8, src ;;
ld8 r[MEMLAT] = [tmp]
br.cond.sptk .back3
.recovery4:
- add tmp = -(MEMLAT + 1) * 8, src ;;
- ld8 r[MEMLAT] = [tmp]
+ add tmp = -(MEMLAT - 1) * 8, src ;;
+ ld8 r[MEMLAT - 1] = [tmp]
br.cond.sptk .back4
END(strncpy)