* sysdeps/arm/strlen.S [__ARMEB__]: Compute correctly for big-endian.
From Krzysztof Halasa <khc@pm.waw.pl>.
This commit is contained in:
parent
b80af23ac6
commit
f1847a8465
@ -1,3 +1,8 @@
|
||||
2004-06-11 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* sysdeps/arm/strlen.S [__ARMEB__]: Compute correctly for big-endian.
|
||||
From Krzysztof Halasa <khc@pm.waw.pl>.
|
||||
|
||||
2004-06-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/tls-macros.h [__s390x__] (TLS_LD, TLS_GD): Clobber also r14.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
|
||||
Add memory clobber to inline assembly.
|
||||
(__lll_mutex_trylock): Likewise.
|
||||
(__lll_mutex_cond_trylock): Likewise.
|
||||
|
||||
2004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
|
||||
|
@ -112,7 +112,7 @@
|
||||
" jl 0b\n" \
|
||||
"1:" \
|
||||
: "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) \
|
||||
: "m" (*__futex) : "cc" ); \
|
||||
: "m" (*__futex) : "cc", "memory" ); \
|
||||
} while (0)
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@ __lll_mutex_trylock (int *futex)
|
||||
|
||||
__asm __volatile ("cs %0,%3,%1"
|
||||
: "=d" (old), "=Q" (*futex)
|
||||
: "0" (0), "d" (1), "m" (*futex) : "cc" );
|
||||
: "0" (0), "d" (1), "m" (*futex) : "cc", "memory" );
|
||||
return old != 0;
|
||||
}
|
||||
#define lll_mutex_trylock(futex) __lll_mutex_trylock (&(futex))
|
||||
@ -138,7 +138,7 @@ __lll_mutex_cond_trylock (int *futex)
|
||||
|
||||
__asm __volatile ("cs %0,%3,%1"
|
||||
: "=d" (old), "=Q" (*futex)
|
||||
: "0" (0), "d" (2), "m" (*futex) : "cc" );
|
||||
: "0" (0), "d" (2), "m" (*futex) : "cc", "memory" );
|
||||
return old != 0;
|
||||
}
|
||||
#define lll_mutex_cond_trylock(futex) __lll_mutex_cond_trylock (&(futex))
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user