blob: c28a196215ae6e0c077b4446d3134f494435177b [file] [log] [blame]
static void
arch_sigreturn(struct tcb *tcp)
{
long esp = ppc_regs.gpr[1];
struct sigcontext sc;
/* Skip dummy stack frame. */
#ifdef POWERPC64
if (current_personality == 0)
esp += 128;
else
#endif
esp += 64;
if (umove(tcp, esp, &sc) < 0) {
tprintf("{mask=%#lx}", esp);
} else {
unsigned long mask[NSIG / 8 / 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("}");
}
}