This series is intended to fix ARM watchpoint emulation misbehavior. QEMU hangs when QEMU watchpoint fires but it does not pass additional architectural checks in ARM CPU debug exception handler. For details, please see individual patches. The most relevant parts of the original discussion about ARM breakpoint and watchpoint emulation misbehavior can be found at: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg02715.html https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg00527.html
Changes in v2: * Check moved before setting cpu->watchpoint_hit * Pointer to watchpoint being checked passed to debug_check_watchpoint() callback * BP_WATCHPOINT_HIT flag cleared from flags from wp->flags in no-fire case * Comment for debug_check_watchpoint() callback improved Sergey Fedorov (2): cpu: Add callback to check architectural watchpoint match target-arm: Implement checking of fired watchpoint exec.c | 6 ++++++ include/qom/cpu.h | 4 ++++ qom/cpu.c | 9 +++++++++ target-arm/cpu.c | 1 + target-arm/internals.h | 3 +++ target-arm/op_helper.c | 35 +++++++++++++++++++++-------------- 6 files changed, 44 insertions(+), 14 deletions(-) -- 1.9.1