about summary refs log tree commit diff
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.tar.gz
glibc-c3e94a953347ecf361ab400111dbb1a62505c7fe.tar.xz
glibc-c3e94a953347ecf361ab400111dbb1a62505c7fe.zip
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 9a4b2b9873..ecb0b3f80c 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)