update sparcv9v memset patch

This commit is contained in:
Dennis Gilmore 2008-10-10 22:15:06 +00:00
parent 989b0e1237
commit 63801099f4
2 changed files with 64 additions and 6 deletions

View File

@ -1,5 +1,37 @@
--- libc/sysdeps/sparc/sparc64/sparcv9v/memset.S.jj 2006-03-06 02:33:03.000000000 +0100
+++ libc/sysdeps/sparc/sparc64/sparcv9v/memset.S 2008-10-07 23:52:22.000000000 +0200
2008-10-09 Jakub Jelinek <jakub@redhat.com>,
David S. Miller <davem@davemloft.net>
* sysdeps/sparc/sparc64/sparcv9v/memcpy.S,
sysdeps/sparc/sparc64/sparcv9v/memset.S,
sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: When not USE_BPR,
make sure any registers used with 64-bit 'branch-on-register'
instructions have their top 32-bits clear.
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
index 05c837f..ad2b0f7 100644
--- a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
+++ b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -61,6 +61,9 @@ END(bcopy)
.align 32
ENTRY(memcpy)
+#ifndef USE_BPR
+ srl %o2, 0, %o2
+#endif
100: /* %o0=dst, %o1=src, %o2=len */
mov %o0, %g5
cmp %o2, 0
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memset.S b/sysdeps/sparc/sparc64/sparcv9v/memset.S
index ac0a50c..64817b8 100644
--- a/sysdeps/sparc/sparc64/sparcv9v/memset.S
+++ b/sysdeps/sparc/sparc64/sparcv9v/memset.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V Niagara.
- Copyright (C) 2006 Free Software Foundation, Inc.
@ -7,14 +39,37 @@
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -49,6 +49,9 @@ END(memset)
@@ -49,7 +49,11 @@ END(memset)
ENTRY(__bzero)
clr %o2
-1: brz,pn %o1, 90f
+1:
+#ifndef USE_BRP
+ srl %o1, 0, %o1
+#endif
1: brz,pn %o1, 90f
+ brz,pn %o1, 90f
mov %o0, %o3
wr %g0, ASI_P, %asi
diff --git a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
index d94dd47..b261f46 100644
--- a/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
+++ b/sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-2.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -163,6 +163,9 @@ END(bcopy)
.align 32
ENTRY(memcpy)
+#ifndef USE_BPR
+ srl %o2, 0, %o2
+#endif
100: /* %o0=dst, %o1=src, %o2=len */
mov %o0, %g5
cmp %o2, 0

View File

@ -23,7 +23,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: 2.8
Release: 9
Release: 10
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@ -1022,6 +1022,9 @@ rm -f *.filelist*
%endif
%changelog
* Thu Oct 09 2008 Dennis Gilmore <dennis@ausil.us> 2.8-10
- updated memset patch from davem and jakub
* Tue Oct 07 2008 Dennis Gilmore <dennis@ausil.us> 2.8-9
- apply patch from Jakub for sparcv9v memset issue