Skip to content

Commit

Permalink
* sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ulrich Drepper committed Jan 22, 2008
1 parent 3c7e0ea commit b4b166a
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 18 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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]
Expand Down
19 changes: 19 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
5 changes: 3 additions & 2 deletions nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand Down
8 changes: 5 additions & 3 deletions nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand All @@ -244,7 +245,7 @@ pthread_rwlock_timedrdlock:
nop
.Lwake2b:
bra 7b
mov #0, r3
mov r10, r3

8:
/* Overflow. */
Expand Down Expand Up @@ -278,6 +279,7 @@ pthread_rwlock_timedrdlock:
nop

12:
mov r3, r10
mov r8, r5
#if MUTEX != 0
add #MUTEX, r5
Expand All @@ -290,7 +292,7 @@ pthread_rwlock_timedrdlock:
mov r2, r4
.Lwait3b:
bra 13b
nop
mov r10, r3

16:
bra 17b
Expand Down
8 changes: 5 additions & 3 deletions nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand All @@ -237,7 +238,7 @@ pthread_rwlock_timedwrlock:
nop
.Lwake6b:
bra 7b
mov #0, r3
mov r10, r3

.Ltidoff:
.word TID - TLS_PRE_TCB_SIZE
Expand Down Expand Up @@ -266,6 +267,7 @@ pthread_rwlock_timedwrlock:
nop

12:
mov r3, r10
mov r8, r5
#if MUTEX != 0
add #MUTEX, r5
Expand All @@ -278,7 +280,7 @@ pthread_rwlock_timedwrlock:
mov r2, r4
.Lwait7b:
bra 13b
nop
mov r10, r3

16:
bra 17b
Expand Down
31 changes: 26 additions & 5 deletions nptl/sysdeps/unix/sysv/linux/sh/sem_post.S
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/i386/fpu/ftestexcept.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
int
fetestexcept (int excepts)
{
int temp;
short temp;
int xtemp = 0;

/* Get current exceptions. */
Expand Down

0 comments on commit b4b166a

Please sign in to comment.