mbox series

[v2,00/15] target/m68k: Conditional traps + trap cleanup

Message ID 20211202204900.50973-1-richard.henderson@linaro.org
Headers show
Series target/m68k: Conditional traps + trap cleanup | expand

Message

Richard Henderson Dec. 2, 2021, 8:48 p.m. UTC
Supercedes: <20211130103752.72099-1-richard.henderson@linaro.org>

Reviewing v1, Laurent rightly noticed that there were changes
required in m68k_interrupt_all.  Matching sysemu, there were
changes needed in the linux-user cpu_loop.

In the process, I found a number of other trap related bugs,
and some strace problems.  I cherry-picked the linux-user/m68k
patch from my outstanding force_sig_fault patch set, to avoid
conflicts with that one.


r~


Richard Henderson (15):
  target/m68k: Raise the TRAPn exception with the correct pc
  target/m68k: Switch over exception type in m68k_interrupt_all
  linux-user/m68k: Use force_sig_fault
  linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15
  target/m68k: Remove retaddr in m68k_interrupt_all
  target/m68k: Fix address argument for EXCP_CHK
  target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0
  target/m68k: Fix address argument for EXCP_TRACE
  target/m68k: Implement TRAPcc
  target/m68k: Implement TRAPV
  target/m68k: Implement FTRAPcc
  target/m68k: Fix stack frame for EXCP_ILLEGAL
  tests/tcg/m68k: Add trap.c
  linux-user/strace: Fix print_syscall_err
  linux-user/strace: Adjust get_thread_area for m68k

 target/m68k/cpu.h              |   2 +
 target/m68k/helper.h           |  12 +--
 linux-user/m68k/cpu_loop.c     |  31 ++-----
 linux-user/strace.c            |   4 +-
 target/m68k/cpu.c              |   1 +
 target/m68k/op_helper.c        | 164 ++++++++++++++++++---------------
 target/m68k/translate.c        | 142 ++++++++++++++++++++++------
 tests/tcg/m68k/trap.c          | 129 ++++++++++++++++++++++++++
 linux-user/strace.list         |   5 +
 tests/tcg/m68k/Makefile.target |   3 +
 10 files changed, 361 insertions(+), 132 deletions(-)
 create mode 100644 tests/tcg/m68k/trap.c