blob: 4f68648d66ad1580af2e8ff210fa76dcf50ca13b [file] [log] [blame]
static void
arch_sigreturn(struct tcb *tcp)
{
unsigned long addr = ppc_regs.gpr[1];
struct sigcontext sc;
/* Skip dummy stack frame. */
#ifdef POWERPC64
if (current_personality == 0)
addr += 128;
else
#endif
addr += 64;
if (umove(tcp, addr, &sc) < 0) {
tprintf("{mask=%#lx}", addr);
} else {
unsigned long mask[NSIG_BYTES / sizeof(long)];
#ifdef POWERPC64
mask[0] = sc.oldmask | (sc._unused[3] << 32);
#else
mask[0] = sc.oldmask;
mask[1] = sc._unused[3];
#endif
tprintsigmask_addr("{mask=", mask);
tprints("}");
}
}