accel/tcg: Move breakpoint recognition outside translation
commit10c37828b213cd490bd20e243916e96f5d588c8d
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 19 Jul 2021 19:03:21 +0000 (19 09:03 -1000)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 21 Jul 2021 17:47:05 +0000 (21 07:47 -1000)
treea7a34443b08f5975fbc5ba6292cc2e2725b4ddc2
parent11c1d5f8ca7a72818b3c24093a2c40856022fe0f
accel/tcg: Move breakpoint recognition outside translation

Trigger breakpoints before beginning translation of a TB
that would begin with a BP.  Thus we never generate code
for the BP at all.

Single-step instructions within a page containing a BP so
that we are sure to check each insn for the BP as above.

We no longer need to flush any TBs when changing BPs.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/286
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/404
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/489
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
accel/tcg/cpu-exec.c
accel/tcg/translator.c
cpu.c