This is the mail archive of the
newlib-cvs@sourceware.org
mailing list for the newlib project.
[newlib-cygwin] Fix issue with dst bias in memset
- From: Richard Earnshaw <rearnsha at sourceware dot org>
- To: newlib-cvs at sourceware dot org
- Date: 8 Nov 2018 16:46:14 -0000
- Subject: [newlib-cygwin] Fix issue with dst bias in memset
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=df7824d1a465473a1901f67e26fd1485756cb446
commit df7824d1a465473a1901f67e26fd1485756cb446
Author: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Date: Thu Nov 8 15:50:42 2018 +0000
Fix issue with dst bias in memset
This patch fixes an issue in the previous memset loop change. If the
zva size is >= 256 and there are more than 64 bytes left in the
tail, we could enter the loop and thus need to rebias dst by 32 as
well.
Since no known CPUs use this size this can't be tested natively, so I've
tested it on a simulator initialized with a large zva size.
--
Diff:
---
newlib/libc/machine/aarch64/memset.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/newlib/libc/machine/aarch64/memset.S b/newlib/libc/machine/aarch64/memset.S
index 7c8fe58..103e3f8 100644
--- a/newlib/libc/machine/aarch64/memset.S
+++ b/newlib/libc/machine/aarch64/memset.S
@@ -233,6 +233,7 @@ L(zva_other):
subs count, count, zva_len
b.hs 3b
4: add count, count, zva_len
+ sub dst, dst, 32 /* Bias dst for tail loop. */
b L(tail64)
.size memset, . - memset