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


Reply via email to