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
--
2.25.1