* sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.

This commit is contained in:
Ulrich Drepper 2008-01-22 18:58:31 +00:00
parent 3c7e0ea69a
commit b4b166af4f
8 changed files with 67 additions and 18 deletions

View File

@ -1,3 +1,7 @@
2008-01-12 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.
2008-01-12 Andreas Jaeger <aj@suse.de>
[BZ #5040]

View File

@ -1,3 +1,22 @@
2008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
2008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
a scratch register.
* sysdeps/unix/sysv/linux/sh/lowlevellock.S
(__lll_lock_wait_private): Fix typo.
* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
(pthread_barrier_wait): Likewise. Adjust XADD use.
* sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
Adjust XADD use.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
(pthread_rwlock_timedrdlock): Return correct return value.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
(pthread_rwlock_timedwrlock): Likewise.
2008-01-15 Ulrich Drepper <drepper@redhat.com>
* tst-eintr2.c (do_test): make sure that if mutex_lock in main

View File

@ -1,4 +1,5 @@
/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2005, 2007, 2008
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
@ -143,7 +144,7 @@ __lll_lock_wait_private:
bf 1b
mov.l @r15+, r8
ret
rts
mov r2, r0
cfi_endproc
.size __lll_lock_wait_private,.-__lll_lock_wait_private

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2007, 2008 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
@ -86,7 +86,7 @@ pthread_barrier_wait:
initial count unlock the object. */
mov #1, r3
mov.l @(INIT_COUNT,r8), r4
XADD (r3, @(LEFT,r8), r2)
XADD (r3, @(LEFT,r8), r2, r5)
add #-1, r4
cmp/eq r2, r4
bf 10f
@ -131,7 +131,7 @@ pthread_barrier_wait:
initial count unlock the object. */
mov #1, r3
mov.l @(INIT_COUNT,r8), r4
XADD (r3, @(LEFT,r8), r2)
XADD (r3, @(LEFT,r8), r2, r5)
add #-1, r4
cmp/eq r2, r4
bf 5f
@ -144,7 +144,7 @@ pthread_barrier_wait:
mov #-1, r0 /* == PTHREAD_BARRIER_SERIAL_THREAD */
lds.l @r15+, pr
mov.l @r15+, r8
ret
rts
mov.l @r15+, r9
1:

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2007, 2008 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
@ -232,6 +232,7 @@ pthread_rwlock_timedrdlock:
.word TID - TLS_PRE_TCB_SIZE
6:
mov r3, r10
mov r8, r4
#if MUTEX != 0
add #MUTEX, r4
@ -244,7 +245,7 @@ pthread_rwlock_timedrdlock:
nop
.Lwake2b:
bra 7b
mov #0, r3
mov r10, r3
8:
/* Overflow. */
@ -278,6 +279,7 @@ pthread_rwlock_timedrdlock:
nop
12:
mov r3, r10
mov r8, r5
#if MUTEX != 0
add #MUTEX, r5
@ -290,7 +292,7 @@ pthread_rwlock_timedrdlock:
mov r2, r4
.Lwait3b:
bra 13b
nop
mov r10, r3
16:
bra 17b

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2007, 2008 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
@ -225,6 +225,7 @@ pthread_rwlock_timedwrlock:
bra 9b
mov #EDEADLK, r3
6:
mov r3, r10
mov r8, r4
#if MUTEX != 0
add #MUTEX, r4
@ -237,7 +238,7 @@ pthread_rwlock_timedwrlock:
nop
.Lwake6b:
bra 7b
mov #0, r3
mov r10, r3
.Ltidoff:
.word TID - TLS_PRE_TCB_SIZE
@ -266,6 +267,7 @@ pthread_rwlock_timedwrlock:
nop
12:
mov r3, r10
mov r8, r5
#if MUTEX != 0
add #MUTEX, r5
@ -278,7 +280,7 @@ pthread_rwlock_timedwrlock:
mov r2, r4
.Lwait7b:
bra 13b
nop
mov r10, r3
16:
bra 17b

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2007, 2008 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
@ -30,8 +30,16 @@
.type __new_sem_post,@function
.align 5
__new_sem_post:
mov #1, r3
XADD (r3, @(VALUE,r4), r2)
mov.l @(VALUE,r4), r2
0:
mov.l .Lmax, r1
cmp/eq r1, r2
bt/s 3f
mov r2, r3
mov r3, r5
add #1, r5
CMPXCHG (r3, @(VALUE,r4), r5, r2)
bf 0b
mov.l @(NWAITERS,r4), r2
tst r2, r2
bt 2f
@ -52,7 +60,15 @@ __new_sem_post:
mov #0, r0
1:
mov #EINVAL, r2
bra 4f
mov #EINVAL, r2
3:
mov #EOVERFLOW, r2
4:
mov.l r12, @-r15
mov.l r8, @-r15
sts.l pr, @-r15
mova .Lgot3, r0
mov.l .Lgot3, r12
add r0, r12
@ -67,19 +83,24 @@ __new_sem_post:
.Lerrno3:
.long errno@GOTTPOFF
.Lexit:
mov.l r2, @r0
#else
mov r2, r8
mov.l .Lerrloc3, r1
bsrf r1
nop
.Lerrloc3b:
mov r8, @r0
#endif
mov.l r2, @r0
lds.l @r15+, pr
mov.l @r15+, r8
mov.l @r15+, r12
rts
mov #-1, r0
.align 2
.Lmax:
.long SEM_VALUE_MAX
.Lgot3:
.long _GLOBAL_OFFSET_TABLE_
#if !USE___THREAD

View File

@ -26,7 +26,7 @@
int
fetestexcept (int excepts)
{
int temp;
short temp;
int xtemp = 0;
/* Get current exceptions. */