[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 60/60] softmmu: fix for "after access" watchpoints
From: |
Richard Henderson |
Subject: |
[PULL v2 60/60] softmmu: fix for "after access" watchpoints |
Date: |
Thu, 28 Oct 2021 21:33:29 -0700 |
From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
Watchpoints that should fire after the memory access
break an execution of the current block, try to
translate current instruction into the separate block,
which then causes debug interrupt.
But cpu_interrupt can't be called in such block when
icount is enabled, because interrupts muse be allowed
explicitly.
This patch sets CF_LAST_IO flag for retranslated block,
allowing interrupt request for the last instruction.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <163542169727.2127597.8141772572696627329.stgit@pasha-ThinkPad-X280>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
softmmu/physmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/softmmu/physmem.c b/softmmu/physmem.c
index 9765a509d2..b9a8c1d1f4 100644
--- a/softmmu/physmem.c
+++ b/softmmu/physmem.c
@@ -946,7 +946,7 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr
len,
cpu_loop_exit(cpu);
} else {
/* Force execution of one insn next time. */
- cpu->cflags_next_tb = 1 | curr_cflags(cpu);
+ cpu->cflags_next_tb = 1 | CF_LAST_IO | curr_cflags(cpu);
mmap_unlock();
cpu_loop_exit_noexc(cpu);
}
--
2.25.1
- [PULL v2 35/60] tcg/optimize: Split out fold_xx_to_i, (continued)
- [PULL v2 35/60] tcg/optimize: Split out fold_xx_to_i, Richard Henderson, 2021/10/29
- [PULL v2 29/60] tcg/optimize: Split out fold_extract, fold_sextract, Richard Henderson, 2021/10/29
- [PULL v2 39/60] tcg/optimize: Split out fold_to_not, Richard Henderson, 2021/10/29
- [PULL v2 38/60] tcg/optimize: Add type to OptContext, Richard Henderson, 2021/10/29
- [PULL v2 40/60] tcg/optimize: Split out fold_sub_to_neg, Richard Henderson, 2021/10/29
- [PULL v2 41/60] tcg/optimize: Split out fold_xi_to_x, Richard Henderson, 2021/10/29
- [PULL v2 42/60] tcg/optimize: Split out fold_ix_to_i, Richard Henderson, 2021/10/29
- [PULL v2 43/60] tcg/optimize: Split out fold_masks, Richard Henderson, 2021/10/29
- [PULL v2 45/60] tcg/optimize: Expand fold_addsub2_i32 to 64-bit ops, Richard Henderson, 2021/10/29
- [PULL v2 48/60] tcg/optimize: Stop forcing z_mask to "garbage" for 32-bit values, Richard Henderson, 2021/10/29
- [PULL v2 60/60] softmmu: fix for "after access" watchpoints,
Richard Henderson <=
- [PULL v2 44/60] tcg/optimize: Expand fold_mulu2_i32 to all 4-arg multiplies, Richard Henderson, 2021/10/29
- [PULL v2 47/60] tcg: Extend call args using the correct opcodes, Richard Henderson, 2021/10/29
- [PULL v2 46/60] tcg/optimize: Sink commutative operand swapping into fold functions, Richard Henderson, 2021/10/29
- [PULL v2 51/60] tcg/optimize: Use fold_xi_to_x for div, Richard Henderson, 2021/10/29
- [PULL v2 52/60] tcg/optimize: Use fold_xx_to_i for rem, Richard Henderson, 2021/10/29
- [PULL v2 55/60] tcg/optimize: Propagate sign info for setcond, Richard Henderson, 2021/10/29
- [PULL v2 54/60] tcg/optimize: Propagate sign info for logical operations, Richard Henderson, 2021/10/29
- [PULL v2 58/60] softmmu: fix watchpoint processing in icount mode, Richard Henderson, 2021/10/29
- [PULL v2 50/60] tcg/optimize: Use fold_xi_to_x for mul, Richard Henderson, 2021/10/29
- [PULL v2 53/60] tcg/optimize: Optimize sign extensions, Richard Henderson, 2021/10/29