/* Store general purpose registers. */
stm %r0,%r15,SC_GPRS(%r1)
+ /* Store psw mask to 0x0 and addr to return address. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ st %r2,SC_PSW+0(%r1)
+ st %r14,SC_PSW+4(%r1)
+
/* Return. */
br %r14
END(__getcontext)
/* Set the return address to trampoline. */
ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret;
+ /* Store psw mask to 0x0 and addr to trampoline. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ ucp->uc_mcontext.psw.addr = (long int) __makecontext_ret;
+ ucp->uc_mcontext.psw.mask = 0;
/* Set register parameters. */
va_start (ap, argc);
/* Store general purpose registers. */
stm %r0,%r15,SC_GPRS(%r1)
+ /* Store psw mask to 0x0 and addr to return address. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ st %r2,SC_PSW+0(%r1)
+ st %r14,SC_PSW+4(%r1)
+
/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
sigsetsize). */
la %r2,SIG_SETMASK
/* Store general purpose registers. */
stmg %r0,%r15,SC_GPRS(%r1)
+ /* Store psw mask to 0x0 and addr to return address. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ stg %r2,SC_PSW+0(%r1)
+ stg %r14,SC_PSW+8(%r1)
+
/* Return. */
br %r14
END(__getcontext)
/* Set the return address to trampoline. */
ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret;
+ /* Store psw mask to 0x0 and addr to trampoline. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ ucp->uc_mcontext.psw.addr = (long int) __makecontext_ret;
+ ucp->uc_mcontext.psw.mask = 0;
/* Set register parameters. */
va_start (ap, argc);
/* Store general purpose registers. */
stmg %r0,%r15,SC_GPRS(%r1)
+ /* Store psw mask to 0x0 and addr to return address. Then the address
+ can be retrieved from the ucontext structure in the same way as if it
+ is created by kernel and passed to a signal-handler. */
+ stg %r2,SC_PSW+0(%r1)
+ stg %r14,SC_PSW+8(%r1)
+
/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
sigsetsize). */
la %r2,SIG_SETMASK