Hello, This series aggressively decimizes CPU_COMMON fields and then begins with some follow-up cleanups in core CPU code.
Paolo has suggested we handle cputlb.c not as "common code" but as code to be inlined into target code. I have therefore dropped some cputlb.c changes that seemed mostly relevant for the file itself only. Available for testing at: git://github.com/afaerber/qemu-cpu.git qom-cpu-13.v2 https://github.com/afaerber/qemu-cpu/commits/qom-cpu-13.v2 Regards, Andreas v1 -> v2: * Dropped cpu_mmu_index() and cpu_get_tb_cpu_state() changes (Paolo) * Rebased on LM32 cpu_abort() and dc->env cleanups (Michael) * cpu_copy() was already moved into linux-user and cpu_model_str dropped * Rebased on CPU address spaces; added cleanups for ENV_GET_CPU() misuses * Rebased on LM32 watchpoints and breakpoints * Rebased on AArch64 * Fixed s/tlb_update_dirty/tlb_unprotect_code_phys/ in commit message * Leave tlb_flush_{addr,mask} fields in CPU_COMMON_TLB for now * Dropped tlb_add_large_page() argument change for now >From qom-cpu-copy preview: * Instead of moving cpu_copy() to a new linux-user/cpu.c, moved it to main.c, allowing to drop cpu_model_str field completely Cc: Anthony Liguori <anth...@codemonkey.ws> Cc: Blue Swirl <blauwir...@gmail.com> Cc: Aurélien Jarno <aurel...@aurel32.net> Cc: Richard Henderson <r...@twiddle.net> (TCG) Cc: Xuebing Wang <xbi...@gmail.com> Cc: Michael Walle <mich...@walle.cc> (lm32) Cc: Edgar E. Iglesias <edgar.igles...@gmail.com> (cris, microblaze) Cc: Peter Crosthwaite <peter.crosthwa...@xilinx.com> (microblaze) Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> Cc: Riku Voipio <riku.voi...@iki.fi> (linux-user) Cc: Peter Maydell <peter.mayd...@linaro.org> (arm) Andreas Färber (40): target-alpha: Clean up ENV_GET_CPU() usage target-arm: Clean up ENV_GET_CPU() usage target-i386: Clean up ENV_GET_CPU() usage target-ppc: Clean up ENV_GET_CPU() usage target-s390x: Clean up ENV_GET_CPU() usage target-sparc: Clean up ENV_GET_CPU() usage target-unicore32: Clean up ENV_GET_CPU() usage target-xtensa: Clean up ENV_GET_CPU() usage cpu: Turn cpu_handle_mmu_fault() into a CPUClass hook cpu: Move mem_io_{pc,vaddr} fields from CPU_COMMON to CPUState cpu: Move can_do_io field from CPU_COMMON to CPUState cpu: Move icount_extra field from CPU_COMMON to CPUState cpu: Move icount_decr field from CPU_COMMON to CPUState cpu: Move tb_jmp_cache field from CPU_COMMON to CPUState cpu: Move jmp_env field from CPU_COMMON to CPUState cpu: Move exception_index field from CPU_COMMON to CPUState cpu: Move opaque field from CPU_COMMON to CPUState cpu: Move watchpoint fields from CPU_COMMON to CPUState cpu: Move breakpoints field from CPU_COMMON to CPUState exec: Change tlb_fill() argument to CPUState cpu-exec: Change cpu_loop_exit() argument to CPUState translate-all: Change cpu_restore_state() argument to CPUState translate-all: Change cpu_restore_state_from_tb() argument to CPUState translate-all: Change tb_check_watchpoint() argument to CPUState translate-all: Change cpu_io_recompile() argument to CPUState translate-all: Change tb_gen_code() argument to CPUState translate-all: Change tb_flush_jmp_cache() argument to CPUState target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook exec: Change cpu_watchpoint_{insert,remove{,_by_ref,_all}} argument exec: Change cpu_breakpoint_{insert,remove{,_by_ref,_all}} argument cpu-exec: Change cpu_resume_from_signal() argument to CPUState cputlb: Change tlb_unprotect_code_phys() argument to CPUState exec: Change memory_region_section_get_iotlb() argument to CPUState exec: Change cpu_abort() argument to CPUState target-cris: Replace DisasContext::env field with CRISCPU target-microblaze: Replace DisasContext::env field with MicroBlazeCPU cputlb: Change tlb_flush_page() argument to CPUState cputlb: Change tlb_flush() argument to CPUState cputlb: Change tlb_set_page() argument to CPUState user-exec: Change exception_action() argument to CPUState bsd-user/main.c | 2 +- cpu-exec.c | 101 +++++++++--------- cpus.c | 23 ++-- cputlb.c | 24 ++--- exec.c | 118 ++++++++++----------- gdbstub.c | 48 ++++----- hw/i386/kvmvapic.c | 6 +- hw/ppc/e500.c | 3 +- hw/ppc/ppc405_uc.c | 2 +- hw/ppc/ppce500_spin.c | 2 +- hw/ppc/spapr_hcall.c | 8 +- hw/s390x/s390-virtio.c | 8 +- hw/sh4/sh7750.c | 2 +- include/exec/cpu-all.h | 24 ----- include/exec/cpu-defs.h | 61 ----------- include/exec/cputlb.h | 6 +- include/exec/exec-all.h | 43 ++++---- include/exec/gen-icount.h | 10 +- include/exec/softmmu_template.h | 24 ++--- include/qom/cpu.h | 88 ++++++++++++++++ linux-user/elfload.c | 10 +- linux-user/linuxload.c | 3 +- linux-user/m68k-sim.c | 3 +- linux-user/m68k/target_cpu.h | 4 +- linux-user/main.c | 102 +++++++++--------- linux-user/signal.c | 24 +++-- linux-user/syscall.c | 30 +++--- linux-user/vm86.c | 27 +++-- qom/cpu.c | 6 ++ target-alpha/cpu.c | 6 +- target-alpha/cpu.h | 5 +- target-alpha/helper.c | 40 ++++--- target-alpha/mem_helper.c | 32 +++--- target-alpha/sys_helper.c | 4 +- target-alpha/translate.c | 4 +- target-arm/arm-semi.c | 9 +- target-arm/cpu.c | 8 +- target-arm/cpu.h | 5 +- target-arm/helper.c | 136 ++++++++++++++++-------- target-arm/op_helper.c | 33 +++--- target-arm/translate-a64.c | 4 +- target-arm/translate.c | 6 +- target-cris/cpu.c | 8 +- target-cris/cpu.h | 7 +- target-cris/helper.c | 48 +++++---- target-cris/mmu.c | 3 +- target-cris/op_helper.c | 28 +++-- target-cris/translate.c | 21 ++-- target-cris/translate_v10.c | 16 +-- target-i386/cpu.c | 12 ++- target-i386/cpu.h | 8 +- target-i386/excp_helper.c | 6 +- target-i386/helper.c | 77 ++++++++------ target-i386/kvm.c | 8 +- target-i386/machine.c | 7 +- target-i386/mem_helper.c | 16 +-- target-i386/misc_helper.c | 20 ++-- target-i386/seg_helper.c | 20 ++-- target-i386/smm_helper.c | 2 +- target-i386/svm_helper.c | 41 ++++---- target-i386/translate.c | 4 +- target-lm32/cpu.c | 8 +- target-lm32/cpu.h | 8 +- target-lm32/helper.c | 51 +++++---- target-lm32/op_helper.c | 23 ++-- target-lm32/translate.c | 5 +- target-m68k/cpu.c | 8 +- target-m68k/cpu.h | 4 +- target-m68k/helper.c | 23 ++-- target-m68k/m68k-semi.c | 5 +- target-m68k/op_helper.c | 34 +++--- target-m68k/qregs.def | 1 - target-m68k/translate.c | 13 ++- target-microblaze/cpu.c | 8 +- target-microblaze/cpu.h | 3 +- target-microblaze/helper.c | 34 +++--- target-microblaze/mmu.c | 6 +- target-microblaze/op_helper.c | 19 ++-- target-microblaze/translate.c | 102 +++++++++--------- target-mips/cpu.c | 8 +- target-mips/cpu.h | 6 +- target-mips/helper.c | 56 ++++++---- target-mips/machine.c | 3 +- target-mips/op_helper.c | 34 ++++-- target-mips/translate.c | 8 +- target-mips/translate_init.c | 4 +- target-moxie/cpu.c | 8 +- target-moxie/cpu.h | 2 +- target-moxie/helper.c | 51 +++++---- target-moxie/translate.c | 4 +- target-openrisc/cpu.c | 14 ++- target-openrisc/cpu.h | 5 +- target-openrisc/exception.c | 6 +- target-openrisc/interrupt.c | 14 +-- target-openrisc/interrupt_helper.c | 2 +- target-openrisc/mmu.c | 17 +-- target-openrisc/mmu_helper.c | 8 +- target-openrisc/sys_helper.c | 6 +- target-openrisc/translate.c | 5 +- target-ppc/cpu-qom.h | 8 +- target-ppc/cpu.h | 6 +- target-ppc/excp_helper.c | 73 ++++++------- target-ppc/fpu_helper.c | 26 +++-- target-ppc/helper_regs.h | 2 +- target-ppc/misc_helper.c | 4 +- target-ppc/mmu-hash32.c | 35 ++++--- target-ppc/mmu-hash32.h | 14 ++- target-ppc/mmu-hash64.c | 30 +++--- target-ppc/mmu-hash64.h | 8 +- target-ppc/mmu_helper.c | 208 +++++++++++++++++++++---------------- target-ppc/translate.c | 4 +- target-ppc/translate_init.c | 13 ++- target-ppc/user_only_helper.c | 8 +- target-s390x/cc_helper.c | 5 +- target-s390x/cpu.c | 12 ++- target-s390x/cpu.h | 5 +- target-s390x/fpu_helper.c | 4 +- target-s390x/helper.c | 88 +++++++++------- target-s390x/mem_helper.c | 58 ++++++----- target-s390x/misc_helper.c | 33 +++--- target-s390x/translate.c | 4 +- target-sh4/cpu.c | 8 +- target-sh4/cpu.h | 6 +- target-sh4/helper.c | 108 ++++++++++--------- target-sh4/op_helper.c | 20 ++-- target-sh4/translate.c | 4 +- target-sparc/cpu.c | 8 +- target-sparc/cpu.h | 4 +- target-sparc/helper.c | 28 ++--- target-sparc/int32_helper.c | 10 +- target-sparc/int64_helper.c | 8 +- target-sparc/ldst_helper.c | 52 +++++----- target-sparc/machine.c | 3 +- target-sparc/mmu_helper.c | 42 ++++---- target-sparc/translate.c | 4 +- target-unicore32/cpu.c | 6 +- target-unicore32/cpu.h | 5 +- target-unicore32/helper.c | 17 +-- target-unicore32/op_helper.c | 14 +-- target-unicore32/softmmu.c | 29 +++--- target-unicore32/translate.c | 32 +++++- target-unicore32/ucf64_helper.c | 3 +- target-xtensa/cpu.h | 6 +- target-xtensa/helper.c | 32 +++--- target-xtensa/op_helper.c | 50 +++++---- target-xtensa/translate.c | 5 +- translate-all.c | 98 ++++++++--------- translate-all.h | 2 +- user-exec.c | 28 +++-- 149 files changed, 1893 insertions(+), 1459 deletions(-) -- 1.8.4.5