diff options
author | Guo Yixuan <culu.gyx@gmail.com> | 2014-05-29 21:43:15 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-03 16:10:48 -0700 |
commit | b42eca7d39d7d263815a4457c318eb57ee2686a4 (patch) | |
tree | 646e8693cf5bed500219cf6e4c145a93289f319e | |
parent | f9d2d03254a58d92635a311a42253eeed5a40a47 (diff) | |
download | glibc-b42eca7d39d7d263815a4457c318eb57ee2686a4.zip glibc-b42eca7d39d7d263815a4457c318eb57ee2686a4.tar.gz glibc-b42eca7d39d7d263815a4457c318eb57ee2686a4.tar.bz2 |
Fixed pthread_spin_lock on sparc32/64 (bug 16882)
[BZ #16882]
* nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S
(pthread_spin_lock): Branch out of spin loop to proper location.
* nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S
(pthread_spin_lock): Likewise.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S | 4 | ||||
-rw-r--r-- | nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S | 4 |
3 files changed, 12 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2014-06-03 Guo Yixuan <culu.gyx@gmail.com> + + [BZ #16882] + * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S + (pthread_spin_lock): Branch out of spin loop to proper location. + * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S + (pthread_spin_lock): Likewise. + 2014-06-03 Andreas Schwab <schwab@suse.de> [BZ #15946] diff --git a/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S b/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S index ea863d7..3accc69 100644 --- a/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S +++ b/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S @@ -19,11 +19,11 @@ .text ENTRY(pthread_spin_lock) - ldstub [%o0], %g1 +1: ldstub [%o0], %g1 orcc %g1, 0x0, %g0 bne,a 2f ldub [%o0], %g1 -1: retl + retl mov 0, %o0 2: orcc %g1, 0x0, %g0 bne,a 2b diff --git a/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S b/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S index 0f849b2..aec6654 100644 --- a/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S +++ b/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S @@ -19,10 +19,10 @@ .text ENTRY(pthread_spin_lock) - ldstub [%o0], %g1 +1: ldstub [%o0], %g1 brnz,pn %g1, 2f membar #StoreLoad | #StoreStore -1: retl + retl mov 0, %o0 2: ldub [%o0], %g1 brnz,pt %g1, 2b |