Raise pc alignment faults.
Fix single-step and pc-align priority over breakpoints.
Not yet fixing insn abort priority over breakpoints.
Based-on: 20210919015718.466207-1-richard.henderson@linaro.org
("linux-user: Clean up siginfo_t handling")
Changes for v3:
* Rebase on siginfo_t patch set -- while probably only
force_sig_fault is required, I suspect minor conflicts
with the other cleanups.
* Typo fix.
Changes for v2:
* Handle the exceptions in cpu_loop.
* Fix how the instruction is raised for aa32 el1.
* Add pc alignment test cases.
r~
Richard Henderson (6):
linux-user/aarch64: Handle EC_PCALIGNMENT
linux-user/arm: Report SIGBUS and SIGSEGV correctly
target/arm: Take an exception if PC is misaligned
target/arm: Assert thumb pc is aligned
target/arm: Suppress bp for exceptions with more priority
tests/tcg: Add arm and aarch64 pc alignment tests
target/arm/helper.h | 1 +
target/arm/syndrome.h | 5 ++++
linux-user/aarch64/cpu_loop.c | 44 +++++++++++++++++------------
linux-user/arm/cpu_loop.c | 39 ++++++++++++++++++++++----
target/arm/debug_helper.c | 23 ++++++++++++++++
target/arm/gdbstub.c | 9 ++++--
target/arm/machine.c | 9 ++++++
target/arm/tlb_helper.c | 24 ++++++++++++++++
target/arm/translate-a64.c | 23 ++++++++++++++--
target/arm/translate.c | 42 +++++++++++++++++++++++-----
tests/tcg/aarch64/pcalign-a64.c | 37 +++++++++++++++++++++++++
tests/tcg/arm/pcalign-a32.c | 46 +++++++++++++++++++++++++++++++
tests/tcg/aarch64/Makefile.target | 4 +--
tests/tcg/arm/Makefile.target | 4 +++
14 files changed, 274 insertions(+), 36 deletions(-)
create mode 100644 tests/tcg/aarch64/pcalign-a64.c
create mode 100644 tests/tcg/arm/pcalign-a32.c
--
2.25.1