qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 00/20] tcg patch queue
@ 2022-10-04 19:52 Richard Henderson
  2022-10-04 19:52 ` [PULL 01/20] cpu: cache CPUClass in CPUState for hot code paths Richard Henderson
                   ` (20 more replies)
  0 siblings, 21 replies; 34+ messages in thread
From: Richard Henderson @ 2022-10-04 19:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: stefanha

TCG patch queue, plus one target/sh4 patch that
Yoshinori Sato asked me to process.


r~


The following changes since commit efbf38d73e5dcc4d5f8b98c6e7a12be1f3b91745:

  Merge tag 'for-upstream' of git://repo.or.cz/qemu/kevin into staging (2022-10-03 15:06:07 -0400)

are available in the Git repository at:

  https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20221004

for you to fetch changes up to ab419fd8a035a65942de4e63effcd55ccbf1a9fe:

  target/sh4: Fix TB_FLAG_UNALIGN (2022-10-04 12:33:05 -0700)

----------------------------------------------------------------
Cache CPUClass for use in hot code paths.
Add CPUTLBEntryFull, probe_access_full, tlb_set_page_full.
Add generic support for TARGET_TB_PCREL.
tcg/ppc: Optimize 26-bit jumps using STQ for POWER 2.07
target/sh4: Fix TB_FLAG_UNALIGN

----------------------------------------------------------------
Alex Bennée (3):
      cpu: cache CPUClass in CPUState for hot code paths
      hw/core/cpu-sysemu: used cached class in cpu_asidx_from_attrs
      cputlb: used cached CPUClass in our hot-paths

Leandro Lupori (1):
      tcg/ppc: Optimize 26-bit jumps

Richard Henderson (16):
      accel/tcg: Rename CPUIOTLBEntry to CPUTLBEntryFull
      accel/tcg: Drop addr member from SavedIOTLB
      accel/tcg: Suppress auto-invalidate in probe_access_internal
      accel/tcg: Introduce probe_access_full
      accel/tcg: Introduce tlb_set_page_full
      include/exec: Introduce TARGET_PAGE_ENTRY_EXTRA
      accel/tcg: Remove PageDesc code_bitmap
      accel/tcg: Use bool for page_find_alloc
      accel/tcg: Use DisasContextBase in plugin_gen_tb_start
      accel/tcg: Do not align tb->page_addr[0]
      accel/tcg: Inline tb_flush_jmp_cache
      include/hw/core: Create struct CPUJumpCache
      hw/core: Add CPUClass.get_pc
      accel/tcg: Introduce tb_pc and log_pc
      accel/tcg: Introduce TARGET_TB_PCREL
      target/sh4: Fix TB_FLAG_UNALIGN

 accel/tcg/internal.h                    |  10 ++
 accel/tcg/tb-hash.h                     |   1 +
 accel/tcg/tb-jmp-cache.h                |  65 ++++++++
 include/exec/cpu-common.h               |   1 +
 include/exec/cpu-defs.h                 |  48 ++++--
 include/exec/exec-all.h                 |  75 ++++++++-
 include/exec/plugin-gen.h               |   7 +-
 include/hw/core/cpu.h                   |  28 ++--
 include/qemu/typedefs.h                 |   2 +
 include/tcg/tcg.h                       |   2 +-
 target/sh4/cpu.h                        |  56 ++++---
 accel/stubs/tcg-stub.c                  |   4 +
 accel/tcg/cpu-exec.c                    |  80 +++++-----
 accel/tcg/cputlb.c                      | 259 ++++++++++++++++++--------------
 accel/tcg/plugin-gen.c                  |  22 +--
 accel/tcg/translate-all.c               | 214 ++++++++++++--------------
 accel/tcg/translator.c                  |   2 +-
 cpu.c                                   |   9 +-
 hw/core/cpu-common.c                    |   3 +-
 hw/core/cpu-sysemu.c                    |   5 +-
 linux-user/sh4/signal.c                 |   6 +-
 plugins/core.c                          |   2 +-
 target/alpha/cpu.c                      |   9 ++
 target/arm/cpu.c                        |  17 ++-
 target/arm/mte_helper.c                 |  14 +-
 target/arm/sve_helper.c                 |   4 +-
 target/arm/translate-a64.c              |   2 +-
 target/avr/cpu.c                        |  10 +-
 target/cris/cpu.c                       |   8 +
 target/hexagon/cpu.c                    |  10 +-
 target/hppa/cpu.c                       |  12 +-
 target/i386/cpu.c                       |   9 ++
 target/i386/tcg/tcg-cpu.c               |   2 +-
 target/loongarch/cpu.c                  |  11 +-
 target/m68k/cpu.c                       |   8 +
 target/microblaze/cpu.c                 |  10 +-
 target/mips/cpu.c                       |   8 +
 target/mips/tcg/exception.c             |   2 +-
 target/mips/tcg/sysemu/special_helper.c |   2 +-
 target/nios2/cpu.c                      |   9 ++
 target/openrisc/cpu.c                   |  10 +-
 target/ppc/cpu_init.c                   |   8 +
 target/riscv/cpu.c                      |  17 ++-
 target/rx/cpu.c                         |  10 +-
 target/s390x/cpu.c                      |   8 +
 target/s390x/tcg/mem_helper.c           |   4 -
 target/sh4/cpu.c                        |  18 ++-
 target/sh4/helper.c                     |   6 +-
 target/sh4/translate.c                  |  90 +++++------
 target/sparc/cpu.c                      |  10 +-
 target/tricore/cpu.c                    |  11 +-
 target/xtensa/cpu.c                     |   8 +
 tcg/tcg.c                               |   8 +-
 trace/control-target.c                  |   2 +-
 tcg/ppc/tcg-target.c.inc                | 119 +++++++++++----
 55 files changed, 915 insertions(+), 462 deletions(-)
 create mode 100644 accel/tcg/tb-jmp-cache.h


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [PULL 00/20] tcg patch queue
@ 2024-05-01 14:37 Richard Henderson
  2024-05-02  0:17 ` Richard Henderson
  0 siblings, 1 reply; 34+ messages in thread
From: Richard Henderson @ 2024-05-01 14:37 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 9c6c079bc6723da8061ccfb44361d67b1dd785dd:

  Merge tag 'pull-target-arm-20240430' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-04-30 09:58:54 -0700)

are available in the Git repository at:

  https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20240501

for you to fetch changes up to 917d7f8d948d706e275c9f33169b9dd0149ded1e:

  plugins: Update the documentation block for plugin-gen.c (2024-04-30 16:12:05 -0700)

----------------------------------------------------------------
plugins: Rewrite plugin tcg expansion

----------------------------------------------------------------
Richard Henderson (20):
      tcg: Make tcg/helper-info.h self-contained
      tcg: Pass function pointer to tcg_gen_call*
      plugins: Zero new qemu_plugin_dyn_cb entries
      plugins: Move function pointer in qemu_plugin_dyn_cb
      plugins: Create TCGHelperInfo for all out-of-line callbacks
      plugins: Use emit_before_op for PLUGIN_GEN_AFTER_INSN
      plugins: Use emit_before_op for PLUGIN_GEN_FROM_TB
      plugins: Add PLUGIN_GEN_AFTER_TB
      plugins: Use emit_before_op for PLUGIN_GEN_FROM_INSN
      plugins: Use emit_before_op for PLUGIN_GEN_FROM_MEM
      plugins: Remove plugin helpers
      tcg: Remove TCG_CALL_PLUGIN
      tcg: Remove INDEX_op_plugin_cb_{start,end}
      plugins: Simplify callback queues
      plugins: Introduce PLUGIN_CB_MEM_REGULAR
      plugins: Replace pr_ops with a proper debug dump flag
      plugins: Split out common cb expanders
      plugins: Merge qemu_plugin_tb_insn_get to plugin-gen.c
      plugins: Inline plugin_gen_empty_callback
      plugins: Update the documentation block for plugin-gen.c

 accel/tcg/plugin-helpers.h         |    5 -
 include/exec/helper-gen-common.h   |    4 -
 include/exec/helper-proto-common.h |    4 -
 include/exec/plugin-gen.h          |    4 -
 include/qemu/log.h                 |    1 +
 include/qemu/plugin.h              |   67 +--
 include/tcg/helper-info.h          |    3 +
 include/tcg/tcg-op-common.h        |    4 +-
 include/tcg/tcg-opc.h              |    4 +-
 include/tcg/tcg.h                  |   26 +-
 include/exec/helper-gen.h.inc      |   24 +-
 accel/tcg/plugin-gen.c             | 1007 +++++++++---------------------------
 plugins/api.c                      |   26 +-
 plugins/core.c                     |   61 ++-
 tcg/tcg-op-ldst.c                  |    6 +-
 tcg/tcg-op.c                       |    8 +-
 tcg/tcg.c                          |   78 ++-
 tcg/tci.c                          |    1 +
 util/log.c                         |    4 +
 19 files changed, 399 insertions(+), 938 deletions(-)
 delete mode 100644 accel/tcg/plugin-helpers.h


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [PULL 00/20] tcg patch queue
@ 2022-09-01  6:51 Richard Henderson
  2022-09-01 21:28 ` Stefan Hajnoczi
  0 siblings, 1 reply; 34+ messages in thread
From: Richard Henderson @ 2022-09-01  6:51 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit e93ded1bf6c94ab95015b33e188bc8b0b0c32670:

  Merge tag 'testing-pull-request-2022-08-30' of https://gitlab.com/thuth/qemu into staging (2022-08-31 18:19:03 -0400)

are available in the Git repository at:

  https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220901

for you to fetch changes up to 20011be2e30b8aa8ef1fc258485f00c688703deb:

  target/riscv: Make translator stop before the end of a page (2022-09-01 07:43:08 +0100)

----------------------------------------------------------------
Respect PROT_EXEC in user-only mode.
Fix s390x, i386 and riscv for translations crossing a page.

----------------------------------------------------------------
Ilya Leoshkevich (4):
      linux-user: Clear translations on mprotect()
      accel/tcg: Introduce is_same_page()
      target/s390x: Make translator stop before the end of a page
      target/i386: Make translator stop before the end of a page

Richard Henderson (16):
      linux-user/arm: Mark the commpage executable
      linux-user/hppa: Allocate page zero as a commpage
      linux-user/x86_64: Allocate vsyscall page as a commpage
      linux-user: Honor PT_GNU_STACK
      tests/tcg/i386: Move smc_code2 to an executable section
      accel/tcg: Properly implement get_page_addr_code for user-only
      accel/tcg: Unlock mmap_lock after longjmp
      accel/tcg: Make tb_htable_lookup static
      accel/tcg: Move qemu_ram_addr_from_host_nofail to physmem.c
      accel/tcg: Use probe_access_internal for softmmu get_page_addr_code_hostp
      accel/tcg: Document the faulting lookup in tb_lookup_cmp
      accel/tcg: Remove translator_ldsw
      accel/tcg: Add pc and host_pc params to gen_intermediate_code
      accel/tcg: Add fast path for translator_ld*
      target/riscv: Add MAX_INSN_LEN and insn_len
      target/riscv: Make translator stop before the end of a page

 include/elf.h                     |   1 +
 include/exec/cpu-common.h         |   1 +
 include/exec/exec-all.h           |  89 ++++++++----------------
 include/exec/translator.h         |  96 ++++++++++++++++---------
 linux-user/arm/target_cpu.h       |   4 +-
 linux-user/qemu.h                 |   1 +
 accel/tcg/cpu-exec.c              | 143 ++++++++++++++++++++------------------
 accel/tcg/cputlb.c                |  93 +++++++------------------
 accel/tcg/translate-all.c         |  29 ++++----
 accel/tcg/translator.c            | 135 ++++++++++++++++++++++++++---------
 accel/tcg/user-exec.c             |  17 ++++-
 linux-user/elfload.c              |  82 ++++++++++++++++++++--
 linux-user/mmap.c                 |   6 +-
 softmmu/physmem.c                 |  12 ++++
 target/alpha/translate.c          |   5 +-
 target/arm/translate.c            |   5 +-
 target/avr/translate.c            |   5 +-
 target/cris/translate.c           |   5 +-
 target/hexagon/translate.c        |   6 +-
 target/hppa/translate.c           |   5 +-
 target/i386/tcg/translate.c       |  71 +++++++++++--------
 target/loongarch/translate.c      |   6 +-
 target/m68k/translate.c           |   5 +-
 target/microblaze/translate.c     |   5 +-
 target/mips/tcg/translate.c       |   5 +-
 target/nios2/translate.c          |   5 +-
 target/openrisc/translate.c       |   6 +-
 target/ppc/translate.c            |   5 +-
 target/riscv/translate.c          |  32 +++++++--
 target/rx/translate.c             |   5 +-
 target/s390x/tcg/translate.c      |  20 ++++--
 target/sh4/translate.c            |   5 +-
 target/sparc/translate.c          |   5 +-
 target/tricore/translate.c        |   6 +-
 target/xtensa/translate.c         |   6 +-
 tests/tcg/i386/test-i386.c        |   2 +-
 tests/tcg/riscv64/noexec.c        |  79 +++++++++++++++++++++
 tests/tcg/s390x/noexec.c          | 106 ++++++++++++++++++++++++++++
 tests/tcg/x86_64/noexec.c         |  75 ++++++++++++++++++++
 tests/tcg/multiarch/noexec.c.inc  | 139 ++++++++++++++++++++++++++++++++++++
 tests/tcg/riscv64/Makefile.target |   1 +
 tests/tcg/s390x/Makefile.target   |   1 +
 tests/tcg/x86_64/Makefile.target  |   3 +-
 43 files changed, 966 insertions(+), 367 deletions(-)
 create mode 100644 tests/tcg/riscv64/noexec.c
 create mode 100644 tests/tcg/s390x/noexec.c
 create mode 100644 tests/tcg/x86_64/noexec.c
 create mode 100644 tests/tcg/multiarch/noexec.c.inc


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2024-05-02  0:18 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-04 19:52 [PULL 00/20] tcg patch queue Richard Henderson
2022-10-04 19:52 ` [PULL 01/20] cpu: cache CPUClass in CPUState for hot code paths Richard Henderson
2022-10-04 19:52 ` [PULL 02/20] hw/core/cpu-sysemu: used cached class in cpu_asidx_from_attrs Richard Henderson
2022-10-04 19:52 ` [PULL 03/20] cputlb: used cached CPUClass in our hot-paths Richard Henderson
2022-10-04 19:52 ` [PULL 04/20] accel/tcg: Rename CPUIOTLBEntry to CPUTLBEntryFull Richard Henderson
2022-10-04 19:52 ` [PULL 05/20] accel/tcg: Drop addr member from SavedIOTLB Richard Henderson
2022-10-04 19:52 ` [PULL 06/20] accel/tcg: Suppress auto-invalidate in probe_access_internal Richard Henderson
2022-10-04 19:52 ` [PULL 07/20] accel/tcg: Introduce probe_access_full Richard Henderson
2022-10-04 19:52 ` [PULL 08/20] accel/tcg: Introduce tlb_set_page_full Richard Henderson
2022-10-04 19:52 ` [PULL 09/20] include/exec: Introduce TARGET_PAGE_ENTRY_EXTRA Richard Henderson
2022-10-04 19:52 ` [PULL 10/20] accel/tcg: Remove PageDesc code_bitmap Richard Henderson
2022-10-04 19:52 ` [PULL 11/20] accel/tcg: Use bool for page_find_alloc Richard Henderson
2022-10-04 19:52 ` [PULL 12/20] accel/tcg: Use DisasContextBase in plugin_gen_tb_start Richard Henderson
2022-10-04 19:52 ` [PULL 13/20] accel/tcg: Do not align tb->page_addr[0] Richard Henderson
2022-10-04 19:52 ` [PULL 14/20] accel/tcg: Inline tb_flush_jmp_cache Richard Henderson
2022-10-04 19:52 ` [PULL 15/20] include/hw/core: Create struct CPUJumpCache Richard Henderson
2022-10-27 14:18   ` Ilya Leoshkevich
2022-10-27 14:44     ` Ilya Leoshkevich
2022-10-27 21:02       ` Richard Henderson
2022-10-27 20:46     ` Richard Henderson
2022-10-04 19:52 ` [PULL 16/20] hw/core: Add CPUClass.get_pc Richard Henderson
2022-10-04 19:52 ` [PULL 17/20] accel/tcg: Introduce tb_pc and log_pc Richard Henderson
2022-10-04 19:52 ` [PULL 18/20] accel/tcg: Introduce TARGET_TB_PCREL Richard Henderson
2022-10-04 19:52 ` [PULL 19/20] tcg/ppc: Optimize 26-bit jumps Richard Henderson
2022-12-15 21:33   ` Michael Tokarev
2022-12-15 21:37     ` Michael Tokarev
2022-12-15 23:22     ` Richard Henderson
2022-10-04 19:52 ` [PULL 20/20] target/sh4: Fix TB_FLAG_UNALIGN Richard Henderson
2022-10-20 15:48   ` Alex Bennée
2022-10-05 17:55 ` [PULL 00/20] tcg patch queue Stefan Hajnoczi
  -- strict thread matches above, loose matches on Subject: below --
2024-05-01 14:37 Richard Henderson
2024-05-02  0:17 ` Richard Henderson
2022-09-01  6:51 Richard Henderson
2022-09-01 21:28 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).