These patches fix various issues related to signal handling in user mode emulation for the MIPS architecture.
- When a MIPS16/microMIPS signal handler is called, the program segfaults because the PC is set to an invalid address. - When returning from a signal handler, the ISA mode is not set to that of the resume instruction. - When the faulting instruction is in a branch delay slot, the resume address is set to that of the instruction rather than the branch, resulting in incorrect behaviour. The flag indicating that the instruction is in a delay slot is also not cleared. v1 -> v2: - Add fixes for signal return and delay slot instructions - Refactor code Kwok Cheung Yeung (2): linux-user: Fix MIPS ISA transitions during signal handling linux-user: Save the correct resume address for MIPS signal handling linux-user/signal.c | 16 +++++++++++++++- target-mips/cpu.h | 1 + target-mips/helper.c | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) -- 1.8.1.2