Richard Henderson <richard.hender...@linaro.org> writes: > Based-on: 20240404230611.21231-1-richard.hender...@linaro.org > ("[PATCH v2 00/21] Rewrite plugin code generation")
I'm getting code conflicts w.r.t to the above (which is already merged?) so it would be helpful to get a re-base. > > This is an attempt to fix > https://gitlab.com/qemu-project/qemu/-/issues/2208 > ("PC is not updated for each instruction in TCG plugins") The issue raises another question about PCREL support which makes me wonder if we need to deprecate get_vaddr at translation time and make it a run time only value? > > I have only updated target/i386 so far, but basically all targets > need updating for the new callbacks. Extra points to anyone who > sees how to avoid the extra code duplication. :-) > > > r~ > > > Richard Henderson (7): > tcg: Introduce INDEX_op_plugin_pc > accel/tcg: Set CPUState.plugin_ra before all plugin callbacks > accel/tcg: Return the TranslationBlock from cpu_unwind_state_data > plugins: Introduce TCGCPUOps callbacks for mid-tb register reads > target/i386: Split out gdb-internal.h > target/i386: Introduce cpu_compute_eflags_ccop > target/i386: Implement TCGCPUOps for plugin register reads > > include/exec/cpu-common.h | 9 +++-- > include/hw/core/cpu.h | 1 + > include/hw/core/tcg-cpu-ops.h | 13 +++++++ > include/tcg/tcg-op-common.h | 1 + > include/tcg/tcg-opc.h | 1 + > target/i386/cpu.h | 2 + > target/i386/gdb-internal.h | 65 +++++++++++++++++++++++++++++++ > accel/tcg/plugin-gen.c | 50 +++++++++++++++++++++--- > accel/tcg/translate-all.c | 9 +++-- > plugins/api.c | 36 +++++++++++++++++- > target/i386/gdbstub.c | 1 + > target/i386/helper.c | 6 ++- > target/i386/tcg/cc_helper.c | 10 +++++ > target/i386/tcg/tcg-cpu.c | 72 +++++++++++++++++++++++++++-------- > tcg/tcg-op.c | 5 +++ > tcg/tcg.c | 10 +++++ > 16 files changed, 258 insertions(+), 33 deletions(-) > create mode 100644 target/i386/gdb-internal.h -- Alex Bennée Virtualisation Tech Lead @ Linaro