This is an RFC for something I was playing with over the weekend to try and reduce target specific details polluting cpu-exec. In the end it does get rid of TARGET_I386 #ifdef'ery but I couldn't go further to just building one version of cpu-exec-user and cpu-exec-softmmu because there are still per target differences.
Anyway what do people think? Alex Bennée (10): metadata: add .git-blame-ignore-revs accel/tcg: move cpu_reloading_memory_map into cpu-exec-softmmu accel/tcg: move i386 halt handling to sysemu_ops accel/tcg: don't bother with ifdef for CPU_DUMP_CCOP accel/tcg: remove the fake_user_interrupt guards includes: move irq definitions out of cpu-all.h accel/tcg: use QEMU_IOTHREAD_LOCK_GUARD to cover the exit accel/tcg: push i386 specific hacks into handle_cpu_interrupt callback accel/tcg: re-inline the filtering of virtual IRQs but data driven accel/tcg: remove unused includes include/exec/cpu-all.h | 52 +-------------- include/exec/cpu-irq.h | 83 +++++++++++++++++++++++ include/exec/poison.h | 13 ---- include/hw/core/sysemu-cpu-ops.h | 16 +++++ include/hw/core/tcg-cpu-ops.h | 7 +- target/i386/cpu-internal.h | 2 + accel/tcg/cpu-exec-common.c | 30 --------- accel/tcg/cpu-exec-softmmu.c | 66 +++++++++++++++++++ accel/tcg/cpu-exec.c | 109 ++++++++++--------------------- target/i386/cpu-sysemu.c | 29 ++++++++ target/i386/cpu.c | 2 + target/i386/tcg/tcg-cpu.c | 1 + .git-blame-ignore-revs | 18 +++++ accel/tcg/meson.build | 10 +++ 14 files changed, 267 insertions(+), 171 deletions(-) create mode 100644 include/exec/cpu-irq.h create mode 100644 accel/tcg/cpu-exec-softmmu.c create mode 100644 .git-blame-ignore-revs -- 2.39.2