mirror of git://sourceware.org/git/glibc.git
* sysdeps/unix/sysv/linux/sh/sysdep.h (INTERNAL_SYSCALL):
Add "t" to clobber list. (INTERNAL_SYSCALL_NCS): Likewise.
This commit is contained in:
parent
1dd757696b
commit
a7bd183ffe
|
@ -1,3 +1,9 @@
|
|||
2009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sh/sysdep.h (INTERNAL_SYSCALL):
|
||||
Add "t" to clobber list.
|
||||
(INTERNAL_SYSCALL_NCS): Likewise.
|
||||
|
||||
2009-01-28 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nss/getent.c (print_networks): Don't print comma between aliases.
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2009-01-28 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locales/as_IN: Break circular include loops introduced in last patch.
|
||||
* locales/bn_BD: Likewise.
|
||||
* locales/bn_IN: Likewise.
|
||||
* locales/hi_IN: Likewise.
|
||||
* locales/mr_IN: Likewise.
|
||||
Patch by Pravin Satpute <psatpute@redhat.com>.
|
||||
|
||||
2009-01-08 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #9701]
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sh/lowlevellock.S
|
||||
(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
|
||||
instead of computing relative timeout.
|
||||
* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
|
||||
FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
|
||||
|
||||
2009-01-25 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2003, 2004, 2005, 2007, 2008
|
||||
/* Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
|
@ -36,6 +36,13 @@
|
|||
mov #(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), tmp; \
|
||||
extu.b tmp, tmp; \
|
||||
xor tmp, reg
|
||||
# define LOAD_FUTEX_WAIT_ABS(reg,tmp,tmp2) \
|
||||
mov #(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG), tmp; \
|
||||
extu.b tmp, tmp; \
|
||||
mov #(FUTEX_CLOCK_REALTIME >> 8), tmp2; \
|
||||
swap.b tmp2, tmp2; \
|
||||
or tmp2, tmp; \
|
||||
xor tmp, reg
|
||||
# define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \
|
||||
mov #(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), tmp; \
|
||||
extu.b tmp, tmp; \
|
||||
|
@ -96,6 +103,22 @@
|
|||
and tmp2, reg ; \
|
||||
mov #FUTEX_WAIT, tmp ; \
|
||||
or tmp, reg
|
||||
# define LOAD_FUTEX_WAIT_ABS(reg,tmp,tmp2) \
|
||||
stc gbr, tmp ; \
|
||||
mov.w 99f, tmp2 ; \
|
||||
add tmp2, tmp ; \
|
||||
mov.l @tmp, tmp2 ; \
|
||||
bra 98f ; \
|
||||
mov #FUTEX_PRIVATE_FLAG, tmp ; \
|
||||
99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
|
||||
98: extu.b tmp, tmp ; \
|
||||
xor tmp, reg ; \
|
||||
and tmp2, reg ; \
|
||||
mov #FUTEX_WAIT_BITSET, tmp ; \
|
||||
mov #(FUTEX_CLOCK_REALTIME >> 8), tmp2; \
|
||||
swap.b tmp2, tmp2; \
|
||||
or tmp2, tmp; \
|
||||
or tmp, reg
|
||||
# endif
|
||||
# define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \
|
||||
stc gbr, tmp ; \
|
||||
|
@ -193,12 +216,85 @@ __lll_lock_wait:
|
|||
cfi_endproc
|
||||
.size __lll_lock_wait,.-__lll_lock_wait
|
||||
|
||||
/* r5 (r8): futex
|
||||
r7 (r11): flags
|
||||
r6 (r9): timeout
|
||||
r4 (r10): futex value
|
||||
*/
|
||||
.globl __lll_timedlock_wait
|
||||
.type __lll_timedlock_wait,@function
|
||||
.hidden __lll_timedlock_wait
|
||||
.align 5
|
||||
cfi_startproc
|
||||
__lll_timedlock_wait:
|
||||
mov.l r12, @-r15
|
||||
cfi_adjust_cfa_offset(4)
|
||||
cfi_rel_offset (r12, 0)
|
||||
|
||||
# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
|
||||
mov.l .Lhave, r1
|
||||
# ifdef PIC
|
||||
mova .Lgot, r0
|
||||
mov.l .Lgot, r12
|
||||
add r0, r12
|
||||
add r12, r1
|
||||
# endif
|
||||
mov.l @r1, r0
|
||||
tst r0, r0
|
||||
bt .Lreltmo
|
||||
# endif
|
||||
|
||||
mov r4, r2
|
||||
mov r5, r4
|
||||
mov r7, r5
|
||||
mov r6, r7
|
||||
LOAD_FUTEX_WAIT_ABS (r5, r0, r1)
|
||||
|
||||
mov #2, r6
|
||||
cmp/eq r6, r2
|
||||
bf/s 2f
|
||||
mov r2, r6
|
||||
|
||||
1:
|
||||
mov #2, r6
|
||||
mov #-1, r1
|
||||
mov #SYS_futex, r3
|
||||
extu.b r3, r3
|
||||
trapa #0x16
|
||||
SYSCALL_INST_PAD
|
||||
mov r0, r6
|
||||
|
||||
2:
|
||||
XCHG (r2, @r4, r3) /* NB: lock is implied */
|
||||
|
||||
tst r3, r3
|
||||
bt/s 3f
|
||||
mov r6, r0
|
||||
|
||||
cmp/eq #-ETIMEDOUT, r0
|
||||
bt 4f
|
||||
cmp/eq #-EINVAL, r0
|
||||
bf 1b
|
||||
4:
|
||||
neg r0, r3
|
||||
3:
|
||||
mov r3, r0
|
||||
rts
|
||||
mov.l @r15+, r12
|
||||
|
||||
.align 2
|
||||
# ifdef PIC
|
||||
.Lgot:
|
||||
.long _GLOBAL_OFFSET_TABLE_
|
||||
.Lhave:
|
||||
.long __have_futex_clock_realtime@GOTOFF
|
||||
# else
|
||||
.Lhave:
|
||||
.long __have_futex_clock_realtime
|
||||
# endif
|
||||
|
||||
# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
|
||||
.Lreltmo:
|
||||
/* Check for a valid timeout value. */
|
||||
mov.l @(4,r6), r1
|
||||
mov.l .L1g, r0
|
||||
|
@ -290,12 +386,15 @@ __lll_timedlock_wait:
|
|||
mov.l @r15+, r8
|
||||
mov.l @r15+, r9
|
||||
mov.l @r15+, r10
|
||||
mov.l @r15+, r11
|
||||
rts
|
||||
mov.l @r15+, r11
|
||||
mov.l @r15+, r12
|
||||
|
||||
3:
|
||||
mov.l @r15+, r12
|
||||
rts
|
||||
mov #EINVAL, r0
|
||||
# endif
|
||||
cfi_endproc
|
||||
|
||||
.L1k:
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -37,6 +38,9 @@
|
|||
#define FUTEX_WAIT_BITSET 9
|
||||
#define FUTEX_WAKE_BITSET 10
|
||||
#define FUTEX_PRIVATE_FLAG 128
|
||||
#define FUTEX_CLOCK_REALTIME 256
|
||||
|
||||
#define FUTEX_BITSET_MATCH_ANY 0xffffffff
|
||||
|
||||
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004,
|
||||
2005,2006 Free Software Foundation, Inc.
|
||||
2005,2006,2009 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
|
||||
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
|
||||
|
@ -339,7 +339,7 @@
|
|||
asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD \
|
||||
: "=z" (resultvar) \
|
||||
: "r" (r3) ASMFMT_##nr \
|
||||
: "memory"); \
|
||||
: "memory", "t"); \
|
||||
\
|
||||
(int) resultvar; })
|
||||
|
||||
|
@ -353,7 +353,7 @@
|
|||
asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD \
|
||||
: "=z" (resultvar) \
|
||||
: "r" (r3) ASMFMT_##nr \
|
||||
: "memory"); \
|
||||
: "memory", "t"); \
|
||||
\
|
||||
(int) resultvar; })
|
||||
|
||||
|
|
Loading…
Reference in New Issue