Implement support for the ARM architecturally mandated hardware breakpoints, for ARMv8 and ARMv7. Tested that hardware bps work for both v7 and v8 kernels (including v8 compat userspace in a 32 bit kernel).
There are a few odd subfeatures which we don't implement (yet): * address-mismatch breakpoints which fire if the PC is anything other than the specified value * address-mismatch breakpoints with zero byte-address-select, which fire for every single instruction execution * unlinked context match breakpoints, which fire for every instruction executed with a particular value of CONTEXTIDR/VMID These aren't used by Linux's ptrace support, and I wasn't sure of the best way to implement them, so for now they just produce a LOG_UNIMP warning if the guest tries to use them. This patchset sits on target-arm.next (ie after the watchpoint code). Peter Maydell (2): target-arm: Implement setting guest breakpoints target-arm: Implement handling of breakpoint firing target-arm/cpu.c | 1 + target-arm/cpu.h | 1 + target-arm/helper.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++- target-arm/internals.h | 15 ++++++ target-arm/machine.c | 1 + target-arm/op_helper.c | 75 +++++++++++++++++++++++------ 6 files changed, 202 insertions(+), 17 deletions(-) -- 1.9.1