[PATCH 00/50] Remove 32-bit host support

Richard Henderson posted 50 patches 1 day, 19 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260108053018.626690-1-richard.henderson@linaro.org
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Riku Voipio <riku.voipio@iki.fi>, Stefan Hajnoczi <stefanha@redhat.com>, Fam Zheng <fam@euphon.net>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, "Daniel P. Berrangé" <berrange@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, David Hildenbrand <david@kernel.org>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Peter Xu <peterx@redhat.com>, Li Zhijian <lizhijian@fujitsu.com>, Hyman Huang <yong.huang@smartx.com>, Peter Maydell <peter.maydell@linaro.org>, Helge Deller <deller@gmx.de>, Zhao Liu <zhao1.liu@intel.com>, Eduardo Habkost <eduardo@habkost.net>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Ilya Leoshkevich <iii@linux.ibm.com>, WANG Xuerui <git@xen0n.name>, Stefan Weil <sw@weilnetz.de>
accel/tcg/atomic_template.h                   |    4 +-
accel/tcg/tcg-runtime.h                       |   23 -
bsd-user/syscall_defs.h                       |    2 +-
host/include/i386/host/cpuinfo.h              |   41 -
host/include/i386/host/crypto/aes-round.h     |  152 -
host/include/i386/host/crypto/clmul.h         |   29 -
host/include/ppc/host/cpuinfo.h               |   30 -
host/include/ppc/host/crypto/aes-round.h      |  182 -
host/include/ppc64/host/cpuinfo.h             |   31 +-
host/include/ppc64/host/crypto/aes-round.h    |  183 +-
.../include/{riscv => riscv64}/host/cpuinfo.h |    0
host/include/x86_64/host/cpuinfo.h            |   42 +-
host/include/x86_64/host/crypto/aes-round.h   |  153 +-
host/include/x86_64/host/crypto/clmul.h       |   30 +-
include/accel/tcg/cpu-ldst-common.h           |    9 -
include/block/block_int-common.h              |    3 +-
include/qemu/atomic.h                         |   39 +-
include/qemu/cacheflush.h                     |    2 +-
include/qemu/osdep.h                          |    6 +-
include/qemu/processor.h                      |    2 +-
include/qemu/stats64.h                        |  199 -
include/qemu/timer.h                          |    9 -
include/system/cpu-timers-internal.h          |    2 +-
include/tcg/helper-info.h                     |    2 +-
.../tcg/target-reg-bits.h                     |    8 +-
include/tcg/tcg-op.h                          |    9 +-
include/tcg/tcg-opc.h                         |    9 +-
include/tcg/tcg.h                             |   29 +-
linux-user/include/host/arm/host-signal.h     |   43 -
linux-user/include/host/i386/host-signal.h    |   38 -
.../host/{mips => mips64}/host-signal.h       |    0
linux-user/include/host/ppc/host-signal.h     |   39 -
.../host/{riscv => riscv64}/host-signal.h     |    0
migration/migration-stats.h                   |   36 +-
tcg/aarch64/tcg-target-reg-bits.h             |   12 -
tcg/arm/tcg-target-con-set.h                  |   47 -
tcg/arm/tcg-target-con-str.h                  |   26 -
tcg/arm/tcg-target-has.h                      |   73 -
tcg/arm/tcg-target-mo.h                       |   13 -
tcg/arm/tcg-target-reg-bits.h                 |   12 -
tcg/arm/tcg-target.h                          |   73 -
tcg/i386/tcg-target-reg-bits.h                |   16 -
tcg/loongarch64/tcg-target-reg-bits.h         |   21 -
tcg/mips/tcg-target-reg-bits.h                |   16 -
tcg/{mips => mips64}/tcg-target-con-set.h     |    0
tcg/{mips => mips64}/tcg-target-con-str.h     |    0
tcg/{mips => mips64}/tcg-target-has.h         |    0
tcg/{mips => mips64}/tcg-target-mo.h          |    0
tcg/{mips => mips64}/tcg-target.h             |    0
tcg/{ppc => ppc64}/tcg-target-con-set.h       |    0
tcg/{ppc => ppc64}/tcg-target-con-str.h       |    0
tcg/{ppc => ppc64}/tcg-target-has.h           |    0
tcg/{ppc => ppc64}/tcg-target-mo.h            |    0
tcg/{ppc => ppc64}/tcg-target.h               |    0
tcg/riscv/tcg-target-reg-bits.h               |   19 -
tcg/{riscv => riscv64}/tcg-target-con-set.h   |    0
tcg/{riscv => riscv64}/tcg-target-con-str.h   |    0
tcg/{riscv => riscv64}/tcg-target-has.h       |    0
tcg/{riscv => riscv64}/tcg-target-mo.h        |    0
tcg/{riscv => riscv64}/tcg-target.h           |    0
tcg/s390x/tcg-target-reg-bits.h               |   17 -
tcg/sparc64/tcg-target-reg-bits.h             |   12 -
tcg/tcg-has.h                                 |    5 -
tcg/tcg-internal.h                            |   21 +-
tcg/tci/tcg-target-has.h                      |    2 -
tcg/tci/tcg-target-mo.h                       |    2 +-
tcg/tci/tcg-target-reg-bits.h                 |   18 -
tcg/{i386 => x86_64}/tcg-target-con-set.h     |    0
tcg/{i386 => x86_64}/tcg-target-con-str.h     |    0
tcg/{i386 => x86_64}/tcg-target-has.h         |    8 +-
tcg/{i386 => x86_64}/tcg-target-mo.h          |    0
tcg/{i386 => x86_64}/tcg-target.h             |   13 +-
accel/kvm/kvm-all.c                           |    2 +-
accel/qtest/qtest.c                           |    4 +-
accel/tcg/cputlb.c                            |   37 +-
accel/tcg/icount-common.c                     |   25 +-
accel/tcg/tcg-runtime.c                       |   15 -
accel/tcg/translator.c                        |    4 +-
accel/tcg/user-exec.c                         |    2 -
block/io.c                                    |   10 +-
block/qapi.c                                  |    2 +-
disas/disas-host.c                            |    9 -
hw/display/xenfb.c                            |   10 +-
hw/virtio/virtio-mem.c                        |    2 +-
linux-user/arm/cpu_loop.c                     |   19 +-
linux-user/hppa/cpu_loop.c                    |   14 +-
linux-user/mmap.c                             |    2 +-
linux-user/syscall.c                          |    9 -
migration/cpu-throttle.c                      |    4 +-
migration/migration-stats.c                   |   16 +-
migration/migration.c                         |   24 +-
migration/multifd-nocomp.c                    |    2 +-
migration/multifd-zero-page.c                 |    4 +-
migration/multifd.c                           |   12 +-
migration/qemu-file.c                         |    6 +-
migration/ram.c                               |   30 +-
migration/rdma.c                              |    8 +-
system/dirtylimit.c                           |    2 +-
target/arm/ptw.c                              |   18 +-
target/arm/tcg/gengvec.c                      |   32 +-
target/arm/tcg/gengvec64.c                    |    4 +-
target/arm/tcg/translate-sve.c                |   26 +-
target/hppa/op_helper.c                       |    6 +-
target/i386/cpu.c                             |   10 -
target/m68k/op_helper.c                       |    7 +-
target/s390x/tcg/mem_helper.c                 |    7 -
tcg/optimize.c                                |  322 --
tcg/region.c                                  |   12 -
tcg/tcg-op-gvec.c                             |  113 +-
tcg/tcg-op-ldst.c                             |  130 +-
tcg/tcg-op-vec.c                              |   14 +-
tcg/tcg-op.c                                  |  765 +---
tcg/tcg.c                                     |  376 +-
tcg/tci.c                                     |   73 +-
tests/unit/test-rcu-list.c                    |   17 +-
util/atomic64.c                               |   85 -
util/cacheflush.c                             |    4 +-
util/qsp.c                                    |   12 +-
util/stats64.c                                |  148 -
.gitlab-ci.d/buildtest-template.yml           |   27 -
.gitlab-ci.d/buildtest.yml                    |    9 -
.gitlab-ci.d/container-cross.yml              |   17 -
.gitlab-ci.d/containers.yml                   |    3 -
.gitlab-ci.d/crossbuilds.yml                  |   45 -
MAINTAINERS                                   |   16 +-
accel/tcg/atomic_common.c.inc                 |   32 -
accel/tcg/ldst_atomicity.c.inc                |  149 +-
common-user/host/arm/safe-syscall.inc.S       |  108 -
common-user/host/i386/safe-syscall.inc.S      |  127 -
.../host/{mips => mips64}/safe-syscall.inc.S  |    0
common-user/host/ppc/safe-syscall.inc.S       |  107 -
.../{riscv => riscv64}/safe-syscall.inc.S     |    0
configure                                     |   47 +-
docs/about/deprecated.rst                     |   29 -
docs/about/removed-features.rst               |    6 +
docs/devel/tcg-ops.rst                        |   32 +-
host/include/i386/host/bufferiszero.c.inc     |  125 -
host/include/x86_64/host/bufferiszero.c.inc   |  121 +-
meson.build                                   |  101 +-
target/i386/tcg/emit.c.inc                    |   39 +-
target/riscv/insn_trans/trans_rvv.c.inc       |   56 +-
tcg/arm/tcg-target-opc.h.inc                  |   16 -
tcg/arm/tcg-target.c.inc                      | 3489 -----------------
tcg/loongarch64/tcg-target.c.inc              |    4 +-
tcg/{mips => mips64}/tcg-target-opc.h.inc     |    0
tcg/{mips => mips64}/tcg-target.c.inc         |    0
tcg/{ppc => ppc64}/tcg-target-opc.h.inc       |    0
tcg/{ppc => ppc64}/tcg-target.c.inc           |    2 +-
tcg/{riscv => riscv64}/tcg-target-opc.h.inc   |    0
tcg/{riscv => riscv64}/tcg-target.c.inc       |    4 +-
tcg/tci/tcg-target.c.inc                      |   84 +-
tcg/{i386 => x86_64}/tcg-target-opc.h.inc     |    0
tcg/{i386 => x86_64}/tcg-target.c.inc         |  552 +--
util/meson.build                              |    4 -
154 files changed, 1158 insertions(+), 8460 deletions(-)
delete mode 100644 host/include/i386/host/cpuinfo.h
delete mode 100644 host/include/i386/host/crypto/aes-round.h
delete mode 100644 host/include/i386/host/crypto/clmul.h
delete mode 100644 host/include/ppc/host/cpuinfo.h
delete mode 100644 host/include/ppc/host/crypto/aes-round.h
rename host/include/{riscv => riscv64}/host/cpuinfo.h (100%)
delete mode 100644 include/qemu/stats64.h
rename tcg/ppc/tcg-target-reg-bits.h => include/tcg/target-reg-bits.h (71%)
delete mode 100644 linux-user/include/host/arm/host-signal.h
delete mode 100644 linux-user/include/host/i386/host-signal.h
rename linux-user/include/host/{mips => mips64}/host-signal.h (100%)
delete mode 100644 linux-user/include/host/ppc/host-signal.h
rename linux-user/include/host/{riscv => riscv64}/host-signal.h (100%)
delete mode 100644 tcg/aarch64/tcg-target-reg-bits.h
delete mode 100644 tcg/arm/tcg-target-con-set.h
delete mode 100644 tcg/arm/tcg-target-con-str.h
delete mode 100644 tcg/arm/tcg-target-has.h
delete mode 100644 tcg/arm/tcg-target-mo.h
delete mode 100644 tcg/arm/tcg-target-reg-bits.h
delete mode 100644 tcg/arm/tcg-target.h
delete mode 100644 tcg/i386/tcg-target-reg-bits.h
delete mode 100644 tcg/loongarch64/tcg-target-reg-bits.h
delete mode 100644 tcg/mips/tcg-target-reg-bits.h
rename tcg/{mips => mips64}/tcg-target-con-set.h (100%)
rename tcg/{mips => mips64}/tcg-target-con-str.h (100%)
rename tcg/{mips => mips64}/tcg-target-has.h (100%)
rename tcg/{mips => mips64}/tcg-target-mo.h (100%)
rename tcg/{mips => mips64}/tcg-target.h (100%)
rename tcg/{ppc => ppc64}/tcg-target-con-set.h (100%)
rename tcg/{ppc => ppc64}/tcg-target-con-str.h (100%)
rename tcg/{ppc => ppc64}/tcg-target-has.h (100%)
rename tcg/{ppc => ppc64}/tcg-target-mo.h (100%)
rename tcg/{ppc => ppc64}/tcg-target.h (100%)
delete mode 100644 tcg/riscv/tcg-target-reg-bits.h
rename tcg/{riscv => riscv64}/tcg-target-con-set.h (100%)
rename tcg/{riscv => riscv64}/tcg-target-con-str.h (100%)
rename tcg/{riscv => riscv64}/tcg-target-has.h (100%)
rename tcg/{riscv => riscv64}/tcg-target-mo.h (100%)
rename tcg/{riscv => riscv64}/tcg-target.h (100%)
delete mode 100644 tcg/s390x/tcg-target-reg-bits.h
delete mode 100644 tcg/sparc64/tcg-target-reg-bits.h
delete mode 100644 tcg/tci/tcg-target-reg-bits.h
rename tcg/{i386 => x86_64}/tcg-target-con-set.h (100%)
rename tcg/{i386 => x86_64}/tcg-target-con-str.h (100%)
rename tcg/{i386 => x86_64}/tcg-target-has.h (92%)
rename tcg/{i386 => x86_64}/tcg-target-mo.h (100%)
rename tcg/{i386 => x86_64}/tcg-target.h (86%)
delete mode 100644 util/atomic64.c
delete mode 100644 util/stats64.c
delete mode 100644 common-user/host/arm/safe-syscall.inc.S
delete mode 100644 common-user/host/i386/safe-syscall.inc.S
rename common-user/host/{mips => mips64}/safe-syscall.inc.S (100%)
delete mode 100644 common-user/host/ppc/safe-syscall.inc.S
rename common-user/host/{riscv => riscv64}/safe-syscall.inc.S (100%)
delete mode 100644 host/include/i386/host/bufferiszero.c.inc
delete mode 100644 tcg/arm/tcg-target-opc.h.inc
delete mode 100644 tcg/arm/tcg-target.c.inc
rename tcg/{mips => mips64}/tcg-target-opc.h.inc (100%)
rename tcg/{mips => mips64}/tcg-target.c.inc (100%)
rename tcg/{ppc => ppc64}/tcg-target-opc.h.inc (100%)
rename tcg/{ppc => ppc64}/tcg-target.c.inc (99%)
rename tcg/{riscv => riscv64}/tcg-target-opc.h.inc (100%)
rename tcg/{riscv => riscv64}/tcg-target.c.inc (99%)
rename tcg/{i386 => x86_64}/tcg-target-opc.h.inc (100%)
rename tcg/{i386 => x86_64}/tcg-target.c.inc (89%)
[PATCH 00/50] Remove 32-bit host support
Posted by Richard Henderson 1 day, 19 hours ago
Long has it been threatened, but here we are at last.

32-bit host support was deprecated with the 10.0 release, and so
with the 11.0 release we may remove it.  Phil already did some
cleanup in 10.2, removing support for mips32 and ppc32 within tcg.

With a net -7302 in the diffstat, I think the motivations are clear,
even if half of that was tcg/arm/.


r~


Richard Henderson (50):
  gitlab: Remove 32-bit host testing
  meson: Reject 32-bit hosts
  *: Remove arm host support
  bsd-user: Fix __i386__ test for TARGET_HAS_STAT_TIME_T_EXT
  *: Remove __i386__ tests
  *: Remove i386 host support
  host/include/x86_64/bufferiszero: Remove no SSE2 fallback
  meson: Remove cpu == x86 tests
  *: Remove ppc host support
  tcg/i386: Remove TCG_TARGET_REG_BITS tests
  tcg/x86_64: Rename from i386
  tcg/ppc64: Rename from ppc
  meson: Drop host_arch rename for mips64
  meson: Drop host_arch rename for riscv64
  meson: Remove cpu == riscv32 tests
  tcg: Make TCG_TARGET_REG_BITS common
  tcg: Replace TCG_TARGET_REG_BITS / 8
  *: Drop TCG_TARGET_REG_BITS test for prefer_i64
  tcg: Remove INDEX_op_brcond2_i32
  tcg: Remove INDEX_op_setcond2_i32
  tcg: Remove INDEX_op_dup2_vec
  tcg/tci: Drop TCG_TARGET_REG_BITS tests
  tcg/tci: Remove glue TCG_TARGET_REG_BITS renames
  tcg: Drop TCG_TARGET_REG_BITS test in region.c
  tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op.c
  tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op-gvec.c
  tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op-ldst.c
  tcg: Drop TCG_TARGET_REG_BITS tests in tcg.c
  tcg: Drop TCG_TARGET_REG_BITS tests in tcg-internal.h
  tcg: Drop TCG_TARGET_REG_BITS test in tcg-has.h
  include/tcg: Drop TCG_TARGET_REG_BITS tests
  target/i386/tcg: Drop TCG_TARGET_REG_BITS test
  target/riscv: Drop TCG_TARGET_REG_BITS test
  accel/tcg/runtime: Remove 64-bit shift helpers
  accel/tcg/runtime: Remove helper_nonatomic_cmpxchgo
  tcg: Unconditionally define atomic64 helpers
  accel/tcg: Drop CONFIG_ATOMIC64 checks from ldst_atomicicy.c.inc
  accel/tcg: Drop CONFIG_ATOMIC64 test from translator.c
  linux-user/arm: Drop CONFIG_ATOMIC64 test
  linux-user/hppa: Drop CONFIG_ATOMIC64 test
  target/arm: Drop CONFIG_ATOMIC64 tests
  target/hppa: Drop CONFIG_ATOMIC64 test
  target/m68k: Drop CONFIG_ATOMIC64 tests
  target/s390x: Drop CONFIG_ATOMIC64 tests
  migration: Drop use of Stat64
  block: Drop use of Stat64
  util: Remove stats64
  include/qemu/atomic: Drop qatomic_{read,set}_[iu]64
  meson: Remove CONFIG_ATOMIC64
  include/qemu/atomic: Drop aligned_{u}int64_t

 accel/tcg/atomic_template.h                   |    4 +-
 accel/tcg/tcg-runtime.h                       |   23 -
 bsd-user/syscall_defs.h                       |    2 +-
 host/include/i386/host/cpuinfo.h              |   41 -
 host/include/i386/host/crypto/aes-round.h     |  152 -
 host/include/i386/host/crypto/clmul.h         |   29 -
 host/include/ppc/host/cpuinfo.h               |   30 -
 host/include/ppc/host/crypto/aes-round.h      |  182 -
 host/include/ppc64/host/cpuinfo.h             |   31 +-
 host/include/ppc64/host/crypto/aes-round.h    |  183 +-
 .../include/{riscv => riscv64}/host/cpuinfo.h |    0
 host/include/x86_64/host/cpuinfo.h            |   42 +-
 host/include/x86_64/host/crypto/aes-round.h   |  153 +-
 host/include/x86_64/host/crypto/clmul.h       |   30 +-
 include/accel/tcg/cpu-ldst-common.h           |    9 -
 include/block/block_int-common.h              |    3 +-
 include/qemu/atomic.h                         |   39 +-
 include/qemu/cacheflush.h                     |    2 +-
 include/qemu/osdep.h                          |    6 +-
 include/qemu/processor.h                      |    2 +-
 include/qemu/stats64.h                        |  199 -
 include/qemu/timer.h                          |    9 -
 include/system/cpu-timers-internal.h          |    2 +-
 include/tcg/helper-info.h                     |    2 +-
 .../tcg/target-reg-bits.h                     |    8 +-
 include/tcg/tcg-op.h                          |    9 +-
 include/tcg/tcg-opc.h                         |    9 +-
 include/tcg/tcg.h                             |   29 +-
 linux-user/include/host/arm/host-signal.h     |   43 -
 linux-user/include/host/i386/host-signal.h    |   38 -
 .../host/{mips => mips64}/host-signal.h       |    0
 linux-user/include/host/ppc/host-signal.h     |   39 -
 .../host/{riscv => riscv64}/host-signal.h     |    0
 migration/migration-stats.h                   |   36 +-
 tcg/aarch64/tcg-target-reg-bits.h             |   12 -
 tcg/arm/tcg-target-con-set.h                  |   47 -
 tcg/arm/tcg-target-con-str.h                  |   26 -
 tcg/arm/tcg-target-has.h                      |   73 -
 tcg/arm/tcg-target-mo.h                       |   13 -
 tcg/arm/tcg-target-reg-bits.h                 |   12 -
 tcg/arm/tcg-target.h                          |   73 -
 tcg/i386/tcg-target-reg-bits.h                |   16 -
 tcg/loongarch64/tcg-target-reg-bits.h         |   21 -
 tcg/mips/tcg-target-reg-bits.h                |   16 -
 tcg/{mips => mips64}/tcg-target-con-set.h     |    0
 tcg/{mips => mips64}/tcg-target-con-str.h     |    0
 tcg/{mips => mips64}/tcg-target-has.h         |    0
 tcg/{mips => mips64}/tcg-target-mo.h          |    0
 tcg/{mips => mips64}/tcg-target.h             |    0
 tcg/{ppc => ppc64}/tcg-target-con-set.h       |    0
 tcg/{ppc => ppc64}/tcg-target-con-str.h       |    0
 tcg/{ppc => ppc64}/tcg-target-has.h           |    0
 tcg/{ppc => ppc64}/tcg-target-mo.h            |    0
 tcg/{ppc => ppc64}/tcg-target.h               |    0
 tcg/riscv/tcg-target-reg-bits.h               |   19 -
 tcg/{riscv => riscv64}/tcg-target-con-set.h   |    0
 tcg/{riscv => riscv64}/tcg-target-con-str.h   |    0
 tcg/{riscv => riscv64}/tcg-target-has.h       |    0
 tcg/{riscv => riscv64}/tcg-target-mo.h        |    0
 tcg/{riscv => riscv64}/tcg-target.h           |    0
 tcg/s390x/tcg-target-reg-bits.h               |   17 -
 tcg/sparc64/tcg-target-reg-bits.h             |   12 -
 tcg/tcg-has.h                                 |    5 -
 tcg/tcg-internal.h                            |   21 +-
 tcg/tci/tcg-target-has.h                      |    2 -
 tcg/tci/tcg-target-mo.h                       |    2 +-
 tcg/tci/tcg-target-reg-bits.h                 |   18 -
 tcg/{i386 => x86_64}/tcg-target-con-set.h     |    0
 tcg/{i386 => x86_64}/tcg-target-con-str.h     |    0
 tcg/{i386 => x86_64}/tcg-target-has.h         |    8 +-
 tcg/{i386 => x86_64}/tcg-target-mo.h          |    0
 tcg/{i386 => x86_64}/tcg-target.h             |   13 +-
 accel/kvm/kvm-all.c                           |    2 +-
 accel/qtest/qtest.c                           |    4 +-
 accel/tcg/cputlb.c                            |   37 +-
 accel/tcg/icount-common.c                     |   25 +-
 accel/tcg/tcg-runtime.c                       |   15 -
 accel/tcg/translator.c                        |    4 +-
 accel/tcg/user-exec.c                         |    2 -
 block/io.c                                    |   10 +-
 block/qapi.c                                  |    2 +-
 disas/disas-host.c                            |    9 -
 hw/display/xenfb.c                            |   10 +-
 hw/virtio/virtio-mem.c                        |    2 +-
 linux-user/arm/cpu_loop.c                     |   19 +-
 linux-user/hppa/cpu_loop.c                    |   14 +-
 linux-user/mmap.c                             |    2 +-
 linux-user/syscall.c                          |    9 -
 migration/cpu-throttle.c                      |    4 +-
 migration/migration-stats.c                   |   16 +-
 migration/migration.c                         |   24 +-
 migration/multifd-nocomp.c                    |    2 +-
 migration/multifd-zero-page.c                 |    4 +-
 migration/multifd.c                           |   12 +-
 migration/qemu-file.c                         |    6 +-
 migration/ram.c                               |   30 +-
 migration/rdma.c                              |    8 +-
 system/dirtylimit.c                           |    2 +-
 target/arm/ptw.c                              |   18 +-
 target/arm/tcg/gengvec.c                      |   32 +-
 target/arm/tcg/gengvec64.c                    |    4 +-
 target/arm/tcg/translate-sve.c                |   26 +-
 target/hppa/op_helper.c                       |    6 +-
 target/i386/cpu.c                             |   10 -
 target/m68k/op_helper.c                       |    7 +-
 target/s390x/tcg/mem_helper.c                 |    7 -
 tcg/optimize.c                                |  322 --
 tcg/region.c                                  |   12 -
 tcg/tcg-op-gvec.c                             |  113 +-
 tcg/tcg-op-ldst.c                             |  130 +-
 tcg/tcg-op-vec.c                              |   14 +-
 tcg/tcg-op.c                                  |  765 +---
 tcg/tcg.c                                     |  376 +-
 tcg/tci.c                                     |   73 +-
 tests/unit/test-rcu-list.c                    |   17 +-
 util/atomic64.c                               |   85 -
 util/cacheflush.c                             |    4 +-
 util/qsp.c                                    |   12 +-
 util/stats64.c                                |  148 -
 .gitlab-ci.d/buildtest-template.yml           |   27 -
 .gitlab-ci.d/buildtest.yml                    |    9 -
 .gitlab-ci.d/container-cross.yml              |   17 -
 .gitlab-ci.d/containers.yml                   |    3 -
 .gitlab-ci.d/crossbuilds.yml                  |   45 -
 MAINTAINERS                                   |   16 +-
 accel/tcg/atomic_common.c.inc                 |   32 -
 accel/tcg/ldst_atomicity.c.inc                |  149 +-
 common-user/host/arm/safe-syscall.inc.S       |  108 -
 common-user/host/i386/safe-syscall.inc.S      |  127 -
 .../host/{mips => mips64}/safe-syscall.inc.S  |    0
 common-user/host/ppc/safe-syscall.inc.S       |  107 -
 .../{riscv => riscv64}/safe-syscall.inc.S     |    0
 configure                                     |   47 +-
 docs/about/deprecated.rst                     |   29 -
 docs/about/removed-features.rst               |    6 +
 docs/devel/tcg-ops.rst                        |   32 +-
 host/include/i386/host/bufferiszero.c.inc     |  125 -
 host/include/x86_64/host/bufferiszero.c.inc   |  121 +-
 meson.build                                   |  101 +-
 target/i386/tcg/emit.c.inc                    |   39 +-
 target/riscv/insn_trans/trans_rvv.c.inc       |   56 +-
 tcg/arm/tcg-target-opc.h.inc                  |   16 -
 tcg/arm/tcg-target.c.inc                      | 3489 -----------------
 tcg/loongarch64/tcg-target.c.inc              |    4 +-
 tcg/{mips => mips64}/tcg-target-opc.h.inc     |    0
 tcg/{mips => mips64}/tcg-target.c.inc         |    0
 tcg/{ppc => ppc64}/tcg-target-opc.h.inc       |    0
 tcg/{ppc => ppc64}/tcg-target.c.inc           |    2 +-
 tcg/{riscv => riscv64}/tcg-target-opc.h.inc   |    0
 tcg/{riscv => riscv64}/tcg-target.c.inc       |    4 +-
 tcg/tci/tcg-target.c.inc                      |   84 +-
 tcg/{i386 => x86_64}/tcg-target-opc.h.inc     |    0
 tcg/{i386 => x86_64}/tcg-target.c.inc         |  552 +--
 util/meson.build                              |    4 -
 154 files changed, 1158 insertions(+), 8460 deletions(-)
 delete mode 100644 host/include/i386/host/cpuinfo.h
 delete mode 100644 host/include/i386/host/crypto/aes-round.h
 delete mode 100644 host/include/i386/host/crypto/clmul.h
 delete mode 100644 host/include/ppc/host/cpuinfo.h
 delete mode 100644 host/include/ppc/host/crypto/aes-round.h
 rename host/include/{riscv => riscv64}/host/cpuinfo.h (100%)
 delete mode 100644 include/qemu/stats64.h
 rename tcg/ppc/tcg-target-reg-bits.h => include/tcg/target-reg-bits.h (71%)
 delete mode 100644 linux-user/include/host/arm/host-signal.h
 delete mode 100644 linux-user/include/host/i386/host-signal.h
 rename linux-user/include/host/{mips => mips64}/host-signal.h (100%)
 delete mode 100644 linux-user/include/host/ppc/host-signal.h
 rename linux-user/include/host/{riscv => riscv64}/host-signal.h (100%)
 delete mode 100644 tcg/aarch64/tcg-target-reg-bits.h
 delete mode 100644 tcg/arm/tcg-target-con-set.h
 delete mode 100644 tcg/arm/tcg-target-con-str.h
 delete mode 100644 tcg/arm/tcg-target-has.h
 delete mode 100644 tcg/arm/tcg-target-mo.h
 delete mode 100644 tcg/arm/tcg-target-reg-bits.h
 delete mode 100644 tcg/arm/tcg-target.h
 delete mode 100644 tcg/i386/tcg-target-reg-bits.h
 delete mode 100644 tcg/loongarch64/tcg-target-reg-bits.h
 delete mode 100644 tcg/mips/tcg-target-reg-bits.h
 rename tcg/{mips => mips64}/tcg-target-con-set.h (100%)
 rename tcg/{mips => mips64}/tcg-target-con-str.h (100%)
 rename tcg/{mips => mips64}/tcg-target-has.h (100%)
 rename tcg/{mips => mips64}/tcg-target-mo.h (100%)
 rename tcg/{mips => mips64}/tcg-target.h (100%)
 rename tcg/{ppc => ppc64}/tcg-target-con-set.h (100%)
 rename tcg/{ppc => ppc64}/tcg-target-con-str.h (100%)
 rename tcg/{ppc => ppc64}/tcg-target-has.h (100%)
 rename tcg/{ppc => ppc64}/tcg-target-mo.h (100%)
 rename tcg/{ppc => ppc64}/tcg-target.h (100%)
 delete mode 100644 tcg/riscv/tcg-target-reg-bits.h
 rename tcg/{riscv => riscv64}/tcg-target-con-set.h (100%)
 rename tcg/{riscv => riscv64}/tcg-target-con-str.h (100%)
 rename tcg/{riscv => riscv64}/tcg-target-has.h (100%)
 rename tcg/{riscv => riscv64}/tcg-target-mo.h (100%)
 rename tcg/{riscv => riscv64}/tcg-target.h (100%)
 delete mode 100644 tcg/s390x/tcg-target-reg-bits.h
 delete mode 100644 tcg/sparc64/tcg-target-reg-bits.h
 delete mode 100644 tcg/tci/tcg-target-reg-bits.h
 rename tcg/{i386 => x86_64}/tcg-target-con-set.h (100%)
 rename tcg/{i386 => x86_64}/tcg-target-con-str.h (100%)
 rename tcg/{i386 => x86_64}/tcg-target-has.h (92%)
 rename tcg/{i386 => x86_64}/tcg-target-mo.h (100%)
 rename tcg/{i386 => x86_64}/tcg-target.h (86%)
 delete mode 100644 util/atomic64.c
 delete mode 100644 util/stats64.c
 delete mode 100644 common-user/host/arm/safe-syscall.inc.S
 delete mode 100644 common-user/host/i386/safe-syscall.inc.S
 rename common-user/host/{mips => mips64}/safe-syscall.inc.S (100%)
 delete mode 100644 common-user/host/ppc/safe-syscall.inc.S
 rename common-user/host/{riscv => riscv64}/safe-syscall.inc.S (100%)
 delete mode 100644 host/include/i386/host/bufferiszero.c.inc
 delete mode 100644 tcg/arm/tcg-target-opc.h.inc
 delete mode 100644 tcg/arm/tcg-target.c.inc
 rename tcg/{mips => mips64}/tcg-target-opc.h.inc (100%)
 rename tcg/{mips => mips64}/tcg-target.c.inc (100%)
 rename tcg/{ppc => ppc64}/tcg-target-opc.h.inc (100%)
 rename tcg/{ppc => ppc64}/tcg-target.c.inc (99%)
 rename tcg/{riscv => riscv64}/tcg-target-opc.h.inc (100%)
 rename tcg/{riscv => riscv64}/tcg-target.c.inc (99%)
 rename tcg/{i386 => x86_64}/tcg-target-opc.h.inc (100%)
 rename tcg/{i386 => x86_64}/tcg-target.c.inc (89%)

-- 
2.43.0
Re: [PATCH 00/50] Remove 32-bit host support
Posted by Paolo Bonzini 1 day, 14 hours ago
On 1/8/26 06:29, Richard Henderson wrote:
> Long has it been threatened, but here we are at last.
> 
> 32-bit host support was deprecated with the 10.0 release, and so
> with the 11.0 release we may remove it.  Phil already did some
> cleanup in 10.2, removing support for mips32 and ppc32 within tcg.

What is the situation with wasm?  If I understand correctly, wasm32 
really is a 64-bit target from the TCG point of view, because it has 
64-bit registers internally (similar to x32).

If so, why remove testing it from CI?

Paolo

> With a net -7302 in the diffstat, I think the motivations are clear,
> even if half of that was tcg/arm/.
> 
> 
> r~
> 
> 
> Richard Henderson (50):
>    gitlab: Remove 32-bit host testing
>    meson: Reject 32-bit hosts
>    *: Remove arm host support
>    bsd-user: Fix __i386__ test for TARGET_HAS_STAT_TIME_T_EXT
>    *: Remove __i386__ tests
>    *: Remove i386 host support
>    host/include/x86_64/bufferiszero: Remove no SSE2 fallback
>    meson: Remove cpu == x86 tests
>    *: Remove ppc host support
>    tcg/i386: Remove TCG_TARGET_REG_BITS tests
>    tcg/x86_64: Rename from i386
>    tcg/ppc64: Rename from ppc
>    meson: Drop host_arch rename for mips64
>    meson: Drop host_arch rename for riscv64
>    meson: Remove cpu == riscv32 tests
>    tcg: Make TCG_TARGET_REG_BITS common
>    tcg: Replace TCG_TARGET_REG_BITS / 8
>    *: Drop TCG_TARGET_REG_BITS test for prefer_i64
>    tcg: Remove INDEX_op_brcond2_i32
>    tcg: Remove INDEX_op_setcond2_i32
>    tcg: Remove INDEX_op_dup2_vec
>    tcg/tci: Drop TCG_TARGET_REG_BITS tests
>    tcg/tci: Remove glue TCG_TARGET_REG_BITS renames
>    tcg: Drop TCG_TARGET_REG_BITS test in region.c
>    tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op.c
>    tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op-gvec.c
>    tcg: Drop TCG_TARGET_REG_BITS tests in tcg-op-ldst.c
>    tcg: Drop TCG_TARGET_REG_BITS tests in tcg.c
>    tcg: Drop TCG_TARGET_REG_BITS tests in tcg-internal.h
>    tcg: Drop TCG_TARGET_REG_BITS test in tcg-has.h
>    include/tcg: Drop TCG_TARGET_REG_BITS tests
>    target/i386/tcg: Drop TCG_TARGET_REG_BITS test
>    target/riscv: Drop TCG_TARGET_REG_BITS test
>    accel/tcg/runtime: Remove 64-bit shift helpers
>    accel/tcg/runtime: Remove helper_nonatomic_cmpxchgo
>    tcg: Unconditionally define atomic64 helpers
>    accel/tcg: Drop CONFIG_ATOMIC64 checks from ldst_atomicicy.c.inc
>    accel/tcg: Drop CONFIG_ATOMIC64 test from translator.c
>    linux-user/arm: Drop CONFIG_ATOMIC64 test
>    linux-user/hppa: Drop CONFIG_ATOMIC64 test
>    target/arm: Drop CONFIG_ATOMIC64 tests
>    target/hppa: Drop CONFIG_ATOMIC64 test
>    target/m68k: Drop CONFIG_ATOMIC64 tests
>    target/s390x: Drop CONFIG_ATOMIC64 tests
>    migration: Drop use of Stat64
>    block: Drop use of Stat64
>    util: Remove stats64
>    include/qemu/atomic: Drop qatomic_{read,set}_[iu]64
>    meson: Remove CONFIG_ATOMIC64
>    include/qemu/atomic: Drop aligned_{u}int64_t
> 
>   accel/tcg/atomic_template.h                   |    4 +-
>   accel/tcg/tcg-runtime.h                       |   23 -
>   bsd-user/syscall_defs.h                       |    2 +-
>   host/include/i386/host/cpuinfo.h              |   41 -
>   host/include/i386/host/crypto/aes-round.h     |  152 -
>   host/include/i386/host/crypto/clmul.h         |   29 -
>   host/include/ppc/host/cpuinfo.h               |   30 -
>   host/include/ppc/host/crypto/aes-round.h      |  182 -
>   host/include/ppc64/host/cpuinfo.h             |   31 +-
>   host/include/ppc64/host/crypto/aes-round.h    |  183 +-
>   .../include/{riscv => riscv64}/host/cpuinfo.h |    0
>   host/include/x86_64/host/cpuinfo.h            |   42 +-
>   host/include/x86_64/host/crypto/aes-round.h   |  153 +-
>   host/include/x86_64/host/crypto/clmul.h       |   30 +-
>   include/accel/tcg/cpu-ldst-common.h           |    9 -
>   include/block/block_int-common.h              |    3 +-
>   include/qemu/atomic.h                         |   39 +-
>   include/qemu/cacheflush.h                     |    2 +-
>   include/qemu/osdep.h                          |    6 +-
>   include/qemu/processor.h                      |    2 +-
>   include/qemu/stats64.h                        |  199 -
>   include/qemu/timer.h                          |    9 -
>   include/system/cpu-timers-internal.h          |    2 +-
>   include/tcg/helper-info.h                     |    2 +-
>   .../tcg/target-reg-bits.h                     |    8 +-
>   include/tcg/tcg-op.h                          |    9 +-
>   include/tcg/tcg-opc.h                         |    9 +-
>   include/tcg/tcg.h                             |   29 +-
>   linux-user/include/host/arm/host-signal.h     |   43 -
>   linux-user/include/host/i386/host-signal.h    |   38 -
>   .../host/{mips => mips64}/host-signal.h       |    0
>   linux-user/include/host/ppc/host-signal.h     |   39 -
>   .../host/{riscv => riscv64}/host-signal.h     |    0
>   migration/migration-stats.h                   |   36 +-
>   tcg/aarch64/tcg-target-reg-bits.h             |   12 -
>   tcg/arm/tcg-target-con-set.h                  |   47 -
>   tcg/arm/tcg-target-con-str.h                  |   26 -
>   tcg/arm/tcg-target-has.h                      |   73 -
>   tcg/arm/tcg-target-mo.h                       |   13 -
>   tcg/arm/tcg-target-reg-bits.h                 |   12 -
>   tcg/arm/tcg-target.h                          |   73 -
>   tcg/i386/tcg-target-reg-bits.h                |   16 -
>   tcg/loongarch64/tcg-target-reg-bits.h         |   21 -
>   tcg/mips/tcg-target-reg-bits.h                |   16 -
>   tcg/{mips => mips64}/tcg-target-con-set.h     |    0
>   tcg/{mips => mips64}/tcg-target-con-str.h     |    0
>   tcg/{mips => mips64}/tcg-target-has.h         |    0
>   tcg/{mips => mips64}/tcg-target-mo.h          |    0
>   tcg/{mips => mips64}/tcg-target.h             |    0
>   tcg/{ppc => ppc64}/tcg-target-con-set.h       |    0
>   tcg/{ppc => ppc64}/tcg-target-con-str.h       |    0
>   tcg/{ppc => ppc64}/tcg-target-has.h           |    0
>   tcg/{ppc => ppc64}/tcg-target-mo.h            |    0
>   tcg/{ppc => ppc64}/tcg-target.h               |    0
>   tcg/riscv/tcg-target-reg-bits.h               |   19 -
>   tcg/{riscv => riscv64}/tcg-target-con-set.h   |    0
>   tcg/{riscv => riscv64}/tcg-target-con-str.h   |    0
>   tcg/{riscv => riscv64}/tcg-target-has.h       |    0
>   tcg/{riscv => riscv64}/tcg-target-mo.h        |    0
>   tcg/{riscv => riscv64}/tcg-target.h           |    0
>   tcg/s390x/tcg-target-reg-bits.h               |   17 -
>   tcg/sparc64/tcg-target-reg-bits.h             |   12 -
>   tcg/tcg-has.h                                 |    5 -
>   tcg/tcg-internal.h                            |   21 +-
>   tcg/tci/tcg-target-has.h                      |    2 -
>   tcg/tci/tcg-target-mo.h                       |    2 +-
>   tcg/tci/tcg-target-reg-bits.h                 |   18 -
>   tcg/{i386 => x86_64}/tcg-target-con-set.h     |    0
>   tcg/{i386 => x86_64}/tcg-target-con-str.h     |    0
>   tcg/{i386 => x86_64}/tcg-target-has.h         |    8 +-
>   tcg/{i386 => x86_64}/tcg-target-mo.h          |    0
>   tcg/{i386 => x86_64}/tcg-target.h             |   13 +-
>   accel/kvm/kvm-all.c                           |    2 +-
>   accel/qtest/qtest.c                           |    4 +-
>   accel/tcg/cputlb.c                            |   37 +-
>   accel/tcg/icount-common.c                     |   25 +-
>   accel/tcg/tcg-runtime.c                       |   15 -
>   accel/tcg/translator.c                        |    4 +-
>   accel/tcg/user-exec.c                         |    2 -
>   block/io.c                                    |   10 +-
>   block/qapi.c                                  |    2 +-
>   disas/disas-host.c                            |    9 -
>   hw/display/xenfb.c                            |   10 +-
>   hw/virtio/virtio-mem.c                        |    2 +-
>   linux-user/arm/cpu_loop.c                     |   19 +-
>   linux-user/hppa/cpu_loop.c                    |   14 +-
>   linux-user/mmap.c                             |    2 +-
>   linux-user/syscall.c                          |    9 -
>   migration/cpu-throttle.c                      |    4 +-
>   migration/migration-stats.c                   |   16 +-
>   migration/migration.c                         |   24 +-
>   migration/multifd-nocomp.c                    |    2 +-
>   migration/multifd-zero-page.c                 |    4 +-
>   migration/multifd.c                           |   12 +-
>   migration/qemu-file.c                         |    6 +-
>   migration/ram.c                               |   30 +-
>   migration/rdma.c                              |    8 +-
>   system/dirtylimit.c                           |    2 +-
>   target/arm/ptw.c                              |   18 +-
>   target/arm/tcg/gengvec.c                      |   32 +-
>   target/arm/tcg/gengvec64.c                    |    4 +-
>   target/arm/tcg/translate-sve.c                |   26 +-
>   target/hppa/op_helper.c                       |    6 +-
>   target/i386/cpu.c                             |   10 -
>   target/m68k/op_helper.c                       |    7 +-
>   target/s390x/tcg/mem_helper.c                 |    7 -
>   tcg/optimize.c                                |  322 --
>   tcg/region.c                                  |   12 -
>   tcg/tcg-op-gvec.c                             |  113 +-
>   tcg/tcg-op-ldst.c                             |  130 +-
>   tcg/tcg-op-vec.c                              |   14 +-
>   tcg/tcg-op.c                                  |  765 +---
>   tcg/tcg.c                                     |  376 +-
>   tcg/tci.c                                     |   73 +-
>   tests/unit/test-rcu-list.c                    |   17 +-
>   util/atomic64.c                               |   85 -
>   util/cacheflush.c                             |    4 +-
>   util/qsp.c                                    |   12 +-
>   util/stats64.c                                |  148 -
>   .gitlab-ci.d/buildtest-template.yml           |   27 -
>   .gitlab-ci.d/buildtest.yml                    |    9 -
>   .gitlab-ci.d/container-cross.yml              |   17 -
>   .gitlab-ci.d/containers.yml                   |    3 -
>   .gitlab-ci.d/crossbuilds.yml                  |   45 -
>   MAINTAINERS                                   |   16 +-
>   accel/tcg/atomic_common.c.inc                 |   32 -
>   accel/tcg/ldst_atomicity.c.inc                |  149 +-
>   common-user/host/arm/safe-syscall.inc.S       |  108 -
>   common-user/host/i386/safe-syscall.inc.S      |  127 -
>   .../host/{mips => mips64}/safe-syscall.inc.S  |    0
>   common-user/host/ppc/safe-syscall.inc.S       |  107 -
>   .../{riscv => riscv64}/safe-syscall.inc.S     |    0
>   configure                                     |   47 +-
>   docs/about/deprecated.rst                     |   29 -
>   docs/about/removed-features.rst               |    6 +
>   docs/devel/tcg-ops.rst                        |   32 +-
>   host/include/i386/host/bufferiszero.c.inc     |  125 -
>   host/include/x86_64/host/bufferiszero.c.inc   |  121 +-
>   meson.build                                   |  101 +-
>   target/i386/tcg/emit.c.inc                    |   39 +-
>   target/riscv/insn_trans/trans_rvv.c.inc       |   56 +-
>   tcg/arm/tcg-target-opc.h.inc                  |   16 -
>   tcg/arm/tcg-target.c.inc                      | 3489 -----------------
>   tcg/loongarch64/tcg-target.c.inc              |    4 +-
>   tcg/{mips => mips64}/tcg-target-opc.h.inc     |    0
>   tcg/{mips => mips64}/tcg-target.c.inc         |    0
>   tcg/{ppc => ppc64}/tcg-target-opc.h.inc       |    0
>   tcg/{ppc => ppc64}/tcg-target.c.inc           |    2 +-
>   tcg/{riscv => riscv64}/tcg-target-opc.h.inc   |    0
>   tcg/{riscv => riscv64}/tcg-target.c.inc       |    4 +-
>   tcg/tci/tcg-target.c.inc                      |   84 +-
>   tcg/{i386 => x86_64}/tcg-target-opc.h.inc     |    0
>   tcg/{i386 => x86_64}/tcg-target.c.inc         |  552 +--
>   util/meson.build                              |    4 -
>   154 files changed, 1158 insertions(+), 8460 deletions(-)
>   delete mode 100644 host/include/i386/host/cpuinfo.h
>   delete mode 100644 host/include/i386/host/crypto/aes-round.h
>   delete mode 100644 host/include/i386/host/crypto/clmul.h
>   delete mode 100644 host/include/ppc/host/cpuinfo.h
>   delete mode 100644 host/include/ppc/host/crypto/aes-round.h
>   rename host/include/{riscv => riscv64}/host/cpuinfo.h (100%)
>   delete mode 100644 include/qemu/stats64.h
>   rename tcg/ppc/tcg-target-reg-bits.h => include/tcg/target-reg-bits.h (71%)
>   delete mode 100644 linux-user/include/host/arm/host-signal.h
>   delete mode 100644 linux-user/include/host/i386/host-signal.h
>   rename linux-user/include/host/{mips => mips64}/host-signal.h (100%)
>   delete mode 100644 linux-user/include/host/ppc/host-signal.h
>   rename linux-user/include/host/{riscv => riscv64}/host-signal.h (100%)
>   delete mode 100644 tcg/aarch64/tcg-target-reg-bits.h
>   delete mode 100644 tcg/arm/tcg-target-con-set.h
>   delete mode 100644 tcg/arm/tcg-target-con-str.h
>   delete mode 100644 tcg/arm/tcg-target-has.h
>   delete mode 100644 tcg/arm/tcg-target-mo.h
>   delete mode 100644 tcg/arm/tcg-target-reg-bits.h
>   delete mode 100644 tcg/arm/tcg-target.h
>   delete mode 100644 tcg/i386/tcg-target-reg-bits.h
>   delete mode 100644 tcg/loongarch64/tcg-target-reg-bits.h
>   delete mode 100644 tcg/mips/tcg-target-reg-bits.h
>   rename tcg/{mips => mips64}/tcg-target-con-set.h (100%)
>   rename tcg/{mips => mips64}/tcg-target-con-str.h (100%)
>   rename tcg/{mips => mips64}/tcg-target-has.h (100%)
>   rename tcg/{mips => mips64}/tcg-target-mo.h (100%)
>   rename tcg/{mips => mips64}/tcg-target.h (100%)
>   rename tcg/{ppc => ppc64}/tcg-target-con-set.h (100%)
>   rename tcg/{ppc => ppc64}/tcg-target-con-str.h (100%)
>   rename tcg/{ppc => ppc64}/tcg-target-has.h (100%)
>   rename tcg/{ppc => ppc64}/tcg-target-mo.h (100%)
>   rename tcg/{ppc => ppc64}/tcg-target.h (100%)
>   delete mode 100644 tcg/riscv/tcg-target-reg-bits.h
>   rename tcg/{riscv => riscv64}/tcg-target-con-set.h (100%)
>   rename tcg/{riscv => riscv64}/tcg-target-con-str.h (100%)
>   rename tcg/{riscv => riscv64}/tcg-target-has.h (100%)
>   rename tcg/{riscv => riscv64}/tcg-target-mo.h (100%)
>   rename tcg/{riscv => riscv64}/tcg-target.h (100%)
>   delete mode 100644 tcg/s390x/tcg-target-reg-bits.h
>   delete mode 100644 tcg/sparc64/tcg-target-reg-bits.h
>   delete mode 100644 tcg/tci/tcg-target-reg-bits.h
>   rename tcg/{i386 => x86_64}/tcg-target-con-set.h (100%)
>   rename tcg/{i386 => x86_64}/tcg-target-con-str.h (100%)
>   rename tcg/{i386 => x86_64}/tcg-target-has.h (92%)
>   rename tcg/{i386 => x86_64}/tcg-target-mo.h (100%)
>   rename tcg/{i386 => x86_64}/tcg-target.h (86%)
>   delete mode 100644 util/atomic64.c
>   delete mode 100644 util/stats64.c
>   delete mode 100644 common-user/host/arm/safe-syscall.inc.S
>   delete mode 100644 common-user/host/i386/safe-syscall.inc.S
>   rename common-user/host/{mips => mips64}/safe-syscall.inc.S (100%)
>   delete mode 100644 common-user/host/ppc/safe-syscall.inc.S
>   rename common-user/host/{riscv => riscv64}/safe-syscall.inc.S (100%)
>   delete mode 100644 host/include/i386/host/bufferiszero.c.inc
>   delete mode 100644 tcg/arm/tcg-target-opc.h.inc
>   delete mode 100644 tcg/arm/tcg-target.c.inc
>   rename tcg/{mips => mips64}/tcg-target-opc.h.inc (100%)
>   rename tcg/{mips => mips64}/tcg-target.c.inc (100%)
>   rename tcg/{ppc => ppc64}/tcg-target-opc.h.inc (100%)
>   rename tcg/{ppc => ppc64}/tcg-target.c.inc (99%)
>   rename tcg/{riscv => riscv64}/tcg-target-opc.h.inc (100%)
>   rename tcg/{riscv => riscv64}/tcg-target.c.inc (99%)
>   rename tcg/{i386 => x86_64}/tcg-target-opc.h.inc (100%)
>   rename tcg/{i386 => x86_64}/tcg-target.c.inc (89%)
>
Re: [PATCH 00/50] Remove 32-bit host support
Posted by Kohei Tokunaga 14 hours ago
Hi Paolo,

 > > Long has it been threatened, but here we are at last.
 > >
 > > 32-bit host support was deprecated with the 10.0 release, and so
 > > with the 11.0 release we may remove it.  Phil already did some
 > > cleanup in 10.2, removing support for mips32 and ppc32 within tcg.
 >
 > What is the situation with wasm?  If I understand correctly, wasm32
 > really is a 64-bit target from the TCG point of view, because it has
 > 64-bit registers internally (similar to x32).

Currently, wasm32 compilation is treated as a 32bit target with support only
for 32bit guests. 64bit guest support would require additional patches to
TCG, as discussed in the earlier attempt.
(e.g. 
https://patchew.org/QEMU/cover.1747922170.git.ktokunaga.mail@gmail.com/).

As an alternative approach, there is a patch set for 64bit compilation
support using wasm64 target, which doesn't require the additional TCG
patches. QEMU can still run on wasm32 engines (e.g. Safari) by relying on
the Emscripten's feature to lower the output binary to wasm32.

https://patchew.org/QEMU/cover.1767886100.git.ktokunaga.mail@gmail.com/

I've rebased this series on the recent tree yesterday.

Regards,
Kohei



Re: [PATCH 00/50] Remove 32-bit host support
Posted by Paolo Bonzini 14 hours ago
On 1/9/26 11:34, Kohei Tokunaga wrote:
> Hi Paolo,
> 
>  > > Long has it been threatened, but here we are at last.
>  > >
>  > > 32-bit host support was deprecated with the 10.0 release, and so
>  > > with the 11.0 release we may remove it.  Phil already did some
>  > > cleanup in 10.2, removing support for mips32 and ppc32 within tcg.
>  >
>  > What is the situation with wasm?  If I understand correctly, wasm32
>  > really is a 64-bit target from the TCG point of view, because it has
>  > 64-bit registers internally (similar to x32).
> 
> Currently, wasm32 compilation is treated as a 32bit target with support 
> only
> for 32bit guests. 64bit guest support would require additional patches to
> TCG, as discussed in the earlier attempt.
> (e.g. https://patchew.org/QEMU/ 
> cover.1747922170.git.ktokunaga.mail@gmail.com/).
> 
> As an alternative approach, there is a patch set for 64bit compilation
> support using wasm64 target, which doesn't require the additional TCG
> patches. QEMU can still run on wasm32 engines (e.g. Safari) by relying on
> the Emscripten's feature to lower the output binary to wasm32.

What is the performance of lowered 64-bit vs. the TCG_VADDR_BITS 
approach?  Also, Emscripten's -sMEMORY64=2 is okay for TCI but it would 
not work for TCG; you'd still need TCG_VADDR_BITS to be able to produce 
wasm32 at runtime, which makes -sMEMORY64=2 only a stopgap.

So I think we should go for TCG_VADDR_BITS anyway.  It's surprisingly 
*un*invasive.

I assume wasm32 has CONFIG_ATOMIC64?

Paolo

> https://patchew.org/QEMU/cover.1767886100.git.ktokunaga.mail@gmail.com/
> 
> I've rebased this series on the recent tree yesterday.
> 
> Regards,
> Kohei
> 
> 
> 
>