aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2013-03-05 08:15:33 +0100
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2013-03-05 08:15:33 +0100
commitc3e94a953347ecf361ab400111dbb1a62505c7fe (patch)
treede2bc99a46cf759a2160445929e83bf692feb6c4 /sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
parentcfb6382a4f57226a8c012f67a95ae5502f0dc5b2 (diff)
downloadglibc-c3e94a953347ecf361ab400111dbb1a62505c7fe.zip
glibc-c3e94a953347ecf361ab400111dbb1a62505c7fe.tar.gz
glibc-c3e94a953347ecf361ab400111dbb1a62505c7fe.tar.bz2
S/390: Fix rt_sigprocmask syscall invocation in get/set/swapcontext.
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
index 9a4b2b9..ecb0b3f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
@@ -34,12 +34,13 @@
ENTRY(__swapcontext)
lr %r1,%r2
- lr %r5,%r3
+ lr %r0,%r3
/* sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask). */
la %r2,SIG_BLOCK
slr %r3,%r3
la %r4,SC_MASK(%r1)
+ lhi %r5,_NSIG8
svc SYS_ify(rt_sigprocmask)
/* Store fpu context. */
@@ -72,11 +73,14 @@ ENTRY(__swapcontext)
/* sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL). */
la %r2,SIG_BLOCK
+ lr %r5,%r0
la %r3,SC_MASK(%r5)
slr %r4,%r4
+ lhi %r5,_NSIG8
svc SYS_ify(rt_sigprocmask)
/* Load fpu context. */
+ lr %r5,%r0
lfpc SC_FPC(%r5)
ld %f0,SC_FPRS(%r5)
ld %f1,SC_FPRS+8(%r5)