diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2016-02-11 11:24:16 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2016-02-11 11:24:16 +0000 |
| commit | 36a9abd9be2f85c07e93378a5c5d1b180f5b2e15 (patch) | |
| tree | e759b3873d39ed5ad47605d41fe4934d1fe477be /exec.c | |
| parent | 88c73d16ad1b6c22a2ab082064d0d521f756296a (diff) | |
| parent | f0afa73164778570083504a185d7498884c68d65 (diff) | |
| download | focaccia-qemu-36a9abd9be2f85c07e93378a5c5d1b180f5b2e15.tar.gz focaccia-qemu-36a9abd9be2f85c07e93378a5c5d1b180f5b2e15.zip | |
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160211' into staging
target-arm queue: * fix some missing traps for EL3 support * enable EL3 on Cortex-A53 and Cortex-A57 * fix syndrome IL bit for Thumb coprocessor, VFP and Neon traps * fix mishandling of architectural watchpoints * avoid buffer overflow in sd.c * fix max-cpus check in virt board * implement 'get board revision' query for BCM2835 # gpg: Signature made Thu 11 Feb 2016 11:23:47 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" # gpg: aka "Peter Maydell <pmaydell@gmail.com>" # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" * remotes/pmaydell/tags/pull-target-arm-20160211: bcm2835_property: implement "get board revision" query hw/arm/virt: fix max-cpus check sd: limit 'req.cmd' while using as an array index target-arm: Implement checking of fired watchpoint cpu: Add callback to check architectural watchpoint match target-arm: Fix IL bit reported for Thumb VFP and Neon traps target-arm: Fix IL bit reported for Thumb coprocessor traps target-arm: Correct misleading 'is_thumb' syn_* parameter names target-arm: Enable EL3 for Cortex-A53 and Cortex-A57 target-arm: Implement NSACR trapping behaviour target-arm: Add isread parameter to CPAccessFns target-arm: Update arm_generate_debug_exceptions() to handle EL2/EL3 target-arm: Use access_trap_aa32s_el1() for SCR and MVBAR target-arm: Implement MDCR_EL3 and SDCR target-arm: Fix typo in comment in arm_is_secure_below_el3() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'exec.c')
| -rw-r--r-- | exec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/exec.c b/exec.c index 7d67c11601..07598d0acd 100644 --- a/exec.c +++ b/exec.c @@ -2070,6 +2070,7 @@ static const MemoryRegionOps notdirty_mem_ops = { static void check_watchpoint(int offset, int len, MemTxAttrs attrs, int flags) { CPUState *cpu = current_cpu; + CPUClass *cc = CPU_GET_CLASS(cpu); CPUArchState *env = cpu->env_ptr; target_ulong pc, cs_base; target_ulong vaddr; @@ -2095,6 +2096,11 @@ static void check_watchpoint(int offset, int len, MemTxAttrs attrs, int flags) wp->hitaddr = vaddr; wp->hitattrs = attrs; if (!cpu->watchpoint_hit) { + if (wp->flags & BP_CPU && + !cc->debug_check_watchpoint(cpu, wp)) { + wp->flags &= ~BP_WATCHPOINT_HIT; + continue; + } cpu->watchpoint_hit = wp; tb_check_watchpoint(cpu); if (wp->flags & BP_STOP_BEFORE_ACCESS) { |