From 19c10a478c530d5af872890941662504c33ef745 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 11 Oct 2008 08:52:58 +0000 Subject: [PATCH] * 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 David S. Miller * 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. --- ChangeLog | 9 +++++++++ sysdeps/sparc/sparc64/sparcv9v/memcpy.S | 5 ++++- sysdeps/sparc/sparc64/sparcv9v/memset.S | 8 ++++++-- sysdeps/sparc/sparc64/sparcv9v2/memcpy.S | 5 ++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9dd19f1575..ca07dc73e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-10-09 Jakub Jelinek + David S. Miller + + * 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-09-18 Andreas Schwab [BZ #6942] 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 -- 2.11.4.GIT