On user emulation, threads always have work to do, and
CPUClass::has_work() is never called. Restrict it to system
emulation, allowing to simplify a bit and reduce code built
on user emulation.
Based-on: <20250121114056.53949-1-philmd@linaro.org>
"cpus: Prefer cached CpuClass over CPU_GET_CLASS() macro"
Philippe Mathieu-Daudé (28):
target/hexagon: Ensure not being build on system emulation
target/rx: Ensure not being build on user emulation
target/tricore: Ensure not being build on user emulation
cpus: Restrict cpu_get_memory_mapping() to system emulation
cpus: Restrict cpu_has_work() to system emulation
cpus: Un-inline cpu_has_work()
cpus: Introduce SysemuCPUOps::has_work() handler
target/alpha: Move has_work() from CPUClass to SysemuCPUOps
target/arm: Move has_work() from CPUClass to SysemuCPUOps
target/avr: Move has_work() from CPUClass to SysemuCPUOps
target/hexagon: Remove CPUClass:has_work() handler
target/hppa: Move has_work() from CPUClass to SysemuCPUOps
target/i386: Move has_work() from CPUClass to SysemuCPUOps
target/loongarch: Move has_work() from CPUClass to SysemuCPUOps
target/m68k: Move has_work() from CPUClass to SysemuCPUOps
target/microblaze: Move has_work() from CPUClass to SysemuCPUOps
target/mips: Move has_work() from CPUClass to SysemuCPUOps
target/openrisc: Move has_work() from CPUClass to SysemuCPUOps
target/ppc: Move has_work() from CPUClass to SysemuCPUOps
target/riscv: Move has_work() from CPUClass to SysemuCPUOps
target/rx: Move has_work() from CPUClass to SysemuCPUOps
target/s390x: Restrict I/O handler installers to system emulation
target/s390x: Move has_work() from CPUClass to SysemuCPUOps
target/sh4: Move has_work() from CPUClass to SysemuCPUOps
target/sparc: Move has_work() from CPUClass to SysemuCPUOps
target/tricore: Move has_work() from CPUClass to SysemuCPUOps
target/xtensa: Move has_work() from CPUClass to SysemuCPUOps
cpus: Remove CPUClass::has_work() handler
include/hw/core/cpu.h | 30 ++++++++++++------------------
include/hw/core/sysemu-cpu-ops.h | 4 ++++
target/hexagon/cpu.h | 4 ++++
target/i386/cpu.h | 4 ++--
target/mips/internal.h | 4 ++--
target/riscv/cpu.h | 9 +++++----
target/riscv/internals.h | 3 ---
target/rx/cpu.h | 6 ++++--
target/s390x/s390x-internal.h | 5 +++++
target/tricore/cpu.h | 4 ++++
hw/core/cpu-common.c | 6 ------
hw/core/cpu-system.c | 6 ++++++
target/alpha/cpu.c | 4 +++-
target/arm/cpu.c | 4 +++-
target/avr/cpu.c | 2 +-
target/hexagon/cpu.c | 6 ------
target/hppa/cpu.c | 4 +++-
target/i386/cpu.c | 8 +++-----
target/loongarch/cpu.c | 8 +++-----
target/m68k/cpu.c | 4 +++-
target/microblaze/cpu.c | 4 +++-
target/mips/cpu.c | 4 +++-
target/openrisc/cpu.c | 4 +++-
target/ppc/cpu_init.c | 4 +++-
target/riscv/cpu.c | 8 +++-----
target/rx/cpu.c | 8 +-------
target/rx/helper.c | 4 ----
target/s390x/cpu-system.c | 18 ++++++++++++++++++
target/s390x/cpu.c | 18 ------------------
target/s390x/interrupt.c | 8 ++------
target/sh4/cpu.c | 4 ++--
target/sparc/cpu.c | 4 +++-
target/tricore/cpu.c | 2 +-
target/xtensa/cpu.c | 12 +++++-------
34 files changed, 114 insertions(+), 113 deletions(-)
--
2.47.1