From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WiRQs-0006F0-Cx for qemu-devel@nongnu.org; Thu, 08 May 2014 12:44:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WiRQm-0003Hh-1l for qemu-devel@nongnu.org; Thu, 08 May 2014 12:44:30 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55239) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WiRQl-0003HT-OD for qemu-devel@nongnu.org; Thu, 08 May 2014 12:44:23 -0400 From: Paolo Bonzini Date: Thu, 8 May 2014 18:09:46 +0200 Message-Id: <1399565391-27833-7-git-send-email-pbonzini@redhat.com> In-Reply-To: <1399565391-27833-1-git-send-email-pbonzini@redhat.com> References: <1399565391-27833-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [RFC PATCH 06/11] softmmu: commonize helper definitions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, rth@twiddle.net They do not need to be in op_helper.c. Because cputlb.c now includes softmmu_template.h twice for each size, io_readX must be elided the second time through. Signed-off-by: Paolo Bonzini --- cputlb.c | 18 ++++++++++++++++-- include/exec/softmmu_template.h | 2 ++ target-alpha/mem_helper.c | 14 -------------- target-arm/op_helper.c | 14 -------------- target-cris/op_helper.c | 14 -------------- target-i386/mem_helper.c | 18 ------------------ target-lm32/op_helper.c | 10 ---------- target-m68k/op_helper.c | 14 -------------- target-microblaze/op_helper.c | 10 ---------- target-mips/op_helper.c | 14 -------------- target-moxie/helper.c | 14 -------------- target-openrisc/mmu_helper.c | 13 ------------- target-ppc/mmu_helper.c | 14 -------------- target-s390x/mem_helper.c | 14 -------------- target-sh4/op_helper.c | 14 -------------- target-sparc/ldst_helper.c | 13 ------------- target-unicore32/op_helper.c | 14 -------------- target-xtensa/op_helper.c | 14 -------------- 18 files changed, 18 insertions(+), 220 deletions(-) diff --git a/cputlb.c b/cputlb.c index 214c945..0a884f8 100644 --- a/cputlb.c +++ b/cputlb.c @@ -27,6 +27,7 @@ #include "exec/memory-internal.h" #include "exec/ram_addr.h" +#include "tcg/tcg.h" //#define DEBUG_TLB //#define DEBUG_TLB_CHECK @@ -330,6 +331,21 @@ tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong addr) return qemu_ram_addr_from_host_nofail(p); } +#define MMUSUFFIX _mmu + +#define SHIFT 0 +#include "exec/softmmu_template.h" + +#define SHIFT 1 +#include "exec/softmmu_template.h" + +#define SHIFT 2 +#include "exec/softmmu_template.h" + +#define SHIFT 3 +#include "exec/softmmu_template.h" +#undef MMUSUFFIX + #define MMUSUFFIX _cmmu #undef GETPC_ADJ #define GETPC_ADJ 0 @@ -348,5 +364,3 @@ tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong addr) #define SHIFT 3 #include "exec/softmmu_template.h" - -#undef env diff --git a/include/exec/softmmu_template.h b/include/exec/softmmu_template.h index 73ed7cf..ed8725d 100644 --- a/include/exec/softmmu_template.h +++ b/include/exec/softmmu_template.h @@ -116,6 +116,7 @@ # define helper_te_st_name helper_le_st_name #endif +#ifndef SOFTMMU_CODE_ACCESS static inline DATA_TYPE glue(io_read, SUFFIX)(CPUArchState *env, hwaddr physaddr, target_ulong addr, @@ -135,6 +136,7 @@ static inline DATA_TYPE glue(io_read, SUFFIX)(CPUArchState *env, io_mem_read(mr, physaddr, &val, 1 << SHIFT); return val; } +#endif #ifdef SOFTMMU_CODE_ACCESS static __attribute__((unused)) diff --git a/target-alpha/mem_helper.c b/target-alpha/mem_helper.c index fa9e8a3..5a94f3e 100644 --- a/target-alpha/mem_helper.c +++ b/target-alpha/mem_helper.c @@ -133,20 +133,6 @@ void alpha_cpu_unassigned_access(CPUState *cs, hwaddr addr, #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c index fb90676..2e46381 100644 --- a/target-arm/op_helper.c +++ b/target-arm/op_helper.c @@ -58,20 +58,6 @@ uint32_t HELPER(neon_tbl)(CPUARMState *env, uint32_t ireg, uint32_t def, #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* try to fill the TLB and return an exception if error. If retaddr is * NULL, it means that the function was called in C code (i.e. not * from generated code or from helper.c) diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c index bd9a583..86e3a2d 100644 --- a/target-cris/op_helper.c +++ b/target-cris/op_helper.c @@ -37,20 +37,6 @@ #if !defined(CONFIG_USER_ONLY) #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* Try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-i386/mem_helper.c b/target-i386/mem_helper.c index b3b811b..b32cb08 100644 --- a/target-i386/mem_helper.c +++ b/target-i386/mem_helper.c @@ -110,24 +110,6 @@ void helper_boundl(CPUX86State *env, target_ulong a0, int v) } #if !defined(CONFIG_USER_ONLY) - -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - -#endif - -#if !defined(CONFIG_USER_ONLY) /* try to fill the TLB and return an exception if error. If retaddr is * NULL, it means that the function was called in C code (i.e. not * from generated code or from helper.c) diff --git a/target-lm32/op_helper.c b/target-lm32/op_helper.c index 2f36b7b..16180dc 100644 --- a/target-lm32/op_helper.c +++ b/target-lm32/op_helper.c @@ -13,16 +13,6 @@ #endif #if !defined(CONFIG_USER_ONLY) -#define MMUSUFFIX _mmu -#define SHIFT 0 -#include "exec/softmmu_template.h" -#define SHIFT 1 -#include "exec/softmmu_template.h" -#define SHIFT 2 -#include "exec/softmmu_template.h" -#define SHIFT 3 -#include "exec/softmmu_template.h" - void raise_exception(CPULM32State *env, int index) { CPUState *cs = CPU(lm32_env_get_cpu(env)); diff --git a/target-m68k/op_helper.c b/target-m68k/op_helper.c index 06302b1..291a3af 100644 --- a/target-m68k/op_helper.c +++ b/target-m68k/op_helper.c @@ -36,20 +36,6 @@ extern int semihosting_enabled; #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* Try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c index f8fb7f9..24f24ab 100644 --- a/target-microblaze/op_helper.c +++ b/target-microblaze/op_helper.c @@ -28,16 +28,6 @@ #if !defined(CONFIG_USER_ONLY) #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu -#define SHIFT 0 -#include "exec/softmmu_template.h" -#define SHIFT 1 -#include "exec/softmmu_template.h" -#define SHIFT 2 -#include "exec/softmmu_template.h" -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* Try to fill the TLB and return an exception if error. If retaddr is * NULL, it means that the function was called in C code (i.e. not * from generated code or from helper.c) diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c index 209dcdf..b0e8165 100644 --- a/target-mips/op_helper.c +++ b/target-mips/op_helper.c @@ -2132,20 +2132,6 @@ static void QEMU_NORETURN do_unaligned_access(CPUMIPSState *env, target_ulong addr, int is_write, int is_user, uintptr_t retaddr); -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - static void do_unaligned_access(CPUMIPSState *env, target_ulong addr, int is_write, int is_user, uintptr_t retaddr) { diff --git a/target-moxie/helper.c b/target-moxie/helper.c index 3d0c34d..9daaee8 100644 --- a/target-moxie/helper.c +++ b/target-moxie/helper.c @@ -29,20 +29,6 @@ #include "qemu/host-utils.h" #include "helper.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* Try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-openrisc/mmu_helper.c b/target-openrisc/mmu_helper.c index fb457c7..5263634 100644 --- a/target-openrisc/mmu_helper.c +++ b/target-openrisc/mmu_helper.c @@ -22,19 +22,6 @@ #ifndef CONFIG_USER_ONLY #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" void tlb_fill(CPUState *cs, target_ulong addr, int is_write, int mmu_idx, uintptr_t retaddr) diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c index 1771863..90c0de3 100644 --- a/target-ppc/mmu_helper.c +++ b/target-ppc/mmu_helper.c @@ -2905,20 +2905,6 @@ void helper_booke206_tlbflush(CPUPPCState *env, uint32_t type) #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c index d8ca300..d0b353e 100644 --- a/target-s390x/mem_helper.c +++ b/target-s390x/mem_helper.c @@ -26,20 +26,6 @@ #if !defined(CONFIG_USER_ONLY) #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - /* try to fill the TLB and return an exception if error. If retaddr is NULL, it means that the function was called in C code (i.e. not from generated code or from helper.c) */ diff --git a/target-sh4/op_helper.c b/target-sh4/op_helper.c index 720a97b..ee386ce 100644 --- a/target-sh4/op_helper.c +++ b/target-sh4/op_helper.c @@ -24,20 +24,6 @@ #ifndef CONFIG_USER_ONLY #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - void tlb_fill(CPUState *cs, target_ulong addr, int is_write, int mmu_idx, uintptr_t retaddr) { diff --git a/target-sparc/ldst_helper.c b/target-sparc/ldst_helper.c index d676f16..2d6ea70 100644 --- a/target-sparc/ldst_helper.c +++ b/target-sparc/ldst_helper.c @@ -69,19 +69,6 @@ static void QEMU_NORETURN do_unaligned_access(CPUSPARCState *env, target_ulong addr, int is_write, int is_user, uintptr_t retaddr); #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" #endif #if defined(TARGET_SPARC64) && !defined(CONFIG_USER_ONLY) diff --git a/target-unicore32/op_helper.c b/target-unicore32/op_helper.c index 4c6950d..2a8c9d9 100644 --- a/target-unicore32/op_helper.c +++ b/target-unicore32/op_helper.c @@ -243,20 +243,6 @@ uint32_t HELPER(ror_cc)(CPUUniCore32State *env, uint32_t x, uint32_t i) #ifndef CONFIG_USER_ONLY #include "exec/softmmu_exec.h" -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - void tlb_fill(CPUState *cs, target_ulong addr, int is_write, int mmu_idx, uintptr_t retaddr) { diff --git a/target-xtensa/op_helper.c b/target-xtensa/op_helper.c index a2439be..f421c18 100644 --- a/target-xtensa/op_helper.c +++ b/target-xtensa/op_helper.c @@ -34,20 +34,6 @@ static void do_unaligned_access(CPUXtensaState *env, target_ulong addr, int is_write, int is_user, uintptr_t retaddr); -#define MMUSUFFIX _mmu - -#define SHIFT 0 -#include "exec/softmmu_template.h" - -#define SHIFT 1 -#include "exec/softmmu_template.h" - -#define SHIFT 2 -#include "exec/softmmu_template.h" - -#define SHIFT 3 -#include "exec/softmmu_template.h" - static void do_unaligned_access(CPUXtensaState *env, target_ulong addr, int is_write, int is_user, uintptr_t retaddr) { -- 1.8.3.1