qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] d4e4ac: tcg/i386: Set P_REXW in tcg_out_addi_


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] d4e4ac: tcg/i386: Set P_REXW in tcg_out_addi_ptr
Date: Tue, 16 May 2023 12:43:15 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: d4e4ac4a59183fe58017ee38c32e689ac98f3f38
      
https://github.com/qemu/qemu/commit/d4e4ac4a59183fe58017ee38c32e689ac98f3f38
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-14 (Sun, 14 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Set P_REXW in tcg_out_addi_ptr

The REXW bit must be set to produce a 64-bit pointer result; the
bit is disabled in 32-bit mode, so we can do this unconditionally.

Fixes: 7d9e1ee424b0 ("tcg/i386: Adjust assert in tcg_out_addi_ptr")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1592
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1642
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: d385d08d87a4bb004c1daf5a61cf457809633a2d
      
https://github.com/qemu/qemu/commit/d385d08d87a4bb004c1daf5a61cf457809633a2d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M include/exec/memop.h
    M tcg/tcg.c

  Log Message:
  -----------
  include/exec/memop: Add MO_ATOM_*

This field may be used to describe the precise atomicity requirements
of the guest, which may then be used to constrain the methods by which
it may be emulated by the host.

For instance, the AArch64 LDP (32-bit) instruction changes semantics
with ARMv8.4 LSE2, from

  MO_64 | MO_ATOM_IFALIGN_PAIR
  (64-bits, single-copy atomic only on 4 byte units,
   nonatomic if not aligned by 4),

to

  MO_64 | MO_ATOM_WITHIN16
  (64-bits, single-copy atomic within a 16 byte block)

The former may be implemented with two 4 byte loads, or a single 8 byte
load if that happens to be efficient on the host.  The latter may not
be implemented with two 4 byte loads and may also require a helper when
misaligned.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 2a37ccd0b44231070ca36676c45bd4fe1e08cba3
      
https://github.com/qemu/qemu/commit/2a37ccd0b44231070ca36676c45bd4fe1e08cba3
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    A accel/tcg/ldst_atomicity.c.inc
    M accel/tcg/user-exec.c

  Log Message:
  -----------
  accel/tcg: Honor atomicity of loads

Create ldst_atomicity.c.inc.

Not required for user-only code loads, because we've ensured that
the page is read-only before beginning to translate code.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 3564432f466fb7ad475ef085222d6d46a47fb58a
      
https://github.com/qemu/qemu/commit/3564432f466fb7ad475ef085222d6d46a47fb58a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    M accel/tcg/ldst_atomicity.c.inc
    M accel/tcg/user-exec.c

  Log Message:
  -----------
  accel/tcg: Honor atomicity of stores

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 83577c03e805866f3146d01193d2797409477d39
      
https://github.com/qemu/qemu/commit/83577c03e805866f3146d01193d2797409477d39
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    M docs/devel/loads-stores.rst
    M include/tcg/tcg-ldst.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/arm/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/loongarch64/tcg-target.c.inc
    M tcg/mips/tcg-target.c.inc
    M tcg/ppc/tcg-target.c.inc
    M tcg/riscv/tcg-target.c.inc
    M tcg/s390x/tcg-target.c.inc
    M tcg/sparc64/tcg-target.c.inc
    M tcg/tcg.c
    M tcg/tci.c

  Log Message:
  -----------
  tcg: Unify helper_{be,le}_{ld,st}*

With the current structure of cputlb.c, there is no difference
between the little-endian and big-endian entry points, aside
from the assert.  Unify the pairs of functions.

Hoist the qemu_{ld,st}_helpers arrays to tcg.c.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 42d2f75fcf5ced22a5621a334a92f17ffe61ef2a
      
https://github.com/qemu/qemu/commit/42d2f75fcf5ced22a5621a334a92f17ffe61ef2a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/user-exec.c
    M include/tcg/tcg-ldst.h
    M tcg/tcg.c

  Log Message:
  -----------
  accel/tcg: Implement helper_{ld,st}*_mmu for user-only

TCG backends may need to defer to a helper to implement
the atomicity required by a given operation.  Mirror the
interface used in system mode.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 38b8b67dafcaf3708f20c70d43a2c5afb147b6b3
      
https://github.com/qemu/qemu/commit/38b8b67dafcaf3708f20c70d43a2c5afb147b6b3
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/tci.c

  Log Message:
  -----------
  tcg/tci: Use helper_{ld,st}*_mmu for user-only

We can now fold these two pieces of code.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8df8f9dfc2b0174dfe8a2882c6187534053f9bbd
      
https://github.com/qemu/qemu/commit/8df8f9dfc2b0174dfe8a2882c6187534053f9bbd
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    M accel/tcg/ldst_atomicity.c.inc
    M accel/tcg/tcg-runtime.h
    M accel/tcg/user-exec.c
    M include/tcg/tcg-ldst.h
    M tcg/tcg-op.c

  Log Message:
  -----------
  tcg: Add 128-bit guest memory primitives

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 7815e98c0670bd77c1c07405677f6e1668c66e52
      
https://github.com/qemu/qemu/commit/7815e98c0670bd77c1c07405677f6e1668c66e52
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M accel/tcg/ldst_atomicity.c.inc
    M meson.build

  Log Message:
  -----------
  meson: Detect atomic128 support with optimization

There is an edge condition prior to gcc13 for which optimization
is required to generate 16-byte atomic sequences.  Detect this.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: b241fd3e111cf80119abb5770e42f29cbe2d888f
      
https://github.com/qemu/qemu/commit/b241fd3e111cf80119abb5770e42f29cbe2d888f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M include/qemu/cpuid.h
    M tcg/i386/tcg-target.c.inc
    M tcg/i386/tcg-target.h

  Log Message:
  -----------
  tcg/i386: Add have_atomic16

Notice when Intel or AMD have guaranteed that vmovdqa is atomic.
The new variable will also be used in generated code.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5ed9c6a50aaaa4738837f8c24da003c8ce563d5c
      
https://github.com/qemu/qemu/commit/5ed9c6a50aaaa4738837f8c24da003c8ce563d5c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc
    M tcg/aarch64/tcg-target.h

  Log Message:
  -----------
  tcg/aarch64: Detect have_lse, have_lse2 for linux

Notice when the host has additional atomic instructions.
The new variables will also be used in generated code.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 72be12303ee9c8046426757a6102925c75f0cc7c
      
https://github.com/qemu/qemu/commit/72be12303ee9c8046426757a6102925c75f0cc7c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Detect have_lse, have_lse2 for darwin

These features are present for Apple M1.

Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 552e82a9ec6092dff54b696e20826bdc49c7adaa
      
https://github.com/qemu/qemu/commit/552e82a9ec6092dff54b696e20826bdc49c7adaa
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8223ac3f7df3c3d2b1d0fff9f24acc95ff088f4a
      
https://github.com/qemu/qemu/commit/8223ac3f7df3c3d2b1d0fff9f24acc95ff088f4a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 02b0465f634201fb4aa84dc9b445681bf5613c3a
      
https://github.com/qemu/qemu/commit/02b0465f634201fb4aa84dc9b445681bf5613c3a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/ppc/tcg-target.c.inc

  Log Message:
  -----------
  tcg/ppc: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c602fa4eb28aa42856ba22da8f65aa8710b58396
      
https://github.com/qemu/qemu/commit/c602fa4eb28aa42856ba22da8f65aa8710b58396
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/loongarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/loongarch64: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c562d266b3c0825844f35ce90c37f7cf17ada65a
      
https://github.com/qemu/qemu/commit/c562d266b3c0825844f35ce90c37f7cf17ada65a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/riscv/tcg-target.c.inc

  Log Message:
  -----------
  tcg/riscv: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8c72c7431d2133a7165fa4ef47345d10b3f160c7
      
https://github.com/qemu/qemu/commit/8c72c7431d2133a7165fa4ef47345d10b3f160c7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/arm/tcg-target-con-set.h
    M tcg/arm/tcg-target-con-str.h
    M tcg/arm/tcg-target.c.inc

  Log Message:
  -----------
  tcg/arm: Adjust constraints on qemu_ld/st

Always reserve r3 for tlb softmmu lookup.  Fix a bug in user-only
ALL_QLDST_REGS, in that r14 is clobbered by the BLNE that leads
to the misaligned trap.  Remove r0+r1 from user-only ALL_QLDST_REGS;
I believe these had been reserved for bswap, which we no longer
perform during qemu_st.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ab85b80f36e539012745da58bdadc50910f7589a
      
https://github.com/qemu/qemu/commit/ab85b80f36e539012745da58bdadc50910f7589a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/arm/tcg-target.c.inc

  Log Message:
  -----------
  tcg/arm: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c7efb55a304232b8d820297a65a6e3fa72edf408
      
https://github.com/qemu/qemu/commit/c7efb55a304232b8d820297a65a6e3fa72edf408
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/mips/tcg-target.c.inc

  Log Message:
  -----------
  tcg/mips: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: d493c126c11d0f798768c998498eb11759c26091
      
https://github.com/qemu/qemu/commit/d493c126c11d0f798768c998498eb11759c26091
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/s390x/tcg-target.c.inc

  Log Message:
  -----------
  tcg/s390x: Use full load/store helpers in user-only mode

Instead of using helper_unaligned_{ld,st}, use the full load/store helpers.
This will allow the fast path to increase alignment to implement atomicity
while not immediately raising an alignment exception.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 55c376c30e60853d10c429e16e4b253b6ebd5213
      
https://github.com/qemu/qemu/commit/55c376c30e60853d10c429e16e4b253b6ebd5213
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/sparc64: Allocate %g2 as a third temporary

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: b3773ccedb9a9333d7b1b89008f69d6011de6959
      
https://github.com/qemu/qemu/commit/b3773ccedb9a9333d7b1b89008f69d6011de6959
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/sparc64: Rename tcg_out_movi_imm13 to tcg_out_movi_s13

Emphasize that the constant is signed.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 2ebc650fb6d2bbc8f5596ae612715b72152a2c59
      
https://github.com/qemu/qemu/commit/2ebc650fb6d2bbc8f5596ae612715b72152a2c59
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  target/sparc64: Remove tcg_out_movi_s13 case from tcg_out_movi_imm32

Shuffle the order in tcg_out_movi_int to check s13 first, and
drop this check from tcg_out_movi_imm32.  This might make the
sequence for in_prologue larger, but not worth worrying about.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 907407b257a932a8e36df3adc429d7c745171a06
      
https://github.com/qemu/qemu/commit/907407b257a932a8e36df3adc429d7c745171a06
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/sparc64: Rename tcg_out_movi_imm32 to tcg_out_movi_u32

Emphasize that the constant is unsigned.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 868d271fbef1c142e5389294f1ef0f7124ebd1c2
      
https://github.com/qemu/qemu/commit/868d271fbef1c142e5389294f1ef0f7124ebd1c2
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/sparc64: Split out tcg_out_movi_s32

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 10dfc1f05fafbf66bf92f768564f80f873a0bf6a
      
https://github.com/qemu/qemu/commit/10dfc1f05fafbf66bf92f768564f80f873a0bf6a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target-con-set.h
    M tcg/sparc64/tcg-target-con-str.h
    M tcg/sparc64/tcg-target.c.inc
    M tcg/sparc64/tcg-target.h

  Log Message:
  -----------
  tcg/sparc64: Use standard slow path for softmmu

Drop the target-specific trampolines for the standard slow path.
This lets us use tcg_out_helper_{ld,st}_args, and handles the new
atomicity bits within MemOp.

At the same time, use the full load/store helpers for user-only mode.
Drop inline unaligned access support for user-only mode, as it does
not handle atomicity.

Use TCG_REG_T[1-3] in the tlb lookup, instead of TCG_REG_O[0-2].
This allows the constraints to be simplified.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 474f48f9a9ecffb7edb5895d5fba172b96974072
      
https://github.com/qemu/qemu/commit/474f48f9a9ecffb7edb5895d5fba172b96974072
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/user-exec.c
    M include/tcg/tcg-ldst.h

  Log Message:
  -----------
  accel/tcg: Remove helper_unaligned_{ld,st}

These functions are now unused.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: fba265fe0ff5f8a78c2fe98e160abefc46e97e1b
      
https://github.com/qemu/qemu/commit/fba265fe0ff5f8a78c2fe98e160abefc46e97e1b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/loongarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/loongarch64: Check the host supports unaligned accesses

This should be true of all loongarch64 running Linux.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 54ff67679a5961db3feb4ba3bba1b640695958ca
      
https://github.com/qemu/qemu/commit/54ff67679a5961db3feb4ba3bba1b640695958ca
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/loongarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/loongarch64: Support softmmu unaligned accesses

Test the final byte of an unaligned access.
Use BSTRINS.D to clear the range of bits, rather than AND.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: acde61c3204eeb8dcaa42f43c034871bf196c8f5
      
https://github.com/qemu/qemu/commit/acde61c3204eeb8dcaa42f43c034871bf196c8f5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/riscv/tcg-target.c.inc

  Log Message:
  -----------
  tcg/riscv: Support softmmu unaligned accesses

The system is required to emulate unaligned accesses, even if the
hardware does not support it.  The resulting trap may or may not
be more efficient than the qemu slow path.  There are linux kernel
patches in flight to allow userspace to query hardware support;
we can re-evaluate whether to enable this by default after that.

In the meantime, softmmu now matches useronly, where we already
assumed that unaligned accesses are supported.

Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c2be4f7947f878e0c81ccda33d47ae4a3667aa2c
      
https://github.com/qemu/qemu/commit/c2be4f7947f878e0c81ccda33d47ae4a3667aa2c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc
    M tcg/aarch64/tcg-target.h
    M tcg/arm/tcg-target.c.inc
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.c.inc
    M tcg/i386/tcg-target.h
    M tcg/loongarch64/tcg-target.c.inc
    M tcg/loongarch64/tcg-target.h
    M tcg/mips/tcg-target.c.inc
    M tcg/mips/tcg-target.h
    M tcg/ppc/tcg-target.c.inc
    M tcg/ppc/tcg-target.h
    M tcg/riscv/tcg-target.c.inc
    M tcg/riscv/tcg-target.h
    M tcg/s390x/tcg-target.c.inc
    M tcg/s390x/tcg-target.h
    M tcg/sparc64/tcg-target.c.inc
    M tcg/sparc64/tcg-target.h
    M tcg/tcg-internal.h
    M tcg/tcg-op.c
    M tcg/tci/tcg-target.c.inc
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  tcg: Introduce tcg_target_has_memory_bswap

Replace the unparameterized TCG_TARGET_HAS_MEMORY_BSWAP macro
with a function with a memop argument.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 57a054390213e442e19c9b06ec9541adacd295af
      
https://github.com/qemu/qemu/commit/57a054390213e442e19c9b06ec9541adacd295af
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M docs/devel/tcg-ops.rst
    M include/tcg/tcg-opc.h
    M tcg/aarch64/tcg-target.h
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.h
    M tcg/loongarch64/tcg-target.h
    M tcg/mips/tcg-target.h
    M tcg/ppc/tcg-target.h
    M tcg/riscv/tcg-target.h
    M tcg/s390x/tcg-target.h
    M tcg/sparc64/tcg-target.h
    M tcg/tcg-op.c
    M tcg/tcg.c
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  tcg: Add INDEX_op_qemu_{ld,st}_i128

Add opcodes for backend support for 128-bit memory operations.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 3b6afb436a6473b78ee0c69246fe14ba861ccdb2
      
https://github.com/qemu/qemu/commit/3b6afb436a6473b78ee0c69246fe14ba861ccdb2
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Introduce tcg_out_movext3

With x86_64 as host, we do not have any temporaries with which to
resolve cycles, but we do have xchg.   As a side bonus, the set of
graphs that can be made with 3 nodes and all nodes conflicting is
small: two.  We can solve the cycle with a single temp.

This is required for x86_64 to handle stores of i128: 1 address
register and 2 data registers.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5ecb2e49d8ac0781b159f0cef2d873121bd24c71
      
https://github.com/qemu/qemu/commit/5ecb2e49d8ac0781b159f0cef2d873121bd24c71
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Merge tcg_out_helper_load_regs into caller

Now that tcg_out_helper_load_regs is not recursive, we can
merge it into its only caller, tcg_out_helper_load_slots.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 0a0f084ba186e530160d7f93856121f9fc6ea891
      
https://github.com/qemu/qemu/commit/0a0f084ba186e530160d7f93856121f9fc6ea891
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Support TCG_TYPE_I128 in tcg_out_{ld,st}_helper_{args,ret}

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: d13388a325697044e7f7375e1a3f1ad6c81b59b7
      
https://github.com/qemu/qemu/commit/d13388a325697044e7f7375e1a3f1ad6c81b59b7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Introduce atom_and_align_for_opc

Examine MemOp for atomicity and alignment, adjusting alignment
as required to implement atomicity on the host.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8401655a11ce1ce9eba9bb6306f4ea15bd34cf8f
      
https://github.com/qemu/qemu/commit/8401655a11ce1ce9eba9bb6306f4ea15bd34cf8f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Use atom_and_align_for_opc

No change to the ultimate load/store routines yet, so some atomicity
conditions not yet honored, but plumbs the change to alignment through
the relevant functions.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 85676de3dc02d4835e1a9e20335b39e01522e360
      
https://github.com/qemu/qemu/commit/85676de3dc02d4835e1a9e20335b39e01522e360
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: f681a12d5138606cf4c551dcb2da002d06c620f8
      
https://github.com/qemu/qemu/commit/f681a12d5138606cf4c551dcb2da002d06c620f8
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/arm/tcg-target.c.inc

  Log Message:
  -----------
  tcg/arm: Use atom_and_align_for_opc

No change to the ultimate load/store routines yet, so some atomicity
conditions not yet honored, but plumbs the change to alignment through
the relevant functions.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9e52f6db411a6ddb3d54c3fa03336136da21d947
      
https://github.com/qemu/qemu/commit/9e52f6db411a6ddb3d54c3fa03336136da21d947
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/loongarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/loongarch64: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 2a5129075d389df9cb205b1428b0fb351571393a
      
https://github.com/qemu/qemu/commit/2a5129075d389df9cb205b1428b0fb351571393a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/mips/tcg-target.c.inc

  Log Message:
  -----------
  tcg/mips: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: e5433c19ab253fadabd11196c85973169ce62fe3
      
https://github.com/qemu/qemu/commit/e5433c19ab253fadabd11196c85973169ce62fe3
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/ppc/tcg-target.c.inc

  Log Message:
  -----------
  tcg/ppc: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5e0cf10686890ac40d988048fbb81f4c05337570
      
https://github.com/qemu/qemu/commit/5e0cf10686890ac40d988048fbb81f4c05337570
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/riscv/tcg-target.c.inc

  Log Message:
  -----------
  tcg/riscv: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c519be4fa4968442df46067140f7b8aad014fa3a
      
https://github.com/qemu/qemu/commit/c519be4fa4968442df46067140f7b8aad014fa3a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/s390x/tcg-target.c.inc

  Log Message:
  -----------
  tcg/s390x: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5db1106902262f70f491dfa6a67542cdfaec463d
      
https://github.com/qemu/qemu/commit/5db1106902262f70f491dfa6a67542cdfaec463d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/sparc64: Use atom_and_align_for_opc

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8f04e298c248b3b8b80aa5b813a9df24989b1b4e
      
https://github.com/qemu/qemu/commit/8f04e298c248b3b8b80aa5b813a9df24989b1b4e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Honor 64-bit atomicity in 32-bit mode

Use the fpu to perform 64-bit loads and stores.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: caa2e59138458cc0997915740d817bb069fcb8b0
      
https://github.com/qemu/qemu/commit/caa2e59138458cc0997915740d817bb069fcb8b0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc
    M tcg/i386/tcg-target.h

  Log Message:
  -----------
  tcg/i386: Support 128-bit load/store with have_atomic16

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4c5dfb05dc2e9cabc8e75d70617149ac8aeb293a
      
https://github.com/qemu/qemu/commit/4c5dfb05dc2e9cabc8e75d70617149ac8aeb293a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Rename temporaries

We will need to allocate a second general-purpose temporary.
Rename the existing temps to add a distinguishing number.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 0e941361bf3b05a1ffb77a47d0321a4f0a6e05f4
      
https://github.com/qemu/qemu/commit/0e941361bf3b05a1ffb77a47d0321a4f0a6e05f4
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target-con-set.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/aarch64/tcg-target.h

  Log Message:
  -----------
  tcg/aarch64: Support 128-bit load/store

Use LDXP+STXP when LSE2 is not present and 16-byte atomicity is required,
and LDP/STP otherwise.  This requires allocating a second general-purpose
temporary, as Rs cannot overlap Rn in STXP.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 896471bb176e1a2adfc82d2aba2a5d700ff152c9
      
https://github.com/qemu/qemu/commit/896471bb176e1a2adfc82d2aba2a5d700ff152c9
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/ppc/tcg-target-con-set.h
    M tcg/ppc/tcg-target-con-str.h
    M tcg/ppc/tcg-target.c.inc
    M tcg/ppc/tcg-target.h

  Log Message:
  -----------
  tcg/ppc: Support 128-bit load/store

Use LQ/STQ with ISA v2.07, and 16-byte atomicity is required.
Note that these instructions do not require 16-byte alignment.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ddd63a320c28bcf979929cb71a9bdb0770cfc6ab
      
https://github.com/qemu/qemu/commit/ddd63a320c28bcf979929cb71a9bdb0770cfc6ab
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/s390x/tcg-target-con-set.h
    M tcg/s390x/tcg-target.c.inc
    M tcg/s390x/tcg-target.h

  Log Message:
  -----------
  tcg/s390x: Support 128-bit load/store

Use LPQ/STPQ when 16-byte atomicity is required.
Note that these instructions require 16-byte alignment.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 308ba8aa42f20ee5128fa4c565e4a2f03c16c3f5
      
https://github.com/qemu/qemu/commit/308ba8aa42f20ee5128fa4c565e4a2f03c16c3f5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/meson.build
    A tcg/tcg-op-ldst.c
    M tcg/tcg-op.c

  Log Message:
  -----------
  tcg: Split out memory ops to tcg-op-ldst.c

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 430f5deaf644edb424399516bc993872e2e181d3
      
https://github.com/qemu/qemu/commit/430f5deaf644edb424399516bc993872e2e181d3
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/translate-all.c
    M include/tcg/tcg-op.h
    M include/tcg/tcg-opc.h
    M include/tcg/tcg.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Widen gen_insn_data to uint64_t

We already pass uint64_t to restore_state_to_opc; this changes all
of the other uses from insn_start through the encoding to decoding.

Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9740ece736da789e298e9427345aab0840f623d8
      
https://github.com/qemu/qemu/commit/9740ece736da789e298e9427345aab0840f623d8
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    M accel/tcg/user-exec.c
    M include/tcg/tcg-ldst.h
    M tcg/tcg.c

  Log Message:
  -----------
  accel/tcg: Widen tcg-ldst.h addresses to uint64_t

Always pass the target address as uint64_t.
Adjust tcg_out_{ld,st}_helper_args to match.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: f391bdc2603efea2d11a5799e63b5e59b95eda6e
      
https://github.com/qemu/qemu/commit/f391bdc2603efea2d11a5799e63b5e59b95eda6e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/cputlb.c
    M accel/tcg/tcg-runtime.h
    M accel/tcg/user-exec.c
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  tcg: Widen helper_{ld,st}_i128 addresses to uint64_t

Always pass the target address as uint64_t.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 26ca714484e8cb828f1b9353ef3a13ab95323c5f
      
https://github.com/qemu/qemu/commit/26ca714484e8cb828f1b9353ef3a13ab95323c5f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/atomic_common.c.inc
    M accel/tcg/tcg-runtime.h
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  tcg: Widen helper_atomic_* addresses to uint64_t

Always pass the target address as uint64_t.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 17f8242c268723141f8b4e430e65c4173762f8fb
      
https://github.com/qemu/qemu/commit/17f8242c268723141f8b4e430e65c4173762f8fb
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Widen tcg_gen_code pc_start argument to uint64_t

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8b1e132daac91b47f127216ea75fc9e8fc0544e8
      
https://github.com/qemu/qemu/commit/8b1e132daac91b47f127216ea75fc9e8fc0544e8
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/plugin-gen.c

  Log Message:
  -----------
  accel/tcg: Merge gen_mem_wrapped with plugin_gen_empty_mem_callback

As gen_mem_wrapped is only used in plugin_gen_empty_mem_callback,
we can avoid the curiosity of union mem_gen_fn by inlining it.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c0e46de672474cef8983220c3dcd6f5da1e28bd6
      
https://github.com/qemu/qemu/commit/c0e46de672474cef8983220c3dcd6f5da1e28bd6
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/plugin-gen.c

  Log Message:
  -----------
  accel/tcg: Merge do_gen_mem_cb into caller

As do_gen_mem_cb is called once, merge it into gen_empty_mem_cb.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 1935c329de541bf9dc2e8a94b5960f2d08b1466e
      
https://github.com/qemu/qemu/commit/1935c329de541bf9dc2e8a94b5960f2d08b1466e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  tcg: Reduce copies for plugin_gen_mem_callbacks

We only need to make copies for loads, when the destination
overlaps the address.  For now, only eliminate the copy for
stores and 128-bit loads.

Rename plugin_prep_mem_callbacks to plugin_maybe_preserve_addr,
returning NULL if no copy is made.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: f0a986749253083d7971797fe04af88bf37be29a
      
https://github.com/qemu/qemu/commit/f0a986749253083d7971797fe04af88bf37be29a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/plugin-gen.c
    M include/exec/plugin-gen.h
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  accel/tcg: Widen plugin_gen_empty_mem_callback to i64

Since we do this inside gen_empty_mem_cb anyway, let's
do this earlier inside tcg expansion.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: a7133db2d3f524c2fce64199cdd6b50e7043c0e0
      
https://github.com/qemu/qemu/commit/a7133db2d3f524c2fce64199cdd6b50e7043c0e0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/translate-all.c
    M include/tcg/tcg.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Add addr_type to TCGContext

This will enable replacement of TARGET_LONG_BITS within tcg/.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ab524867c4de3a28cbb3ddbe02148ec952242eac
      
https://github.com/qemu/qemu/commit/ab524867c4de3a28cbb3ddbe02148ec952242eac
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M include/tcg/tcg-op.h
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  tcg: Remove TCGv from tcg_gen_qemu_{ld,st}_*

Expand from TCGv to TCGTemp inline in the translators,
and validate that the size matches tcg_ctx->addr_type.
These inlines will eventually be seen only by target-specific code.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: fecb1a71ac6a0548fee6c43bbf5d5beacd5d515c
      
https://github.com/qemu/qemu/commit/fecb1a71ac6a0548fee6c43bbf5d5beacd5d515c
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M include/tcg/tcg-op.h
    M tcg/tcg-op-ldst.c

  Log Message:
  -----------
  tcg: Remove TCGv from tcg_gen_atomic_*

Expand from TCGv to TCGTemp inline in the translators,
and validate that the size matches tcg_ctx->addr_type.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 5ecdde4b32264236bb906d6c992d08257f365697
      
https://github.com/qemu/qemu/commit/5ecdde4b32264236bb906d6c992d08257f365697
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M include/tcg/tcg-opc.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/arm/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/loongarch64/tcg-target.c.inc
    M tcg/mips/tcg-target.c.inc
    M tcg/optimize.c
    M tcg/ppc/tcg-target.c.inc
    M tcg/riscv/tcg-target.c.inc
    M tcg/s390x/tcg-target.c.inc
    M tcg/sparc64/tcg-target.c.inc
    M tcg/tcg-op-ldst.c
    M tcg/tcg.c
    M tcg/tci.c
    M tcg/tci/tcg-target.c.inc

  Log Message:
  -----------
  tcg: Split INDEX_op_qemu_{ld,st}* for guest address size

For 32-bit hosts, we cannot simply rely on TCGContext.addr_bits,
as we need one or two host registers to represent the guest address.

Create the new opcodes and update all users.  Since we have not
yet eliminated TARGET_LONG_BITS, only one of the two opcodes will
ever be used, so we can get away with treating them the same in
the backends.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 759fbfb3aeed75c88c686f4f6e8936175aeceda2
      
https://github.com/qemu/qemu/commit/759fbfb3aeed75c88c686f4f6e8936175aeceda2
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tci.c
    M tcg/tci/tcg-target.c.inc

  Log Message:
  -----------
  tcg/tci: Elimnate TARGET_LONG_BITS, target_ulong

We now have the address size as part of the opcode, so
we no longer need to test TARGET_LONG_BITS.  We can use
uint64_t for target_ulong, as passed into load/store helpers.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: fb9d7df8b73caee6a42e7d7706d34f57542ae35d
      
https://github.com/qemu/qemu/commit/fb9d7df8b73caee6a42e7d7706d34f57542ae35d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.h

  Log Message:
  -----------
  tcg/i386: Always enable TCG_TARGET_HAS_extr[lh]_i64_i32

Keep all 32-bit values zero extended in the register, not solely when
addresses are 32 bits.  This eliminates a dependency on TARGET_LONG_BITS.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: df6d59421aa747ec7aca574d835102b9a3ec18bf
      
https://github.com/qemu/qemu/commit/df6d59421aa747ec7aca574d835102b9a3ec18bf
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Conditionalize tcg_out_extu_i32_i64

Since TCG_TYPE_I32 values are kept zero-extended in registers, via
omission of the REXW bit, we need not extend if the register matches.
This is already relied upon by qemu_{ld,st}.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c7a1d674a7497444ffdefa40f038098e08dc3b74
      
https://github.com/qemu/qemu/commit/c7a1d674a7497444ffdefa40f038098e08dc3b74
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Adjust type of tlb_mask

Because of its use on tgen_arithi, this value must be a signed
32-bit quantity, as that is what may be encoded in the insn.
The truncation of the value to unsigned for 32-bit guests is
done via the REX bit via 'trexw'.

Removes the only uses of target_ulong from this tcg backend.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c5b29069a8f41fdfd2704db8ed57dd32b1afa731
      
https://github.com/qemu/qemu/commit/c5b29069a8f41fdfd2704db8ed57dd32b1afa731
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Remove TARGET_LONG_BITS, TCG_TYPE_TL

All uses can be infered from the INDEX_op_qemu_*_a{32,64}_* opcode
being used.  Add a field into TCGLabelQemuLdst to record the usage.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8042c2f719ee2d60a20604f741480ab15564dc7d
      
https://github.com/qemu/qemu/commit/8042c2f719ee2d60a20604f741480ab15564dc7d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/arm/tcg-target.c.inc

  Log Message:
  -----------
  tcg/arm: Remove TARGET_LONG_BITS

All uses can be infered from the INDEX_op_qemu_*_a{32,64}_*
opcode being used.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4a3c71bff9ccd1d64b61d861afdabb2e1d566582
      
https://github.com/qemu/qemu/commit/4a3c71bff9ccd1d64b61d861afdabb2e1d566582
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Remove USE_GUEST_BASE

Eliminate the test vs TARGET_LONG_BITS by considering this
predicate to be always true, and simplify accordingly.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: bb52a8e8a9f0ebf3b46aa2280354226277492fb4
      
https://github.com/qemu/qemu/commit/bb52a8e8a9f0ebf3b46aa2280354226277492fb4
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL

All uses replaced with TCGContext.addr_type.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: a037ce86745ab57de6e9c1af4fc4f70f24ff3fa5
      
https://github.com/qemu/qemu/commit/a037ce86745ab57de6e9c1af4fc4f70f24ff3fa5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/loongarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/loongarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL

All uses replaced with TCGContext.addr_type.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: f214d88c73cf5766de5b3c06554d377befd4f7c5
      
https://github.com/qemu/qemu/commit/f214d88c73cf5766de5b3c06554d377befd4f7c5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/mips/tcg-target.c.inc

  Log Message:
  -----------
  tcg/mips: Remove TARGET_LONG_BITS, TCG_TYPE_TL

All uses replaced with TCGContext.addr_type.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 2856edf3131bb154a8af3c4c74ac34c4e0e195f1
      
https://github.com/qemu/qemu/commit/2856edf3131bb154a8af3c4c74ac34c4e0e195f1
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Remove TARGET_LONG_BITS, TCG_TYPE_TL

All uses replaced with TCGContext.addr_type.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9573fcd7bb6ec68220202beeb03c658ad0f183fa
      
https://github.com/qemu/qemu/commit/9573fcd7bb6ec68220202beeb03c658ad0f183fa
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/translate-all.c
    M include/tcg/tcg.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/arm/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/loongarch64/tcg-target.c.inc
    M tcg/mips/tcg-target.c.inc
    M tcg/ppc/tcg-target.c.inc
    M tcg/riscv/tcg-target.c.inc
    M tcg/s390x/tcg-target.c.inc
    M tcg/sparc64/tcg-target.c.inc

  Log Message:
  -----------
  tcg: Add page_bits and page_mask to TCGContext

Disconnect guest page size from TCG compilation.
While this could be done via exec/target_page.h, we want to cache
the value across multiple memory access operations, so we might
as well initialize this early.

The changes within tcg/ are entirely mechanical:

    sed -i s/TARGET_PAGE_BITS/s->page_bits/g
    sed -i s/TARGET_PAGE_MASK/s->page_mask/g

Reviewed-by: Anton Johansson <anjo@rev.ng>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9e61a77d8198e7579639e58c91306a0c14e756d7
      
https://github.com/qemu/qemu/commit/9e61a77d8198e7579639e58c91306a0c14e756d7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/translate-all.c
    M include/tcg/tcg.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg: Add tlb_dyn_max_bits to TCGContext

Disconnect guest tlb parameters from TCG compilation.

Reviewed-by: Anton Johansson <anjo@rev.ng>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ee95d036bf4bfa10be65325a287bf3d0e8b2a0e6
      
https://github.com/qemu/qemu/commit/ee95d036bf4bfa10be65325a287bf3d0e8b2a0e6
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M include/exec/cpu-all.h
    A include/exec/user/guest-base.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Split out exec/user/guest-base.h

TCG will need this declaration, without all of the other
bits that come with cpu-all.h.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ee58e412fde9ad7015230754e66cec2bc324aab0
      
https://github.com/qemu/qemu/commit/ee58e412fde9ad7015230754e66cec2bc324aab0
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M accel/tcg/atomic_common.c.inc
    M accel/tcg/cputlb.c
    A accel/tcg/ldst_atomicity.c.inc
    M accel/tcg/plugin-gen.c
    M accel/tcg/tcg-runtime.h
    M accel/tcg/translate-all.c
    M accel/tcg/user-exec.c
    M docs/devel/loads-stores.rst
    M docs/devel/tcg-ops.rst
    M include/exec/cpu-all.h
    M include/exec/memop.h
    M include/exec/plugin-gen.h
    A include/exec/user/guest-base.h
    M include/qemu/cpuid.h
    M include/tcg/tcg-ldst.h
    M include/tcg/tcg-op.h
    M include/tcg/tcg-opc.h
    M include/tcg/tcg.h
    M meson.build
    M tcg/aarch64/tcg-target-con-set.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/aarch64/tcg-target.h
    M tcg/arm/tcg-target-con-set.h
    M tcg/arm/tcg-target-con-str.h
    M tcg/arm/tcg-target.c.inc
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.c.inc
    M tcg/i386/tcg-target.h
    M tcg/loongarch64/tcg-target.c.inc
    M tcg/loongarch64/tcg-target.h
    M tcg/meson.build
    M tcg/mips/tcg-target.c.inc
    M tcg/mips/tcg-target.h
    M tcg/optimize.c
    M tcg/ppc/tcg-target-con-set.h
    M tcg/ppc/tcg-target-con-str.h
    M tcg/ppc/tcg-target.c.inc
    M tcg/ppc/tcg-target.h
    M tcg/riscv/tcg-target.c.inc
    M tcg/riscv/tcg-target.h
    M tcg/s390x/tcg-target-con-set.h
    M tcg/s390x/tcg-target.c.inc
    M tcg/s390x/tcg-target.h
    M tcg/sparc64/tcg-target-con-set.h
    M tcg/sparc64/tcg-target-con-str.h
    M tcg/sparc64/tcg-target.c.inc
    M tcg/sparc64/tcg-target.h
    M tcg/tcg-internal.h
    A tcg/tcg-op-ldst.c
    M tcg/tcg-op.c
    M tcg/tcg.c
    M tcg/tci.c
    M tcg/tci/tcg-target.c.inc
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  Merge tag 'pull-tcg-20230516' of https://gitlab.com/rth7680/qemu into staging

tcg/i386: Fix tcg_out_addi_ptr for win64
tcg: Implement atomicity for TCGv_i128
tcg: First quarter of cleanups for building tcg once

# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmRj3DcdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV9ZNQf/aajyN/mId/kL+HtW
# kX1bClBv47wJIfXFdj7HGUkxiB7fkfwFuu0AzwBzY3Hcc5SQWdemH6SlmlR9h8N1
# /bhXYR122pIaJFx6crzJiwb8/WjyvcEYQcx29ATaw70Rfmls5abGC6IcA2lc/g/u
# 7f1zrXKio7xWJi/Lhp8qQlxRBdGUBQFdJ4oK6pFW/ksInB3O1Bkb3s6f6vmuklGY
# +kzegOv19qaRSSCDR6Liq95OtJdYTl32LpDW7yi7efeKXLAnyy4YqI3BTUfrunfW
# iQKqRqsE9CMBak4m6QO7R/FAdPMxTdE6Cw7ScQmmSxe2GhrET5kL8R9oYgzEJIeu
# kdOjjw==
# =I6o3
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 16 May 2023 12:40:39 PM PDT
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" 
[ultimate]

* tag 'pull-tcg-20230516' of https://gitlab.com/rth7680/qemu: (80 commits)
  tcg: Split out exec/user/guest-base.h
  tcg: Add tlb_dyn_max_bits to TCGContext
  tcg: Add page_bits and page_mask to TCGContext
  tcg: Remove TARGET_LONG_BITS, TCG_TYPE_TL
  tcg/mips: Remove TARGET_LONG_BITS, TCG_TYPE_TL
  tcg/loongarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
  tcg/aarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
  tcg/aarch64: Remove USE_GUEST_BASE
  tcg/arm: Remove TARGET_LONG_BITS
  tcg/i386: Remove TARGET_LONG_BITS, TCG_TYPE_TL
  tcg/i386: Adjust type of tlb_mask
  tcg/i386: Conditionalize tcg_out_extu_i32_i64
  tcg/i386: Always enable TCG_TARGET_HAS_extr[lh]_i64_i32
  tcg/tci: Elimnate TARGET_LONG_BITS, target_ulong
  tcg: Split INDEX_op_qemu_{ld,st}* for guest address size
  tcg: Remove TCGv from tcg_gen_atomic_*
  tcg: Remove TCGv from tcg_gen_qemu_{ld,st}_*
  tcg: Add addr_type to TCGContext
  accel/tcg: Widen plugin_gen_empty_mem_callback to i64
  tcg: Reduce copies for plugin_gen_mem_callbacks
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/f9d58e0ca53b...ee58e412fde9



reply via email to

[Prev in Thread] Current Thread [Next in Thread]