Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Use JUMPTARGET in x86-64 pthread
When PLT may be used, JUMPTARGET should be used instead calling the
function directly.

	* sysdeps/unix/sysv/linux/x86_64/cancellation.S
	(__pthread_enable_asynccancel): Use JUMPTARGET to call
	__pthread_unwind.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__condvar_cleanup2): Use JUMPTARGET to call _Unwind_Resume.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__condvar_cleanup1): Likewise.
  • Loading branch information
H.J. Lu committed Mar 21, 2016
1 parent a4cea54 commit 893e371
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 7 deletions.
10 changes: 10 additions & 0 deletions ChangeLog
@@ -1,3 +1,13 @@
2016-03-21 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/unix/sysv/linux/x86_64/cancellation.S
(__pthread_enable_asynccancel): Use JUMPTARGET to call
__pthread_unwind.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
(__condvar_cleanup2): Use JUMPTARGET to call _Unwind_Resume.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
(__condvar_cleanup1): Likewise.

2016-03-21 Dylan Alex Simon <dylan-sourceware@dylex.net>

[BZ #19822]
Expand Down
6 changes: 1 addition & 5 deletions sysdeps/unix/sysv/linux/x86_64/cancellation.S
Expand Up @@ -76,11 +76,7 @@ ENTRY(__pthread_enable_asynccancel)
lock
orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
mov %fs:CLEANUP_JMP_BUF, %RDI_LP
#ifdef SHARED
call __pthread_unwind@PLT
#else
call __pthread_unwind
#endif
call JUMPTARGET(__pthread_unwind)
hlt
END(__pthread_enable_asynccancel)

Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
Expand Up @@ -586,7 +586,7 @@ __condvar_cleanup2:
movq FRAME_SIZE+16(%rsp), %r13
movq FRAME_SIZE+24(%rsp), %r12
.LcallUR:
call _Unwind_Resume@PLT
call JUMPTARGET(_Unwind_Resume)
hlt
.LENDCODE:
cfi_endproc
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
Expand Up @@ -518,7 +518,7 @@ __condvar_cleanup1:

8: movq 24(%rsp), %rdi
.LcallUR:
call _Unwind_Resume@PLT
call JUMPTARGET(_Unwind_Resume)
hlt
.LENDCODE:
cfi_endproc
Expand Down

0 comments on commit 893e371

Please sign in to comment.