This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
PATCH: Use LP_OP(op), LP_SIZE and ASM_ADDR in sem_wait.S
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 15 May 2012 12:19:03 -0700
- Subject: PATCH: Use LP_OP(op), LP_SIZE and ASM_ADDR in sem_wait.S
- References: <20120515191629.GA24284@intel.com>
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
On Tue, May 15, 2012 at 12:16:29PM -0700, H.J. Lu wrote:
> Hi,
>
> This patch does
>
> 1. Use LP_OP(op) on NWAITERS.
> 2. Replace 8-byte data alignment with LP_SIZE alignment.
> 3. Replace .quad with ASM_ADDR.
>
> Tested on Linux/x86-64. OK to install?
>
> Thanks.
>
A very similar one for sem_wait.S. Tested on Linux/x86-64. OK to
install?
Thanks.
H.J.
---
* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Use LP_OP(op)
on NWAITERS.
(__gcc_personality_v0): Replace 8-byte data alignment with
LP_SIZE alignment and .quad with ASM_ADDR.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
index c6c6c26..7f91148 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
@@ -66,7 +66,7 @@ sem_wait:
cfi_adjust_cfa_offset(8)
LOCK
- addq $1, NWAITERS(%rdi)
+ LP_OP(add) $1, NWAITERS(%rdi)
.LcleanupSTART:
6: call __pthread_enable_asynccancel
@@ -115,7 +115,7 @@ sem_wait:
xorl %eax, %eax
9: LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
leaq 8(%rsp), %rsp
cfi_adjust_cfa_offset(-8)
@@ -136,7 +136,7 @@ sem_wait:
sem_wait_cleanup:
movq (%rsp), %rdi
LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
movq %rax, %rdi
.LcallUR:
call _Unwind_Resume@PLT
@@ -168,9 +168,9 @@ sem_wait_cleanup:
.hidden DW.ref.__gcc_personality_v0
.weak DW.ref.__gcc_personality_v0
.section .gnu.linkonce.d.DW.ref.__gcc_personality_v0,"aw",@progbits
- .align 8
+ .align LP_SIZE
.type DW.ref.__gcc_personality_v0, @object
- .size DW.ref.__gcc_personality_v0, 8
+ .size DW.ref.__gcc_personality_v0, LP_SIZE
DW.ref.__gcc_personality_v0:
- .quad __gcc_personality_v0
+ ASM_ADDR __gcc_personality_v0
#endif