From: Roland McGrath Date: Fri, 11 Jun 2004 10:15:34 +0000 (+0000) Subject: 2004-06-11 Roland McGrath X-Git-Tag: upstream/2.30~10627^2~1167 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=482f87008140f8aa5354822fdffd160cd25e0e6b;p=external%2Fglibc.git 2004-06-11 Roland McGrath * sysdeps/arm/strlen.S [__ARMEB__]: Compute correctly for big-endian. From Krzysztof Halasa . --- diff --git a/sysdeps/arm/strlen.S b/sysdeps/arm/strlen.S index f29528a..a83c41d 100644 --- a/sysdeps/arm/strlen.S +++ b/sysdeps/arm/strlen.S @@ -53,12 +53,21 @@ Laligned: @ here, we have a word in r2. Does it ldrne r2, [r1], $4 @ and we continue to the next word bne Laligned @ Llastword: @ drop through to here once we find a +#ifdef __ARMEB__ + tst r2, $0xff000000 @ word that has a zero byte in it + addne r0, r0, $1 @ + tstne r2, $0x00ff0000 @ and add up to 3 bytes on to it + addne r0, r0, $1 @ + tstne r2, $0x0000ff00 @ (if first three all non-zero, 4th + addne r0, r0, $1 @ must be zero) +#else tst r2, $0x000000ff @ word that has a zero byte in it addne r0, r0, $1 @ tstne r2, $0x0000ff00 @ and add up to 3 bytes on to it addne r0, r0, $1 @ tstne r2, $0x00ff0000 @ (if first three all non-zero, 4th addne r0, r0, $1 @ must be zero) +#endif RETINSTR(mov,pc,lr) END(strlen) libc_hidden_builtin_def (strlen)