* [PULL 0/3] tcg patch queue
@ 2020-02-13 0:23 Richard Henderson
2020-02-13 18:55 ` Peter Maydell
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2020-02-13 0:23 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit e18e5501d8ac692d32657a3e1ef545b14e72b730:
Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-virtiofs-20200210' into staging (2020-02-10 18:09:14 +0000)
are available in the Git repository at:
https://github.com/rth7680/qemu.git tags/pull-tcg-20200212
for you to fetch changes up to 2445971604c1cfd3ec484457159f4ac300fb04d2:
tcg: Add tcg_gen_gvec_5_ptr (2020-02-12 14:58:36 -0800)
----------------------------------------------------------------
Fix breakpoint invalidation.
Add support for tcg helpers with 7 arguments.
Add support for gvec helpers with 5 arguments.
----------------------------------------------------------------
Max Filippov (1):
exec: flush CPU TB cache in breakpoint_invalidate
Richard Henderson (1):
tcg: Add tcg_gen_gvec_5_ptr
Taylor Simpson (1):
tcg: Add support for a helper with 7 arguments
include/exec/helper-gen.h | 13 +++++++++++++
include/exec/helper-head.h | 2 ++
include/exec/helper-proto.h | 6 ++++++
include/exec/helper-tcg.h | 7 +++++++
include/tcg/tcg-op-gvec.h | 7 +++++++
exec.c | 15 +++++++--------
tcg/tcg-op-gvec.c | 32 ++++++++++++++++++++++++++++++++
7 files changed, 74 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2020-02-13 0:23 Richard Henderson
@ 2020-02-13 18:55 ` Peter Maydell
0 siblings, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2020-02-13 18:55 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
On Thu, 13 Feb 2020 at 00:23, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit e18e5501d8ac692d32657a3e1ef545b14e72b730:
>
> Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-virtiofs-20200210' into staging (2020-02-10 18:09:14 +0000)
>
> are available in the Git repository at:
>
> https://github.com/rth7680/qemu.git tags/pull-tcg-20200212
>
> for you to fetch changes up to 2445971604c1cfd3ec484457159f4ac300fb04d2:
>
> tcg: Add tcg_gen_gvec_5_ptr (2020-02-12 14:58:36 -0800)
>
> ----------------------------------------------------------------
> Fix breakpoint invalidation.
> Add support for tcg helpers with 7 arguments.
> Add support for gvec helpers with 5 arguments.
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2020-10-27 16:51 Richard Henderson
2020-10-31 9:48 ` Peter Maydell
2020-11-02 13:57 ` Peter Maydell
0 siblings, 2 replies; 21+ messages in thread
From: Richard Henderson @ 2020-10-27 16:51 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit 4a74626970ab4ea475263d155b10fb75c9af0b33:
Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/tracing-pull-request' into staging (2020-10-27 11:28:46 +0000)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20201027
for you to fetch changes up to 1d705e8a5bbfe36294081baa45ab68a9ad987f33:
accel/tcg: Add CPU_LOG_EXEC tracing for cpu_io_recompile() (2020-10-27 09:48:07 -0700)
----------------------------------------------------------------
Optimize across branches.
Add logging for cpu_io_recompile.
----------------------------------------------------------------
Peter Maydell (1):
accel/tcg: Add CPU_LOG_EXEC tracing for cpu_io_recompile()
Richard Henderson (2):
tcg: Do not kill globals at conditional branches
tcg/optimize: Flush data at labels not TCG_OPF_BB_END
include/tcg/tcg-opc.h | 7 +++---
include/tcg/tcg.h | 4 +++-
accel/tcg/translate-all.c | 4 ++++
tcg/optimize.c | 35 +++++++++++++++---------------
tcg/tcg.c | 55 +++++++++++++++++++++++++++++++++++++++++++++--
5 files changed, 82 insertions(+), 23 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2020-10-27 16:51 Richard Henderson
@ 2020-10-31 9:48 ` Peter Maydell
2020-11-02 13:57 ` Peter Maydell
1 sibling, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2020-10-31 9:48 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
On Tue, 27 Oct 2020 at 16:51, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit 4a74626970ab4ea475263d155b10fb75c9af0b33:
>
> Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/tracing-pull-request' into staging (2020-10-27 11:28:46 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20201027
>
> for you to fetch changes up to 1d705e8a5bbfe36294081baa45ab68a9ad987f33:
>
> accel/tcg: Add CPU_LOG_EXEC tracing for cpu_io_recompile() (2020-10-27 09:48:07 -0700)
>
> ----------------------------------------------------------------
> Optimize across branches.
> Add logging for cpu_io_recompile.
>
> ----------------------------------------------------------------
> Peter Maydell (1):
> accel/tcg: Add CPU_LOG_EXEC tracing for cpu_io_recompile()
>
> Richard Henderson (2):
> tcg: Do not kill globals at conditional branches
> tcg/optimize: Flush data at labels not TCG_OPF_BB_END
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2020-10-27 16:51 Richard Henderson
2020-10-31 9:48 ` Peter Maydell
@ 2020-11-02 13:57 ` Peter Maydell
2020-11-02 16:14 ` Richard Henderson
1 sibling, 1 reply; 21+ messages in thread
From: Peter Maydell @ 2020-11-02 13:57 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu, QEMU Developers
On Tue, 27 Oct 2020 at 16:51, Richard Henderson
<richard.henderson@linaro.org> wrote:
> ----------------------------------------------------------------
> Optimize across branches.
> Add logging for cpu_io_recompile.
Igor2 reported on IRC that this seems to cause a crash when
using an hppa guest. This is apparently happening on a proprietary
disk image, so no reproducible test case, but the logging of
the tail end of -d in_asm,op is at:
http://igor2.repo.hu/tmp/in_asm_op.log
QEMU asserts with
../tcg/tcg.c:3346: tcg fatal error
The TB in question involves several conditional branches; the
generated TCG ops look OK to me, and reverting the two commits
b4cb76e6208cf6b5b and cd0372c515c4732d8b fixes the crash.
(We didn't test reverting only one of the two commits separately.)
thanks
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2020-11-02 13:57 ` Peter Maydell
@ 2020-11-02 16:14 ` Richard Henderson
0 siblings, 0 replies; 21+ messages in thread
From: Richard Henderson @ 2020-11-02 16:14 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu, QEMU Developers
On 11/2/20 5:57 AM, Peter Maydell wrote:
> On Tue, 27 Oct 2020 at 16:51, Richard Henderson
> <richard.henderson@linaro.org> wrote:
>> ----------------------------------------------------------------
>> Optimize across branches.
>> Add logging for cpu_io_recompile.
>
> Igor2 reported on IRC that this seems to cause a crash when
> using an hppa guest. This is apparently happening on a proprietary
> disk image, so no reproducible test case, but the logging of
> the tail end of -d in_asm,op is at:
> http://igor2.repo.hu/tmp/in_asm_op.log
>
> QEMU asserts with
> ../tcg/tcg.c:3346: tcg fatal error
>
> The TB in question involves several conditional branches; the
> generated TCG ops look OK to me, and reverting the two commits
> b4cb76e6208cf6b5b and cd0372c515c4732d8b fixes the crash.
> (We didn't test reverting only one of the two commits separately.)
Ok, thanks, I'll look into it.
r~
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2020-12-11 1:10 Richard Henderson
2020-12-11 16:55 ` Peter Maydell
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2020-12-11 1:10 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit 2ecfc0657afa5d29a373271b342f704a1a3c6737:
Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2020-12-10' into staging (2020-12-10 17:01:05 +0000)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20201210
for you to fetch changes up to 9e2658d62ebc23efe7df43fc0e306f129510d874:
accel/tcg: rename tcg-cpus functions to match module name (2020-12-10 17:44:10 -0600)
----------------------------------------------------------------
Split CpusAccel for tcg variants
----------------------------------------------------------------
Claudio Fontana (3):
accel/tcg: split CpusAccel into three TCG variants
accel/tcg: split tcg_start_vcpu_thread
accel/tcg: rename tcg-cpus functions to match module name
accel/tcg/tcg-cpus-icount.h | 17 ++
accel/tcg/tcg-cpus-rr.h | 21 ++
accel/tcg/tcg-cpus.h | 12 +-
accel/tcg/tcg-all.c | 13 +-
accel/tcg/tcg-cpus-icount.c | 147 +++++++++++++
accel/tcg/tcg-cpus-mttcg.c | 140 ++++++++++++
accel/tcg/tcg-cpus-rr.c | 305 ++++++++++++++++++++++++++
accel/tcg/tcg-cpus.c | 506 +-------------------------------------------
softmmu/icount.c | 2 +-
accel/tcg/meson.build | 9 +-
10 files changed, 670 insertions(+), 502 deletions(-)
create mode 100644 accel/tcg/tcg-cpus-icount.h
create mode 100644 accel/tcg/tcg-cpus-rr.h
create mode 100644 accel/tcg/tcg-cpus-icount.c
create mode 100644 accel/tcg/tcg-cpus-mttcg.c
create mode 100644 accel/tcg/tcg-cpus-rr.c
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2020-12-11 1:10 Richard Henderson
@ 2020-12-11 16:55 ` Peter Maydell
0 siblings, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2020-12-11 16:55 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
On Fri, 11 Dec 2020 at 01:10, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit 2ecfc0657afa5d29a373271b342f704a1a3c6737:
>
> Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2020-12-10' into staging (2020-12-10 17:01:05 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20201210
>
> for you to fetch changes up to 9e2658d62ebc23efe7df43fc0e306f129510d874:
>
> accel/tcg: rename tcg-cpus functions to match module name (2020-12-10 17:44:10 -0600)
>
> ----------------------------------------------------------------
> Split CpusAccel for tcg variants
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2021-01-04 17:35 Richard Henderson
2021-01-05 21:06 ` Peter Maydell
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2021-01-04 17:35 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit 41192db338588051f21501abc13743e62b0a5605:
Merge remote-tracking branch 'remotes/ehabkost-gl/tags/machine-next-pull-request' into staging (2021-01-01 22:57:15 +0000)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20210104
for you to fetch changes up to a66424ba17d661007dc13d78c9e3014ccbaf0efb:
tcg: Add tcg_gen_bswap_tl alias (2021-01-04 06:32:58 -1000)
----------------------------------------------------------------
Fix vector clear issue.
Fix riscv host shift issue.
Add tcg_gen_bswap_tl.
----------------------------------------------------------------
Richard Henderson (2):
tcg: Use memset for large vector byte replication
tcg: Add tcg_gen_bswap_tl alias
Zihao Yu (1):
tcg/riscv: Fix illegal shift instructions
accel/tcg/tcg-runtime.h | 11 +++++++++++
include/exec/helper-proto.h | 4 ++++
include/tcg/tcg-op.h | 2 ++
tcg/tcg-op-gvec.c | 32 ++++++++++++++++++++++++++++++++
tcg/riscv/tcg-target.c.inc | 12 ++++++------
5 files changed, 55 insertions(+), 6 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2021-01-04 17:35 Richard Henderson
@ 2021-01-05 21:06 ` Peter Maydell
0 siblings, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2021-01-05 21:06 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
On Mon, 4 Jan 2021 at 17:35, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit 41192db338588051f21501abc13743e62b0a5605:
>
> Merge remote-tracking branch 'remotes/ehabkost-gl/tags/machine-next-pull-request' into staging (2021-01-01 22:57:15 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20210104
>
> for you to fetch changes up to a66424ba17d661007dc13d78c9e3014ccbaf0efb:
>
> tcg: Add tcg_gen_bswap_tl alias (2021-01-04 06:32:58 -1000)
>
> ----------------------------------------------------------------
> Fix vector clear issue.
> Fix riscv host shift issue.
> Add tcg_gen_bswap_tl.
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2022-02-28 18:09 Richard Henderson
2022-03-01 19:43 ` Peter Maydell
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2022-02-28 18:09 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit 00483d386901173e84c7965f9f0d678791a75e01:
Merge remote-tracking branch 'remotes/shorne/tags/or1k-pull-request' into staging (2022-02-28 11:27:16 +0000)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220228
for you to fetch changes up to 2ccf40f00e3f29d85d4ff48a9a98870059002290:
tcg/tci: Use tcg_out_ldst in tcg_out_st (2022-02-28 08:04:10 -1000)
----------------------------------------------------------------
Fix typecode generation for tcg helpers
Fix single stepping into interrupt handlers
Fix out-of-range offsets for stores in TCI
----------------------------------------------------------------
Luc Michel (1):
accel/tcg/cpu-exec: Fix precise single-stepping after interrupt
Richard Henderson (2):
tcg: Remove dh_alias indirection for dh_typecode
tcg/tci: Use tcg_out_ldst in tcg_out_st
include/exec/helper-head.h | 19 ++++++++++---------
target/hppa/helper.h | 2 ++
target/i386/ops_sse_header.h | 3 +++
target/m68k/helper.h | 1 +
target/ppc/helper.h | 3 +++
accel/tcg/cpu-exec.c | 8 ++++++--
tcg/tci/tcg-target.c.inc | 5 ++---
7 files changed, 27 insertions(+), 14 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2022-02-28 18:09 Richard Henderson
@ 2022-03-01 19:43 ` Peter Maydell
0 siblings, 0 replies; 21+ messages in thread
From: Peter Maydell @ 2022-03-01 19:43 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
On Mon, 28 Feb 2022 at 18:09, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit 00483d386901173e84c7965f9f0d678791a75e01:
>
> Merge remote-tracking branch 'remotes/shorne/tags/or1k-pull-request' into staging (2022-02-28 11:27:16 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220228
>
> for you to fetch changes up to 2ccf40f00e3f29d85d4ff48a9a98870059002290:
>
> tcg/tci: Use tcg_out_ldst in tcg_out_st (2022-02-28 08:04:10 -1000)
>
> ----------------------------------------------------------------
> Fix typecode generation for tcg helpers
> Fix single stepping into interrupt handlers
> Fix out-of-range offsets for stores in TCI
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/7.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2022-06-02 15:13 Richard Henderson
2022-06-02 16:41 ` Richard Henderson
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2022-06-02 15:13 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 1e62a82574fc28e64deca589a23cf55ada2e1a7d:
Merge tag 'm68k-for-7.1-pull-request' of https://github.com/vivier/qemu-m68k into staging (2022-06-02 06:30:24 -0700)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220602
for you to fetch changes up to 94bcc91b2e95e02ec57ed18d5a5e7cb75aa19a50:
tcg/aarch64: Fix illegal insn from out-of-range shli (2022-06-02 08:09:46 -0700)
----------------------------------------------------------------
Add tcg_gen_mov_ptr.
Fix tcg/i386 encoding of avx512 vpsraq.
Fix tcg/aarch64 handling of out-of-range shli.
----------------------------------------------------------------
Richard Henderson (3):
tcg: Add tcg_gen_mov_ptr
tcg/i386: Fix encoding of OPC_VPSRAQ for INDEX_op_sars_vec
tcg/aarch64: Fix illegal insn from out-of-range shli
include/tcg/tcg-op.h | 5 +++++
tcg/aarch64/tcg-target.c.inc | 2 +-
tcg/i386/tcg-target.c.inc | 2 +-
3 files changed, 7 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2022-06-02 15:13 Richard Henderson
@ 2022-06-02 16:41 ` Richard Henderson
0 siblings, 0 replies; 21+ messages in thread
From: Richard Henderson @ 2022-06-02 16:41 UTC (permalink / raw)
To: qemu-devel
On 6/2/22 08:13, Richard Henderson wrote:
> The following changes since commit 1e62a82574fc28e64deca589a23cf55ada2e1a7d:
>
> Merge tag 'm68k-for-7.1-pull-request' of https://github.com/vivier/qemu-m68k into staging (2022-06-02 06:30:24 -0700)
>
> are available in the Git repository at:
>
> https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220602
>
> for you to fetch changes up to 94bcc91b2e95e02ec57ed18d5a5e7cb75aa19a50:
>
> tcg/aarch64: Fix illegal insn from out-of-range shli (2022-06-02 08:09:46 -0700)
>
> ----------------------------------------------------------------
> Add tcg_gen_mov_ptr.
> Fix tcg/i386 encoding of avx512 vpsraq.
> Fix tcg/aarch64 handling of out-of-range shli.
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.
r~
>
> ----------------------------------------------------------------
> Richard Henderson (3):
> tcg: Add tcg_gen_mov_ptr
> tcg/i386: Fix encoding of OPC_VPSRAQ for INDEX_op_sars_vec
> tcg/aarch64: Fix illegal insn from out-of-range shli
>
> include/tcg/tcg-op.h | 5 +++++
> tcg/aarch64/tcg-target.c.inc | 2 +-
> tcg/i386/tcg-target.c.inc | 2 +-
> 3 files changed, 7 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2026-04-29 22:01 Richard Henderson
2026-04-30 17:35 ` Stefan Hajnoczi
0 siblings, 1 reply; 21+ messages in thread
From: Richard Henderson @ 2026-04-29 22:01 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha
The following changes since commit 282771e1f9b9b6e0147adf5f9d676325175b1767:
Merge tag 'pull-riscv-to-apply-20260429-1' of https://github.com/alistair23/qemu into staging (2026-04-29 09:22:51 -0400)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20260430
for you to fetch changes up to cc895e6dcf59a883ad09e27e726057b84431e622:
tcg: Remove unused tcg_gen_vec_*_tl() API (2026-04-30 07:09:22 +1000)
----------------------------------------------------------------
tcg/aarch64: Replacement of I3XXX names
tcg: Remove unused tcg_gen_vec_*_tl() API
----------------------------------------------------------------
Jim MacArthur (2):
tcg/aarch64/tcg-target.c.inc: Replacement of I3XXX names
tcg/aarch64/tcg-target.c.inc: Manual replace of I3310, I3313
Philippe Mathieu-Daudé (1):
tcg: Remove unused tcg_gen_vec_*_tl() API
include/tcg/tcg-op-gvec.h | 24 --
tcg/aarch64/tcg-target.c.inc | 992 ++++++++++++++++++++++---------------------
2 files changed, 508 insertions(+), 508 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2026-04-29 22:01 Richard Henderson
@ 2026-04-30 17:35 ` Stefan Hajnoczi
0 siblings, 0 replies; 21+ messages in thread
From: Stefan Hajnoczi @ 2026-04-30 17:35 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel, stefanha
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/11.1 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 0/3] tcg patch queue
@ 2026-05-29 20:30 Richard Henderson
2026-05-29 20:30 ` [PULL 1/3] docs/devel/tcg-ops: Fix reStructuredText format Richard Henderson
` (3 more replies)
0 siblings, 4 replies; 21+ messages in thread
From: Richard Henderson @ 2026-05-29 20:30 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 81cc5f39aa3042e9c0b2ea772b42a2c8b1488e76:
Merge tag 'pull-target-arm-20260529' of https://gitlab.com/pm215/qemu into staging (2026-05-29 12:58:25 -0400)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20260529
for you to fetch changes up to c9349965ce4a1548a0b19dc3cf859a461d525f6b:
tcg: Optimize INDEX_op_mul[us]2 for 0 and 1 (2026-05-29 13:03:58 -0700)
----------------------------------------------------------------
docs/devel/tcg-ops: Fix reStructuredText format
tcg: Optimize INDEX_op_mul[us]2 for 0 and 1
----------------------------------------------------------------
Philippe Mathieu-Daudé (1):
docs/devel/tcg-ops: Fix reStructuredText format
Richard Henderson (2):
tcg: Massage fold_multiply2()
tcg: Optimize INDEX_op_mul[us]2 for 0 and 1
tcg/optimize.c | 90 +++++++++++++++++++++++++++++++++-----------------
docs/devel/tcg-ops.rst | 16 ++++-----
2 files changed, 67 insertions(+), 39 deletions(-)
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PULL 1/3] docs/devel/tcg-ops: Fix reStructuredText format
2026-05-29 20:30 [PULL 0/3] tcg patch queue Richard Henderson
@ 2026-05-29 20:30 ` Richard Henderson
2026-05-29 20:31 ` [PULL 2/3] tcg: Massage fold_multiply2() Richard Henderson
` (2 subsequent siblings)
3 siblings, 0 replies; 21+ messages in thread
From: Richard Henderson @ 2026-05-29 20:30 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@linaro.org>
In the standard reStructuredText inline markup, italic
text is surrounded by one asterisk.
Fix incomplete style from commits 5e97a28a8b9 ("tcg: convert
tcg/README to rst") and 76f42780292 ("tcg: Add add/sub with
carry opcodes and infrastructure").
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20260519210019.11665-1-philmd@linaro.org>
---
docs/devel/tcg-ops.rst | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/devel/tcg-ops.rst b/docs/devel/tcg-ops.rst
index 56c0b0bd3d..92ef127c80 100644
--- a/docs/devel/tcg-ops.rst
+++ b/docs/devel/tcg-ops.rst
@@ -563,9 +563,9 @@ Load/Store
ld16u_i32/i64 *t0*, *t1*, *offset*
- ld32s_i64 t0, *t1*, *offset*
+ ld32s_i64 *t0*, *t1*, *offset*
- ld32u_i64 t0, *t1*, *offset*
+ ld32u_i64 *t0*, *t1*, *offset*
- | *t0* = read(*t1* + *offset*)
|
@@ -598,19 +598,19 @@ Multiword arithmetic support
- | Compute *t0* = *t1* + *t2* and in addition output to the
carry bit provided by the host architecture.
- * - addci *t0, *t1*, *t2*
+ * - addci *t0*, *t1*, *t2*
- | Compute *t0* = *t1* + *t2* + *C*, where *C* is the
input carry bit provided by the host architecture.
The output carry bit need not be computed.
- * - addcio *t0, *t1*, *t2*
+ * - addcio *t0*, *t1*, *t2*
- | Compute *t0* = *t1* + *t2* + *C*, where *C* is the
input carry bit provided by the host architecture,
and also compute the output carry bit.
- * - addc1o *t0, *t1*, *t2*
+ * - addc1o *t0*, *t1*, *t2*
- | Compute *t0* = *t1* + *t2* + 1, and in addition output to the
carry bit provided by the host architecture. This is akin to
@@ -630,19 +630,19 @@ Multiword arithmetic support
identical to the borrow bit. Thus the addc\* and subb\*
opcodes must not be mixed.
- * - subbi *t0, *t1*, *t2*
+ * - subbi *t0*, *t1*, *t2*
- | Compute *t0* = *t1* - *t2* - *B*, where *B* is the
input borrow bit provided by the host architecture.
The output borrow bit need not be computed.
- * - subbio *t0, *t1*, *t2*
+ * - subbio *t0*, *t1*, *t2*
- | Compute *t0* = *t1* - *t2* - *B*, where *B* is the
input borrow bit provided by the host architecture,
and also compute the output borrow bit.
- * - subb1o *t0, *t1*, *t2*
+ * - subb1o *t0*, *t1*, *t2*
- | Compute *t0* = *t1* - *t2* - 1, and in addition output to the
borrow bit provided by the host architecture. This is akin to
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 2/3] tcg: Massage fold_multiply2()
2026-05-29 20:30 [PULL 0/3] tcg patch queue Richard Henderson
2026-05-29 20:30 ` [PULL 1/3] docs/devel/tcg-ops: Fix reStructuredText format Richard Henderson
@ 2026-05-29 20:31 ` Richard Henderson
2026-05-29 20:31 ` [PULL 3/3] tcg: Optimize INDEX_op_mul[us]2 for 0 and 1 Richard Henderson
2026-06-01 14:00 ` [PULL 0/3] tcg patch queue Stefan Hajnoczi
3 siblings, 0 replies; 21+ messages in thread
From: Richard Henderson @ 2026-05-29 20:31 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé
In order to ease next commit review, check arg2 constness
in the inner loop.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20260520125139.13352-2-philmd@linaro.org>
---
tcg/optimize.c | 68 +++++++++++++++++++++++++-------------------------
1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/tcg/optimize.c b/tcg/optimize.c
index b1abec69a5..ef5eb2cf17 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -2173,45 +2173,45 @@ static bool fold_multiply2(OptContext *ctx, TCGOp *op)
{
swap_commutative(op->args[0], &op->args[2], &op->args[3]);
- if (arg_is_const(op->args[2]) && arg_is_const(op->args[3])) {
- uint64_t a = arg_const_val(op->args[2]);
+ if (arg_is_const(op->args[3])) {
uint64_t b = arg_const_val(op->args[3]);
- uint64_t h, l;
- TCGArg rl, rh;
+ TCGArg rl = op->args[0];
+ TCGArg rh = op->args[1];
TCGOp *op2;
- switch (op->opc) {
- case INDEX_op_mulu2:
- if (ctx->type == TCG_TYPE_I32) {
- l = (uint64_t)(uint32_t)a * (uint32_t)b;
- h = (int32_t)(l >> 32);
- l = (int32_t)l;
- } else {
- mulu64(&l, &h, a, b);
+ if (arg_is_const(op->args[2])) {
+ uint64_t a = arg_const_val(op->args[2]);
+ uint64_t h, l;
+
+ switch (op->opc) {
+ case INDEX_op_mulu2:
+ if (ctx->type == TCG_TYPE_I32) {
+ l = (uint64_t)(uint32_t)a * (uint32_t)b;
+ h = (int32_t)(l >> 32);
+ l = (int32_t)l;
+ } else {
+ mulu64(&l, &h, a, b);
+ }
+ break;
+ case INDEX_op_muls2:
+ if (ctx->type == TCG_TYPE_I32) {
+ l = (int64_t)(int32_t)a * (int32_t)b;
+ h = l >> 32;
+ l = (int32_t)l;
+ } else {
+ muls64(&l, &h, a, b);
+ }
+ break;
+ default:
+ g_assert_not_reached();
}
- break;
- case INDEX_op_muls2:
- if (ctx->type == TCG_TYPE_I32) {
- l = (int64_t)(int32_t)a * (int32_t)b;
- h = l >> 32;
- l = (int32_t)l;
- } else {
- muls64(&l, &h, a, b);
- }
- break;
- default:
- g_assert_not_reached();
+
+ /* The proper opcode is supplied by tcg_opt_gen_mov. */
+ op2 = opt_insert_before(ctx, op, 0, 2);
+ tcg_opt_gen_movi(ctx, op, rl, l);
+ tcg_opt_gen_movi(ctx, op2, rh, h);
+ return true;
}
-
- rl = op->args[0];
- rh = op->args[1];
-
- /* The proper opcode is supplied by tcg_opt_gen_mov. */
- op2 = opt_insert_before(ctx, op, 0, 2);
-
- tcg_opt_gen_movi(ctx, op, rl, l);
- tcg_opt_gen_movi(ctx, op2, rh, h);
- return true;
}
return finish_folding(ctx, op);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PULL 3/3] tcg: Optimize INDEX_op_mul[us]2 for 0 and 1
2026-05-29 20:30 [PULL 0/3] tcg patch queue Richard Henderson
2026-05-29 20:30 ` [PULL 1/3] docs/devel/tcg-ops: Fix reStructuredText format Richard Henderson
2026-05-29 20:31 ` [PULL 2/3] tcg: Massage fold_multiply2() Richard Henderson
@ 2026-05-29 20:31 ` Richard Henderson
2026-06-01 14:00 ` [PULL 0/3] tcg patch queue Stefan Hajnoczi
3 siblings, 0 replies; 21+ messages in thread
From: Richard Henderson @ 2026-05-29 20:31 UTC (permalink / raw)
To: qemu-devel; +Cc: James Hilliard, Philippe Mathieu-Daudé
Zero operands produce a zero high and low product. One operands produce
a copy of the other operand and a zero or sign extension in the high
half.
Fold those cases during TCG optimization so wide-multiply idioms used by
target translators can collapse before code generation.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20260520125139.13352-3-philmd@linaro.org>
---
tcg/optimize.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/tcg/optimize.c b/tcg/optimize.c
index ef5eb2cf17..fcdef25bee 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -2212,6 +2212,34 @@ static bool fold_multiply2(OptContext *ctx, TCGOp *op)
tcg_opt_gen_movi(ctx, op2, rh, h);
return true;
}
+
+ if (b == 0) {
+ op2 = opt_insert_before(ctx, op, 0, 2);
+ tcg_opt_gen_movi(ctx, op2, rl, 0);
+ tcg_opt_gen_movi(ctx, op, rh, 0);
+ return true;
+ }
+ if (b == 1) {
+ op2 = opt_insert_before(ctx, op, 0, 2);
+ tcg_opt_gen_mov(ctx, op2, rl, op->args[2]);
+
+ switch (op->opc) {
+ case INDEX_op_mulu2:
+ tcg_opt_gen_movi(ctx, op, rh, 0);
+ break;
+ case INDEX_op_muls2:
+ op->opc = INDEX_op_sar;
+ op->args[0] = rh;
+ op->args[1] = rl;
+ op->args[2] =
+ arg_new_constant(ctx, tcg_type_size(ctx->type) * 8 - 1);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+
+ return true;
+ }
}
return finish_folding(ctx, op);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PULL 0/3] tcg patch queue
2026-05-29 20:30 [PULL 0/3] tcg patch queue Richard Henderson
` (2 preceding siblings ...)
2026-05-29 20:31 ` [PULL 3/3] tcg: Optimize INDEX_op_mul[us]2 for 0 and 1 Richard Henderson
@ 2026-06-01 14:00 ` Stefan Hajnoczi
3 siblings, 0 replies; 21+ messages in thread
From: Stefan Hajnoczi @ 2026-06-01 14:00 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/11.1 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2026-06-01 14:01 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-29 20:30 [PULL 0/3] tcg patch queue Richard Henderson
2026-05-29 20:30 ` [PULL 1/3] docs/devel/tcg-ops: Fix reStructuredText format Richard Henderson
2026-05-29 20:31 ` [PULL 2/3] tcg: Massage fold_multiply2() Richard Henderson
2026-05-29 20:31 ` [PULL 3/3] tcg: Optimize INDEX_op_mul[us]2 for 0 and 1 Richard Henderson
2026-06-01 14:00 ` [PULL 0/3] tcg patch queue Stefan Hajnoczi
-- strict thread matches above, loose matches on Subject: below --
2026-04-29 22:01 Richard Henderson
2026-04-30 17:35 ` Stefan Hajnoczi
2022-06-02 15:13 Richard Henderson
2022-06-02 16:41 ` Richard Henderson
2022-02-28 18:09 Richard Henderson
2022-03-01 19:43 ` Peter Maydell
2021-01-04 17:35 Richard Henderson
2021-01-05 21:06 ` Peter Maydell
2020-12-11 1:10 Richard Henderson
2020-12-11 16:55 ` Peter Maydell
2020-10-27 16:51 Richard Henderson
2020-10-31 9:48 ` Peter Maydell
2020-11-02 13:57 ` Peter Maydell
2020-11-02 16:14 ` Richard Henderson
2020-02-13 0:23 Richard Henderson
2020-02-13 18:55 ` Peter Maydell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.