From: David S. Miller Date: Sat, 20 Feb 2010 21:42:07 +0000 (-0800) Subject: sparc: Fix v9 memchr with long buffer lengths. X-Git-Tag: upstream/2.30~13003 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2daff75bab89a597b2a29bc6f3c7f88e12352355;p=external%2Fglibc.git sparc: Fix v9 memchr with long buffer lengths. test-memchr fails on 32-bit sparc with v9 optimized memchr because it uses signed branch comparisons on the buffer pointers. --- diff --git a/ChangeLog b/ChangeLog index cd1be57..8b91c5f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): Adjust rela->r_offset by l->l_addr when rewriting PLT. + * sysdeps/sparc/sparc64/memchr.S: Use unsigned branch on greater to + test end of buffer. + 2009-02-20 Joseph Myers * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup): diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S index 4f13cb5..ab1666b 100644 --- a/sysdeps/sparc/sparc64/memchr.S +++ b/sysdeps/sparc/sparc64/memchr.S @@ -96,7 +96,7 @@ ENTRY(__memchr) * %o4 = value XOR c */ 2: cmp %o0, %o2 /* IEU1 Group */ - bg,pn %XCC, 11f /* CTI */ + bgu,pn %XCC, 11f /* CTI */ ldxa [%o0] ASI_PNF, %o3 /* Load */ sub %o4, %g1, %o5 /* IEU0 Group */ add %o0, 8, %o0 /* IEU1 */