Use ENTRY/END in sysdeps/x86_64/nptl/pthread_spin*.S
Commit Message
On Mon, Jan 18, 2016 at 3:22 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> On Mon, Jan 18, 2016 at 2:18 PM, Carlos O'Donell <carlos@redhat.com> wrote:
>
>> It needs a public bug though.
>
> I opened https://sourceware.org/bugzilla/show_bug.cgi?id=19490
Updated patch with fixed ChangeLog, pthread_cond_{broadcast,signal}
and BZ entry added.
2016-01-18 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #19490]
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
(pthread_cond_broadcast): Use ENTRY/END
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
(pthread_cond_signal): Likewise
* sysdeps/x86_64/nptl/pthread_spin_lock.S (pthread_spin_lock):
Likewise
* sysdeps/x86_64/nptl/pthread_spin_trylock.S (pthread_spin_trylock):
Likewise
* sysdeps/x86_64/nptl/pthread_spin_unlock.S (pthread_spin_unlock):
Likewise
Comments
On 01/18/2016 06:44 PM, Paul Pluzhnikov wrote:
> On Mon, Jan 18, 2016 at 3:22 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
>> On Mon, Jan 18, 2016 at 2:18 PM, Carlos O'Donell <carlos@redhat.com> wrote:
>>
>>> It needs a public bug though.
>>
>> I opened https://sourceware.org/bugzilla/show_bug.cgi?id=19490
>
> Updated patch with fixed ChangeLog, pthread_cond_{broadcast,signal}
> and BZ entry added.
>
>
> 2016-01-18 Paul Pluzhnikov <ppluzhnikov@google.com>
>
> [BZ #19490]
> * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
> (pthread_cond_broadcast): Use ENTRY/END
> * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
> (pthread_cond_signal): Likewise
> * sysdeps/x86_64/nptl/pthread_spin_lock.S (pthread_spin_lock):
> Likewise
> * sysdeps/x86_64/nptl/pthread_spin_trylock.S (pthread_spin_trylock):
> Likewise
> * sysdeps/x86_64/nptl/pthread_spin_unlock.S (pthread_spin_unlock):
> Likewise
Looks good to me.
Cheers,
Carlos.
@@ -28,10 +28,7 @@
.text
/* int pthread_cond_broadcast (pthread_cond_t *cond) */
- .globl __pthread_cond_broadcast
- .type __pthread_cond_broadcast, @function
- .align 16
-__pthread_cond_broadcast:
+ENTRY(__pthread_cond_broadcast)
LIBC_PROBE (cond_broadcast, 1, %rdi)
@@ -174,6 +171,7 @@ __pthread_cond_broadcast:
movl $SYS_futex, %eax
syscall
jmp 10b
- .size __pthread_cond_broadcast, .-__pthread_cond_broadcast
+END(__pthread_cond_broadcast)
+
versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast,
GLIBC_2_3_2)
@@ -28,11 +28,7 @@
.text
- /* int pthread_cond_signal (pthread_cond_t *cond) */
- .globl __pthread_cond_signal
- .type __pthread_cond_signal, @function
- .align 16
-__pthread_cond_signal:
+ENTRY(__pthread_cond_signal)
LIBC_PROBE (cond_signal, 1, %rdi)
@@ -159,6 +155,7 @@ __pthread_cond_signal:
cmovne %eax, %esi
callq __lll_unlock_wake
jmp 6b
- .size __pthread_cond_signal, .-__pthread_cond_signal
+END(__pthread_cond_signal)
+
versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal,
GLIBC_2_3_2)
@@ -16,11 +16,9 @@
<http://www.gnu.org/licenses/>. */
#include <lowlevellock.h>
+#include <sysdep.h>
- .globl pthread_spin_lock
- .type pthread_spin_lock,@function
- .align 16
-pthread_spin_lock:
+ENTRY(pthread_spin_lock)
1: LOCK
decl 0(%rdi)
jne 2f
@@ -33,4 +31,4 @@ pthread_spin_lock:
cmpl $0, 0(%rdi)
jg 1b
jmp 2b
- .size pthread_spin_lock,.-pthread_spin_lock
+END(pthread_spin_lock)
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#include <pthread-errnos.h>
+#include <sysdep.h>
#ifdef UP
@@ -25,10 +26,7 @@
# define LOCK lock
#endif
- .globl pthread_spin_trylock
- .type pthread_spin_trylock,@function
- .align 16
-pthread_spin_trylock:
+ENTRY(pthread_spin_trylock)
movl $1, %eax
xorl %ecx, %ecx
LOCK
@@ -36,4 +34,4 @@ pthread_spin_trylock:
movl $EBUSY, %eax
cmovel %ecx, %eax
retq
- .size pthread_spin_trylock,.-pthread_spin_trylock
+END(pthread_spin_trylock)
@@ -16,14 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
- .globl pthread_spin_unlock
- .type pthread_spin_unlock,@function
- .align 16
-pthread_spin_unlock:
+#include <sysdep.h>
+
+ENTRY(pthread_spin_unlock)
movl $1, (%rdi)
xorl %eax, %eax
retq
- .size pthread_spin_unlock,.-pthread_spin_unlock
+END(pthread_spin_unlock)
/* The implementation of pthread_spin_init is identical. */
.globl pthread_spin_init