glibc/sparc-Fix-broken-memset-for-sparc32-BZ-31068.patch
liqingqing_1229 ddb1b4b4a4 backport patch from glibc upstream 2.38 branch.
here is the bugfix:
- x86_64: Optimize ffsll function code size
- S390: Fix building with disable mutli arch (BZ 31196)
- sparc: Fix broken memset for sparc32 (BZ 31068)
- sparc: Remove unwind information from signal return
- sparc: Fix sparc64 memmove length comparison (BZ 31266)
- sparc: Remove unwind information from signal return stubs (BZ 31244)
2024-02-05 14:46:39 +08:00

44 lines
1.2 KiB
Diff

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