Revision 526ccb7a linux-user/signal.c

b/linux-user/signal.c
2755 2755
    /* Create the ucontext.  */
2756 2756
    err |= __put_user(0, &frame->uc.uc_flags);
2757 2757
    err |= __put_user(0, (unsigned long *)&frame->uc.uc_link);
2758
    err |= __put_user((void *)target_sigaltstack_used.ss_sp,
2758
    err |= __put_user((unsigned long)target_sigaltstack_used.ss_sp,
2759 2759
		      &frame->uc.uc_stack.ss_sp);
2760 2760
    err |= __put_user(sas_ss_flags(regs->gregs[15]),
2761 2761
		      &frame->uc.uc_stack.ss_flags);
......
2982 2982
	setup_sigcontext(&frame->sc, env);
2983 2983

  
2984 2984
	/* Move the stack and setup the arguments for the handler.  */
2985
	env->regs[R_SP] = (uint32_t) frame;
2985
	env->regs[R_SP] = (uint32_t) (unsigned long) frame;
2986 2986
	env->regs[10] = sig;
2987 2987
	env->pc = (unsigned long) ka->_sa_handler;
2988 2988
	/* Link SRP so the guest returns through the trampoline.  */
2989
	env->pregs[PR_SRP] = (uint32_t) &frame->retcode[0];
2989
	env->pregs[PR_SRP] = (uint32_t) (unsigned long) &frame->retcode[0];
2990 2990

  
2991 2991
	unlock_user_struct(frame, frame_addr, 1);
2992 2992
	return;

Also available in: Unified diff