[PATCH v2 00/33] accel/tcg: Improve disassembly for target and plugin

Richard Henderson posted 33 patches 1 week, 2 days ago
Failed in applying to current master (apply log)
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Alexandre Iooss <erdnaxe@crans.org>, Mahmoud Mandour <ma.mandourr@gmail.com>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Peter Maydell <peter.maydell@linaro.org>, Michael Rolnik <mrolnik@gmail.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Brian Cain <bcain@quicinc.com>, Eduardo Habkost <eduardo@habkost.net>, Song Gao <gaosong@loongson.cn>, Laurent Vivier <laurent@vivier.eu>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Stafford Horne <shorne@gmail.com>, Nicholas Piggin <npiggin@gmail.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bin.meng@windriver.com>, Weiwei Li <liwei1518@gmail.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Yoshinori Sato <ysato@users.sourceforge.jp>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Max Filippov <jcmvbkbc@gmail.com>
disas/disas-internal.h           |   4 +
include/disas/disas.h            |   9 +-
include/exec/cpu_ldst.h          |  10 -
include/exec/plugin-gen.h        |   7 +-
include/exec/translator.h        |  71 +++++--
include/qemu/plugin.h            |  22 +-
include/qemu/qemu-plugin.h       |  15 +-
include/qemu/typedefs.h          |   1 +
include/tcg/tcg.h                |   1 +
accel/tcg/plugin-gen.c           |  63 +++---
accel/tcg/translator.c           | 331 +++++++++++++++++++-----------
contrib/plugins/execlog.c        |   5 +-
contrib/plugins/howvec.c         |   4 +-
disas/disas-common.c             | 103 ++++++++++
disas/disas-host.c               | 129 ++++++++++++
disas/disas-mon.c                |  15 ++
disas/disas-target.c             |  99 +++++++++
disas/disas.c                    | 337 -------------------------------
disas/objdump.c                  |  37 ++++
plugins/api.c                    |  57 ++++--
target/alpha/translate.c         |   9 -
target/arm/tcg/translate-a64.c   |  11 -
target/arm/tcg/translate.c       |  12 --
target/avr/translate.c           |  11 +-
target/cris/translate.c          |  37 +---
target/hexagon/translate.c       |  11 +-
target/hppa/translate.c          |  21 +-
target/i386/tcg/translate.c      |  19 +-
target/loongarch/tcg/translate.c |   8 -
target/m68k/translate.c          |   9 -
target/microblaze/translate.c    |  11 +-
target/mips/tcg/translate.c      |   9 -
target/openrisc/translate.c      |  11 -
target/ppc/translate.c           |   9 -
target/riscv/translate.c         |  24 +--
target/rx/translate.c            |  35 ++--
target/s390x/tcg/translate.c     |  26 ++-
target/sh4/translate.c           |   9 -
target/sparc/translate.c         |   9 -
target/tricore/translate.c       |   9 -
target/xtensa/translate.c        |  12 +-
tcg/tcg.c                        |  12 --
target/cris/translate_v10.c.inc  |  30 +--
disas/meson.build                |   8 +-
44 files changed, 818 insertions(+), 864 deletions(-)
create mode 100644 disas/disas-common.c
create mode 100644 disas/disas-host.c
create mode 100644 disas/disas-target.c
delete mode 100644 disas/disas.c
create mode 100644 disas/objdump.c
[PATCH v2 00/33] accel/tcg: Improve disassembly for target and plugin
Posted by Richard Henderson 1 week, 2 days ago
Based-on: 20240424230224.941028-1-richard.henderson@linaro.org
("[PATCH v3 00/20] Rewrite plugin code generation")

Rebase only.
Reviews required for: 
  04-accel-tcg-Reorg-translator_ld.patch
  06-accel-tcg-Record-mmio-bytes-during-translation.patch
  07-accel-tcg-Record-when-translator_fake_ldb-is-used.patch
  08-accel-tcg-Record-DisasContextBase-in-tcg_ctx-for-.patch
  09-plugins-Copy-memory-in-qemu_plugin_insn_data.patch
  10-accel-tcg-Implement-translator_st.patch
  11-plugins-Use-translator_st-for-qemu_plugin_insn_da.patch
  12-plugins-Read-mem_only-directly-from-TB-cflags.patch
  13-plugins-Use-DisasContextBase-for-qemu_plugin_insn.patch
  15-plugins-Merge-alloc_tcg_plugin_context-into-plugi.patch
  18-disas-Split-disas.c.patch
  19-disas-Use-translator_st-to-get-disassembly-data.patch
  21-target-s390x-Fix-translator_fake_ld-length.patch
  22-target-s390x-Disassemble-EXECUTEd-instructions.patch
  23-target-hexagon-Use-translator_ldl-in-pkt_crosses_.patch
  29-target-riscv-Use-translator_ld-for-everything.patch
  32-target-s390x-Use-translator_lduw-in-get_next_pc.patch


r~


Philippe Mathieu-Daudé (1):
  accel/tcg: Remove cpu_ldsb_code / cpu_ldsw_code

Richard Henderson (32):
  accel/tcg: Use vaddr in translator_ld*
  accel/tcg: Hide in_same_page outside of a target-specific context
  accel/tcg: Pass DisasContextBase to translator_fake_ldb
  accel/tcg: Reorg translator_ld*
  accel/tcg: Cap the translation block when we encounter mmio
  accel/tcg: Record mmio bytes during translation
  accel/tcg: Record when translator_fake_ldb is used
  accel/tcg: Record DisasContextBase in tcg_ctx for plugins
  plugins: Copy memory in qemu_plugin_insn_data
  accel/tcg: Implement translator_st
  plugins: Use translator_st for qemu_plugin_insn_data
  plugins: Read mem_only directly from TB cflags
  plugins: Use DisasContextBase for qemu_plugin_insn_haddr
  plugins: Use DisasContextBase for qemu_plugin_tb_vaddr
  plugins: Merge  alloc_tcg_plugin_context into plugin_gen_tb_start
  accel/tcg: Provide default implementation of disas_log
  accel/tcg: Return bool from TranslatorOps.disas_log
  disas: Split disas.c
  disas: Use translator_st to get disassembly data
  accel/tcg: Introduce translator_fake_ld
  target/s390x: Fix translator_fake_ld length
  target/s390x: Disassemble EXECUTEd instructions
  target/hexagon: Use translator_ldl in pkt_crosses_page
  target/microblaze: Use translator_ldl
  target/i386: Use translator_ldub for everything
  target/avr: Use translator_lduw
  target/cris: Use translator_ld* in cris_fetch
  target/cris: Use cris_fetch in translate_v10.c.inc
  target/riscv: Use translator_ld* for everything
  target/rx: Use translator_ld*
  target/xtensa: Use translator_ldub in xtensa_insn_len
  target/s390x: Use translator_lduw in get_next_pc

 disas/disas-internal.h           |   4 +
 include/disas/disas.h            |   9 +-
 include/exec/cpu_ldst.h          |  10 -
 include/exec/plugin-gen.h        |   7 +-
 include/exec/translator.h        |  71 +++++--
 include/qemu/plugin.h            |  22 +-
 include/qemu/qemu-plugin.h       |  15 +-
 include/qemu/typedefs.h          |   1 +
 include/tcg/tcg.h                |   1 +
 accel/tcg/plugin-gen.c           |  63 +++---
 accel/tcg/translator.c           | 331 +++++++++++++++++++-----------
 contrib/plugins/execlog.c        |   5 +-
 contrib/plugins/howvec.c         |   4 +-
 disas/disas-common.c             | 103 ++++++++++
 disas/disas-host.c               | 129 ++++++++++++
 disas/disas-mon.c                |  15 ++
 disas/disas-target.c             |  99 +++++++++
 disas/disas.c                    | 337 -------------------------------
 disas/objdump.c                  |  37 ++++
 plugins/api.c                    |  57 ++++--
 target/alpha/translate.c         |   9 -
 target/arm/tcg/translate-a64.c   |  11 -
 target/arm/tcg/translate.c       |  12 --
 target/avr/translate.c           |  11 +-
 target/cris/translate.c          |  37 +---
 target/hexagon/translate.c       |  11 +-
 target/hppa/translate.c          |  21 +-
 target/i386/tcg/translate.c      |  19 +-
 target/loongarch/tcg/translate.c |   8 -
 target/m68k/translate.c          |   9 -
 target/microblaze/translate.c    |  11 +-
 target/mips/tcg/translate.c      |   9 -
 target/openrisc/translate.c      |  11 -
 target/ppc/translate.c           |   9 -
 target/riscv/translate.c         |  24 +--
 target/rx/translate.c            |  35 ++--
 target/s390x/tcg/translate.c     |  26 ++-
 target/sh4/translate.c           |   9 -
 target/sparc/translate.c         |   9 -
 target/tricore/translate.c       |   9 -
 target/xtensa/translate.c        |  12 +-
 tcg/tcg.c                        |  12 --
 target/cris/translate_v10.c.inc  |  30 +--
 disas/meson.build                |   8 +-
 44 files changed, 818 insertions(+), 864 deletions(-)
 create mode 100644 disas/disas-common.c
 create mode 100644 disas/disas-host.c
 create mode 100644 disas/disas-target.c
 delete mode 100644 disas/disas.c
 create mode 100644 disas/objdump.c

-- 
2.34.1


Re: [PATCH v2 00/33] accel/tcg: Improve disassembly for target and plugin
Posted by Philippe Mathieu-Daudé 5 days, 5 hours ago
On 25/4/24 01:30, Richard Henderson wrote:
> Based-on: 20240424230224.941028-1-richard.henderson@linaro.org
> ("[PATCH v3 00/20] Rewrite plugin code generation")

Cc'ing qemu-s390x@ for these 3 patches:

> Richard Henderson (32):

>    target/s390x: Fix translator_fake_ld length
>    target/s390x: Disassemble EXECUTEd instructions

>    target/s390x: Use translator_lduw in get_next_pc

(could be reviewed out of the series context IMO).

Thanks,

Phil.