diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/memchr.S | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/memcmp.S | 4 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/strncmp.S | 4 |
4 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 44dc704b55..411ef3dcc3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015-04-17 Il'ya Malakhov <ilmalakhov@yandex.ru> + + [BZ #17825] + * sysdeps/sparc/sparc64/memchr.S: Fix signedness handling of length. + * sysdeps/sparc/sparc64/memcmp.S: Likewise. + * sysdeps/sparc/sparc64/strncmp.S: Likewise. + 2015-04-17 Roland McGrath <roland@hack.frob.com> Add preliminary port to Google Native Client on ARM. diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S index 23ed62ea4d..d92bad156c 100644 --- a/sysdeps/sparc/sparc64/memchr.S +++ b/sysdeps/sparc/sparc64/memchr.S @@ -63,7 +63,8 @@ ENTRY(__memchr) be,pn %XCC, 12f /* CTI */ #endif sll %o1, 8, %g3 /* IEU0 Group */ - add %o0, %o2, %o2 /* IEU1 */ + addcc %o0, %o2, %o2 /* IEU1 */ + movcs %XCC, -1, %o2 /* IEU0 Group */ sethi %hi(0x01010101), %g1 /* IEU0 Group */ or %g3, %o1, %g3 /* IEU1 */ diff --git a/sysdeps/sparc/sparc64/memcmp.S b/sysdeps/sparc/sparc64/memcmp.S index 18ed0ce77a..552307edeb 100644 --- a/sysdeps/sparc/sparc64/memcmp.S +++ b/sysdeps/sparc/sparc64/memcmp.S @@ -51,7 +51,7 @@ ENTRY(memcmp) 2: mov %g1, %o3 /* IEU0 Group */ subcc %o2, 8, %o2 /* IEU1 */ - bl,pn %XCC, 5f /* CTI */ + bcs,pn %XCC, 5f /* CTI */ ldxa [%o0] ASI_PNF, %g1 /* Load Group */ mov %g2, %o4 /* IEU0 */ ldxa [%o0 + %o1] ASI_PNF, %g2 /* Load Group */ @@ -125,7 +125,7 @@ ENTRY(memcmp) ldxa [%o0] ASI_PNF, %g5 /* Load */ subcc %o2, 8, %o2 /* IEU1 Group */ - bl,pn %XCC, 6b /* CTI */ + bcs,pn %XCC, 6b /* CTI */ or %o4, %o5, %o4 /* IEU0 */ cmp %o3, %o4 /* IEU1 Group */ diff --git a/sysdeps/sparc/sparc64/strncmp.S b/sysdeps/sparc/sparc64/strncmp.S index cf8f56e712..233b62b20a 100644 --- a/sysdeps/sparc/sparc64/strncmp.S +++ b/sysdeps/sparc/sparc64/strncmp.S @@ -72,7 +72,7 @@ ENTRY(strncmp) add %o0, 8, %o0 /* IEU1 */ 2: subcc %o2, 8, %o2 /* IEU1 Group */ - bl,pn %XCC, 5f /* CTI */ + bcs,pn %XCC, 5f /* CTI */ add %o1, 8, %o1 /* IEU0 */ sub %g4, %g1, %g3 /* IEU0 Group */ @@ -310,7 +310,7 @@ ENTRY(strncmp) addcc %o0, 8, %o0 /* IEU1 */ srlx %o4, %g6, %o5 /* IEU0 */ subcc %o2, 8, %o2 /* IEU1 Group */ - bl,pn %XCC, 5b /* CTI */ + bcs,pn %XCC, 5b /* CTI */ or %o3, %o5, %o3 /* IEU0 */ cmp %g4, %o3 /* IEU1 Group */ |