summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-11 08:52:58 +0000
committerJakub Jelinek <jakub@redhat.com>2008-10-11 08:52:58 +0000
commit19c10a478c530d5af872890941662504c33ef745 (patch)
tree6771e6f2263d4aac8c11aeff36eab411d6ed7cad /sysdeps
parent17f8b4a95570df3e0d9a13eb134ca7aade70c710 (diff)
* sysdeps/sparc/sparc64/sparcv9v/memcpy.S: When not USE_BPR,
make sure any registers used with 64-bit 'branch-on-register' instructions have their top 32-bits clear. * sysdeps/sparc/sparc64/sparcv9v/memset.S: Likewise. * sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: Likewise. 2008-10-09 Jakub Jelinek <jakub@redhat.com> David S. Miller <davem@davemloft.net> * sysdeps/sparc/sparc64/sparcv9v/memcpy.S: When not USE_BPR, make sure any registers used with 64-bit 'branch-on-register' instructions have their top 32-bits clear. * sysdeps/sparc/sparc64/sparcv9v/memset.S: Likewise. * sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v/memcpy.S5
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v/memset.S8
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v2/memcpy.S5
3 files changed, 14 insertions, 4 deletions
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memcpy.S b/sysdeps/sparc/sparc64/sparcv9v/memcpy.S
index 05c837fa25..ad2b0f742c 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 ac0a50cf8e..64817b8871 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.
+ 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)
@@ -49,7 +49,11 @@ END(memset)
ENTRY(__bzero)
clr %o2
-1: brz,pn %o1, 90f
+1:
+#ifndef USE_BRP
+ srl %o1, 0, %o1
+#endif
+ 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 d94dd4701e..b261f461a4 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