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-phi...@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