summaryrefslogtreecommitdiff
path: root/sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch')
-rw-r--r--sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch b/sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch
new file mode 100644
index 0000000..db3f4ae
--- /dev/null
+++ b/sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch
@@ -0,0 +1,43 @@
+From 6f68075869f6034f5fde3823741623d34164dc7d Mon Sep 17 00:00:00 2001
+From: Andreas Larsson <andreas@gaisler.com>
+Date: Wed, 15 Nov 2023 13:29:43 +0100
+Subject: [PATCH 3/6] sparc: Fix broken memset for sparc32 [BZ #31068]
+
+Fixes commit a61933fe27df ("sparc: Remove bzero optimization") that
+after moving code jumped to the wrong label 4.
+
+Verfied by successfully running string/test-memset on sparc32.
+
+Signed-off-by: Andreas Larsson <andreas@gaisler.com>
+Signed-off-by: Ludwig Rydberg <ludwig.rydberg@gaisler.com>
+Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+(cherry picked from commit 578190b7e43305141512dee777e4a3b3e8159393)
+---
+ sysdeps/sparc/sparc32/memset.S | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sysdeps/sparc/sparc32/memset.S b/sysdeps/sparc/sparc32/memset.S
+index ca29ff5685..1dc3a640e8 100644
+--- a/sysdeps/sparc/sparc32/memset.S
++++ b/sysdeps/sparc/sparc32/memset.S
+@@ -55,7 +55,7 @@ ENTRY(memset)
+
+ andcc %o0, 3, %o2
+ bne 3f
+-4: andcc %o0, 4, %g0
++5: andcc %o0, 4, %g0
+
+ be 2f
+ mov %g3, %g2
+@@ -139,7 +139,7 @@ ENTRY(memset)
+ stb %g3, [%o0 + 0x02]
+ 2: sub %o2, 4, %o2
+ add %o1, %o2, %o1
+- b 4b
++ b 5b
+ sub %o0, %o2, %o0
+ END(memset)
+ libc_hidden_builtin_def (memset)
+--
+2.33.0
+