Supercedes: <20211130103752.72099-1-richard.hender...@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