Hi, cleaning up linux-user signal handling functions, I found something weird.
In get_sp_from_cpustate(), SP is regs[14]: linux-user/microblaze/target_signal.h 24) static inline abi_ulong get_sp_from_cpustate(CPUMBState *state) 25) { 26) return state->regs[14]; 27) } But in get_sigframe(), SP is regs[1]; 4128) static abi_ulong get_sigframe(struct target_sigaction *ka, 4129) CPUMBState *env, int frame_size) 4130) { 4131) abi_ulong sp = env->regs[1]; 4132) 4133) if ((ka->sa_flags & TARGET_SA_ONSTACK) != 0 && !on_sig_stack(sp)) { 4134) sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss 4135) } 4136) 4137) return ((sp - frame_size) & -8UL); 4138) } Is this correct? Thanks, Laurent