aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2012-07-19 15:58:17 +0200
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2012-07-19 15:58:17 +0200
commit46f85fc22637213e4a97b306f40a64ae09f82f18 (patch)
tree0ffbc10b9faf12886e941bbe1e9e600e94a415ce /sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
parent08f43f9bbf97c03ec4d2754c69fd9d7efce6ef96 (diff)
downloadglibc-46f85fc22637213e4a97b306f40a64ae09f82f18.tar
glibc-46f85fc22637213e4a97b306f40a64ae09f82f18.tar.gz
glibc-46f85fc22637213e4a97b306f40a64ae09f82f18.tar.bz2
glibc-46f85fc22637213e4a97b306f40a64ae09f82f18.zip
S/390: Fix uc_link == NULL handling for makecontext
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
index dcc63a2354..17e5dba3c2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
@@ -80,10 +80,10 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
sp -= 20;
*sp = 0;
- /* Pass (*func) to __start_context in %r7. */
+ /* Pass (*func) to __makecontext_ret in %r7. */
ucp->uc_mcontext.gregs[7] = (long int) func;
- /* Pass ucp->uc_link to __start_context in %r8. */
+ /* Pass ucp->uc_link to __makecontext_ret in %r8. */
ucp->uc_mcontext.gregs[8] = (long int) ucp->uc_link;
/* Pass address of setcontext in %r9. */
@@ -93,12 +93,4 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
ucp->uc_mcontext.gregs[15] = (long int) sp;
}
-asm (".text\n"
- ".type __makecontext_ret,@function\n"
- "__makecontext_ret:\n"
- " basr %r14,%r7\n"
- " lgr %r2,%r8\n"
- " br %r9\n"
- ".size __makecontext_ret, .-__makecontext_ret");
-
weak_alias (__makecontext, makecontext)