summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/machine/sh/memset.S6
2 files changed, 9 insertions, 2 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 52e7337c6..efa387458 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 13 15:52:03 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * libc/machine/sh/memset.S (memset, __SHMEDIA__ code):
+ Fixed bug in writing end of set region.
+
2002-06-10 Christopher Faylor <cgf@redhat.com>
* libc/include/process.h: Remove cygwin-only sexec* declarations. Fix
diff --git a/newlib/libc/machine/sh/memset.S b/newlib/libc/machine/sh/memset.S
index 3d6f8ef64..3d37e33e3 100644
--- a/newlib/libc/machine/sh/memset.S
+++ b/newlib/libc/machine/sh/memset.S
@@ -19,7 +19,7 @@ ENTRY(memset)
mperm.w r3, r63, r3 // Fill pattern now in every byte of r3
movi 8, r9
- bgtu/u r23, r9, tr0
+ bgtu/u r23, r9, tr0 // multiquad
ldlo.q r2, 0, r7
shlli r4, 2, r4
@@ -62,8 +62,10 @@ loop:
st.q r25, 24, r3
st.q r25, 32, r3
addi r25, 32, r25
- bgeu/l r8, r25, tr1
+ bgeu/l r8, r25, tr1 // loop
+ st.q r20, -40, r3
+ st.q r20, -32, r3
st.q r20, -24, r3
st.q r20, -16, r3
st.q r20, -8, r3