Hi, Aaron reported an issue with TCG plugins when interacting with the cpu_io_recompile code during icount. The ultimate fix was to avoid instrumenting the re-executed block but along the way we clean-up a bunch of the code by getting rid of CF_NOCACHE. I've also included Richard's recently posted recompile hook cleanups at the start of the series because it makes the improves the diffstat by pushing more arch specific black magic to the targets. In fact without the additional tests this removes more code than it adds ;-)
I've added some acceptance tests to detect the failure mode as well as manually testing with a test Peter had lying around that exercises the trixy "executing out of MMIO" code path which I've touched. Please test and review. Alex Bennée (8): tests/plugin: expand insn test to detect duplicate instructions tests/acceptance: add a new set of tests to exercise plugins accel/tcg: actually cache our partial icount TB accel/tcg: cache single instruction TB on pending replay exception accel/tcg: re-factor non-RAM execution code accel/tcg: remove CF_NOCACHE and special cases accel/tcg: allow plugin instrumentation to be disable via cflags tests/acceptance: add a new tests to detect counting errors Richard Henderson (4): exec: Move TranslationBlock typedef to qemu/typedefs.h accel/tcg: Create io_recompile_replay_branch hook target/mips: Create mips_io_recompile_replay_branch target/sh4: Create superh_io_recompile_replay_branch include/exec/exec-all.h | 6 +- include/exec/tb-context.h | 1 - include/hw/core/cpu.h | 4 +- include/hw/core/tcg-cpu-ops.h | 13 +++- include/qemu/typedefs.h | 1 + target/arm/internals.h | 3 +- accel/tcg/cpu-exec.c | 62 ++++----------- accel/tcg/translate-all.c | 128 +++++++++++------------------- accel/tcg/translator.c | 2 +- target/cris/translate.c | 2 +- target/lm32/translate.c | 2 +- target/mips/cpu.c | 18 +++++ target/moxie/translate.c | 2 +- target/sh4/cpu.c | 18 +++++ target/unicore32/translate.c | 2 +- tests/plugin/insn.c | 12 ++- tests/acceptance/tcg_plugins.py | 134 ++++++++++++++++++++++++++++++++ 17 files changed, 263 insertions(+), 147 deletions(-) create mode 100644 tests/acceptance/tcg_plugins.py -- 2.20.1