mbox

[PULL,v2,00/33] Abstract ArchCPU

Message ID 20220306232750.41671-1-philippe.mathieu.daude@gmail.com (mailing list archive)
State New, archived
Headers show

Pull-request

https://github.com/philmd/qemu.git tags/abstract-arch-cpu-20220307

Message

Philippe Mathieu-Daudé March 6, 2022, 11:27 p.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

The following changes since commit 9d662a6b22a0838a85c5432385f35db2488a33a5:

  Merge remote-tracking branch 'remotes/legoater/tags/pull-ppc-20220305' into staging (2022-03-05 18:03:15 +0000)

are available in the Git repository at:

  https://github.com/philmd/qemu.git tags/abstract-arch-cpu-20220307

for you to fetch changes up to 61deada4bf54fddf1bc36e15c16269c33462aa90:

  accel/tcg: Remove pointless CPUArchState casts (2022-03-06 22:47:52 +0100)

Since v1: Fixed Darwin/x86_64 (HVF)

----------------------------------------------------------------
- Re-org accel/ and softmmu/ to have more target-agnostic objects.

- Use CPUArchState as an abstract type, defined by each target
  (CPUState is our interface with generic code, CPUArchState is
   our interface with target-specific code).

----------------------------------------------------------------

Philippe Mathieu-Daudé (32):
  accel: Restrict sysemu stubs to system emulation
  accel/meson: Only build hw virtualization with system emulation
  exec: Declare vaddr as a generic target-agnostic type
  exec: Make cpu_memory_rw_debug() target agnostic
  sysemu/memory_mapping: Become target-agnostic
  sysemu/kvm: Make kvm_on_sigbus() / kvm_on_sigbus_vcpu() target
    agnostic
  accel/kvm: Simplify user-mode #ifdef'ry
  accel/hax: Introduce CONFIG_HAX_IS_POSSIBLE
  softmmu/cpus: Code movement
  accel: Introduce AccelOpsClass::cpu_thread_is_idle()
  accel: Introduce AccelOpsClass::cpus_are_resettable()
  softmmu/globals: Remove unused 'hw/i386/*' headers
  softmmu/physmem: Remove unnecessary include
  softmmu/cpu-timers: Remove unused 'exec/exec-all.h' header
  misc: Remove unnecessary "sysemu/cpu-timers.h" include
  misc: Add missing "sysemu/cpu-timers.h" include
  exec/gdbstub: Make gdb_exit() / gdb_set_stop_cpu() target agnostic
  exec/cpu: Make address_space_init/reloading_memory_map target agnostic
  softmmu: Add qemu_init_arch_modules()
  softmmu: Build target-agnostic objects once
  meson: Display libfdt as disabled when system emulation is disabled
  exec/cpu_ldst: Include 'cpu.h' to get target_ulong definition
  cpu: Add missing 'exec/exec-all.h' and 'qemu/accel.h' headers
  target/i386/tcg/sysemu: Include missing 'exec/exec-all.h' header
  target: Include missing 'cpu.h'
  target/hexagon: Add missing 'hw/core/cpu.h' include
  target: Use forward declared type instead of structure type
  target: Use CPUArchState as interface to target-specific CPU state
  target: Introduce and use OBJECT_DECLARE_CPU_TYPE() macro
  target: Use ArchCPU as interface to target CPU
  target/i386: Remove pointless CPUArchState casts
  accel/tcg: Remove pointless CPUArchState casts

Taylor Simpson (1):
  Hexagon (target/hexagon) convert to OBJECT_DECLARE_TYPE

 meson.build                          |   4 +-
 include/exec/cpu-all.h               |   4 -
 include/exec/cpu-common.h            |  39 ++++++++++
 include/exec/cpu_ldst.h              |   1 +
 include/exec/exec-all.h              |  26 -------
 include/exec/gdbstub.h               |  25 +++---
 include/exec/poison.h                |   2 -
 include/hw/core/cpu.h                |  33 ++++----
 include/qemu/typedefs.h              |   2 +
 include/sysemu/accel-ops.h           |   3 +
 include/sysemu/arch_init.h           |   2 +
 include/sysemu/hax.h                 |  18 +++--
 include/sysemu/hw_accel.h            |   5 --
 include/sysemu/kvm.h                 |   6 +-
 include/sysemu/memory_mapping.h      |   5 +-
 target/alpha/cpu-qom.h               |   3 +-
 target/alpha/cpu.h                   |  11 +--
 target/arm/cpu-qom.h                 |   3 +-
 target/arm/cpu.h                     |   7 +-
 target/arm/hvf_arm.h                 |   2 +-
 target/avr/cpu-qom.h                 |   3 +-
 target/avr/cpu.h                     |  13 +---
 target/cris/cpu-qom.h                |   3 +-
 target/cris/cpu.h                    |   7 +-
 target/hexagon/cpu.h                 |  23 ++----
 target/hppa/cpu-qom.h                |   3 +-
 target/hppa/cpu.h                    |  12 +--
 target/i386/cpu-qom.h                |   3 +-
 target/i386/cpu.h                    |   7 +-
 target/i386/hvf/x86_emu.h            |  22 +++---
 target/m68k/cpu-qom.h                |   3 +-
 target/m68k/cpu.h                    |   7 +-
 target/microblaze/cpu-qom.h          |   3 +-
 target/microblaze/cpu.h              |   9 +--
 target/microblaze/mmu.h              |   2 +
 target/mips/cpu-qom.h                |   3 +-
 target/mips/cpu.h                    |  10 +--
 target/mips/internal.h               |  15 ++--
 target/nios2/cpu.h                   |   9 +--
 target/nios2/mmu.h                   |   2 +
 target/openrisc/cpu.h                |  17 ++---
 target/ppc/cpu-qom.h                 |   5 +-
 target/ppc/cpu.h                     |   7 +-
 target/riscv/cpu.h                   |  11 +--
 target/riscv/pmp.h                   |   2 +
 target/rx/cpu-qom.h                  |   5 +-
 target/rx/cpu.h                      |   6 +-
 target/s390x/cpu-qom.h               |   7 +-
 target/s390x/cpu.h                   |   7 +-
 target/sh4/cpu-qom.h                 |   3 +-
 target/sh4/cpu.h                     |   7 +-
 target/sparc/cpu-qom.h               |   3 +-
 target/sparc/cpu.h                   |   9 +--
 target/tricore/cpu-qom.h             |   3 +-
 target/tricore/cpu.h                 |  10 +--
 target/xtensa/cpu-qom.h              |   3 +-
 target/xtensa/cpu.h                  |  13 ++--
 accel/kvm/kvm-accel-ops.c            |  12 +++
 accel/qtest/qtest.c                  |   1 -
 accel/stubs/hax-stub.c               |   2 +
 accel/stubs/kvm-stub.c               |   5 --
 accel/tcg/cpu-exec.c                 |   4 +-
 accel/tcg/tcg-accel-ops-icount.c     |   1 +
 accel/tcg/tcg-accel-ops-mttcg.c      |   1 +
 accel/tcg/tcg-accel-ops-rr.c         |   1 +
 accel/tcg/tcg-accel-ops.c            |   1 +
 cpu.c                                |   8 +-
 softmmu/arch_init.c                  |   9 +++
 softmmu/cpu-timers.c                 |   1 -
 softmmu/cpus.c                       |  23 +++---
 softmmu/globals.c                    |   2 -
 softmmu/memory_mapping.c             |   1 +
 softmmu/physmem.c                    |   7 +-
 softmmu/vl.c                         |   5 +-
 target/alpha/translate.c             |   1 -
 target/i386/hax/hax-all.c            |  11 +--
 target/i386/hvf/x86_emu.c            | 110 +++++++++++++--------------
 target/i386/nvmm/nvmm-all.c          |  14 ++--
 target/i386/tcg/sysemu/excp_helper.c |   1 +
 target/i386/tcg/sysemu/misc_helper.c |   1 +
 target/i386/whpx/whpx-accel-ops.c    |   6 ++
 target/i386/whpx/whpx-all.c          |  18 ++---
 target/riscv/csr.c                   |   1 +
 tests/unit/ptimer-test-stubs.c       |   1 -
 accel/meson.build                    |  12 +--
 accel/stubs/meson.build              |  11 ++-
 softmmu/meson.build                  |  24 +++---
 87 files changed, 371 insertions(+), 402 deletions(-)

Comments

Peter Maydell March 8, 2022, 9:06 a.m. UTC | #1
On Sun, 6 Mar 2022 at 23:27, Philippe Mathieu-Daudé
<philippe.mathieu.daude@gmail.com> wrote:
>
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> The following changes since commit 9d662a6b22a0838a85c5432385f35db2488a33a5:
>
>   Merge remote-tracking branch 'remotes/legoater/tags/pull-ppc-20220305' into staging (2022-03-05 18:03:15 +0000)
>
> are available in the Git repository at:
>
>   https://github.com/philmd/qemu.git tags/abstract-arch-cpu-20220307
>
> for you to fetch changes up to 61deada4bf54fddf1bc36e15c16269c33462aa90:
>
>   accel/tcg: Remove pointless CPUArchState casts (2022-03-06 22:47:52 +0100)
>
> Since v1: Fixed Darwin/x86_64 (HVF)
>
> ----------------------------------------------------------------
> - Re-org accel/ and softmmu/ to have more target-agnostic objects.
>
> - Use CPUArchState as an abstract type, defined by each target
>   (CPUState is our interface with generic code, CPUArchState is
>    our interface with target-specific code).
>
> ----------------------------------------------------------------
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/7.0
for any user-visible changes.

-- PMM