Since we cleaned helper.h, we can continue further and remove
all exec/helper-* inclusion. This way, all helpers use the same pattern,
and helper include details are limited to those headers.
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
target/arm/helper.h | 13 ++++++++++++-
target/arm/tcg/{helper.h => helper-defs.h} | 0
target/arm/tcg/translate.h | 2 +-
target/arm/debug_helper.c | 4 +---
target/arm/helper.c | 5 +++--
target/arm/tcg/arith_helper.c | 4 +---
target/arm/tcg/crypto_helper.c | 4 +---
target/arm/tcg/helper-a64.c | 2 +-
target/arm/tcg/hflags.c | 4 +---
target/arm/tcg/m_helper.c | 2 +-
target/arm/tcg/mte_helper.c | 2 +-
target/arm/tcg/mve_helper.c | 2 +-
target/arm/tcg/neon_helper.c | 4 +---
target/arm/tcg/op_helper.c | 2 +-
target/arm/tcg/pauth_helper.c | 2 +-
target/arm/tcg/psci.c | 2 +-
target/arm/tcg/sme_helper.c | 2 +-
target/arm/tcg/sve_helper.c | 2 +-
target/arm/tcg/tlb_helper.c | 4 +---
target/arm/tcg/translate.c | 6 +-----
target/arm/tcg/vec_helper.c | 2 +-
target/arm/tcg/vfp_helper.c | 4 +---
22 files changed, 34 insertions(+), 40 deletions(-)
rename target/arm/tcg/{helper.h => helper-defs.h} (100%)
diff --git a/target/arm/helper.h b/target/arm/helper.h
index b1e83196b3b..b1c26c180ea 100644
--- a/target/arm/helper.h
+++ b/target/arm/helper.h
@@ -1,3 +1,14 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
-#include "tcg/helper.h"
+#ifndef HELPER__H
+#define HELPER__H
+
+#include "exec/helper-proto-common.h"
+#include "exec/helper-gen-common.h"
+
+#define HELPER_H "tcg/helper-defs.h"
+#include "exec/helper-proto.h.inc"
+#include "exec/helper-gen.h.inc"
+#undef HELPER_H
+
+#endif /* HELPER__H */
diff --git a/target/arm/tcg/helper.h b/target/arm/tcg/helper-defs.h
similarity index 100%
rename from target/arm/tcg/helper.h
rename to target/arm/tcg/helper-defs.h
diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h
index 1e30d7c77c3..027769271c9 100644
--- a/target/arm/tcg/translate.h
+++ b/target/arm/tcg/translate.h
@@ -6,7 +6,7 @@
#include "tcg/tcg-op-gvec.h"
#include "exec/translator.h"
#include "exec/translation-block.h"
-#include "exec/helper-gen.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
diff --git a/target/arm/debug_helper.c b/target/arm/debug_helper.c
index 579516e1541..ec6a2b0c179 100644
--- a/target/arm/debug_helper.c
+++ b/target/arm/debug_helper.c
@@ -8,15 +8,13 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "cpregs.h"
#include "exec/watchpoint.h"
#include "system/tcg.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
#ifdef CONFIG_TCG
/* Return the Exception Level targeted by debug exceptions. */
static int arm_debug_target_el(CPUARMState *env)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index e86ceb130ce..70227263612 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -10,6 +10,7 @@
#include "qemu/log.h"
#include "trace.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "exec/page-protection.h"
@@ -36,8 +37,8 @@
#include "target/arm/gtimer.h"
#include "qemu/plugin.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
+#define HELPER_H "tcg/helper-defs.h"
+#include "exec/helper-info.c.inc"
static void switch_mode(CPUARMState *env, int mode);
diff --git a/target/arm/tcg/arith_helper.c b/target/arm/tcg/arith_helper.c
index 97c6362992c..cc081c8f966 100644
--- a/target/arm/tcg/arith_helper.c
+++ b/target/arm/tcg/arith_helper.c
@@ -8,11 +8,9 @@
#include "qemu/osdep.h"
#include "qemu/bswap.h"
#include "qemu/crc32c.h"
+#include "helper.h"
#include <zlib.h> /* for crc32 */
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
/*
* Note that signed overflow is undefined in C. The following routines are
* careful to use unsigned types where modulo arithmetic is required.
diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c
index 3428bd1bf0b..11977cb7723 100644
--- a/target/arm/tcg/crypto_helper.c
+++ b/target/arm/tcg/crypto_helper.c
@@ -15,11 +15,9 @@
#include "tcg/tcg-gvec-desc.h"
#include "crypto/aes-round.h"
#include "crypto/sm4.h"
+#include "helper.h"
#include "vec_internal.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
union CRYPTO_STATE {
uint8_t bytes[16];
uint32_t words[4];
diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c
index 07ddfb895dd..2dec587d386 100644
--- a/target/arm/tcg/helper-a64.c
+++ b/target/arm/tcg/helper-a64.c
@@ -21,7 +21,7 @@
#include "qemu/units.h"
#include "cpu.h"
#include "gdbstub/helpers.h"
-#include "exec/helper-proto.h"
+#include "helper.h"
#include "helper-a64.h"
#include "qemu/host-utils.h"
#include "qemu/log.h"
diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
index 5c9b9bec3b2..7e6f8d36475 100644
--- a/target/arm/tcg/hflags.c
+++ b/target/arm/tcg/hflags.c
@@ -7,15 +7,13 @@
*/
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "exec/translation-block.h"
#include "accel/tcg/cpu-ops.h"
#include "cpregs.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
static inline bool fgt_svc(CPUARMState *env, int el)
{
/*
diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c
index 3fb24c77900..5a75e8b3e11 100644
--- a/target/arm/tcg/m_helper.c
+++ b/target/arm/tcg/m_helper.c
@@ -8,10 +8,10 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "gdbstub/helpers.h"
-#include "exec/helper-proto.h"
#include "qemu/main-loop.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c
index 01b7f099f4a..a9fb979f639 100644
--- a/target/arm/tcg/mte_helper.c
+++ b/target/arm/tcg/mte_helper.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "exec/target_page.h"
#include "exec/page-protection.h"
@@ -32,7 +33,6 @@
#include "accel/tcg/cpu-ldst.h"
#include "accel/tcg/probe.h"
#include "helper-a64.h"
-#include "exec/helper-proto.h"
#include "exec/tlb-flags.h"
#include "accel/tcg/cpu-ops.h"
#include "qapi/error.h"
diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c
index f33642df1f9..a67d90d6c75 100644
--- a/target/arm/tcg/mve_helper.c
+++ b/target/arm/tcg/mve_helper.c
@@ -19,10 +19,10 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "helper-mve.h"
#include "internals.h"
#include "vec_internal.h"
-#include "exec/helper-proto.h"
#include "accel/tcg/cpu-ldst.h"
#include "tcg/tcg.h"
#include "fpu/softfloat.h"
diff --git a/target/arm/tcg/neon_helper.c b/target/arm/tcg/neon_helper.c
index 8d288f3a700..69147969b23 100644
--- a/target/arm/tcg/neon_helper.c
+++ b/target/arm/tcg/neon_helper.c
@@ -9,13 +9,11 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "tcg/tcg-gvec-desc.h"
#include "fpu/softfloat.h"
#include "vec_internal.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
#define SIGNBIT (uint32_t)0x80000000
#define SIGNBIT64 ((uint64_t)1 << 63)
diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c
index 4fbd219555d..5a510730ece 100644
--- a/target/arm/tcg/op_helper.c
+++ b/target/arm/tcg/op_helper.c
@@ -19,8 +19,8 @@
#include "qemu/osdep.h"
#include "qemu/main-loop.h"
#include "cpu.h"
-#include "exec/helper-proto.h"
#include "exec/target_page.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "accel/tcg/cpu-ldst.h"
diff --git a/target/arm/tcg/pauth_helper.c b/target/arm/tcg/pauth_helper.c
index 5a20117ae89..67c0d59d9e9 100644
--- a/target/arm/tcg/pauth_helper.c
+++ b/target/arm/tcg/pauth_helper.c
@@ -19,11 +19,11 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "accel/tcg/cpu-ldst.h"
#include "helper-a64.h"
-#include "exec/helper-proto.h"
#include "tcg/tcg-gvec-desc.h"
#include "qemu/xxhash.h"
diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c
index 2d409301578..bca6058e41a 100644
--- a/target/arm/tcg/psci.c
+++ b/target/arm/tcg/psci.c
@@ -18,7 +18,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "exec/helper-proto.h"
+#include "helper.h"
#include "kvm-consts.h"
#include "qemu/main-loop.h"
#include "system/runstate.h"
diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c
index 7729732369f..ab5999c5925 100644
--- a/target/arm/tcg/sme_helper.c
+++ b/target/arm/tcg/sme_helper.c
@@ -21,7 +21,7 @@
#include "cpu.h"
#include "internals.h"
#include "tcg/tcg-gvec-desc.h"
-#include "exec/helper-proto.h"
+#include "helper.h"
#include "helper-sme.h"
#include "accel/tcg/cpu-ldst.h"
#include "accel/tcg/helper-retaddr.h"
diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c
index 16e528e41a6..062d8881bd0 100644
--- a/target/arm/tcg/sve_helper.c
+++ b/target/arm/tcg/sve_helper.c
@@ -21,9 +21,9 @@
#include "cpu.h"
#include "internals.h"
#include "exec/page-protection.h"
-#include "exec/helper-proto.h"
#include "exec/target_page.h"
#include "exec/tlb-flags.h"
+#include "helper.h"
#include "helper-a64.h"
#include "helper-sve.h"
#include "tcg/tcg-gvec-desc.h"
diff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c
index 5c689d3b69f..565954269f9 100644
--- a/target/arm/tcg/tlb_helper.c
+++ b/target/arm/tcg/tlb_helper.c
@@ -7,12 +7,10 @@
*/
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
/*
* Returns true if the stage 1 translation regime is using LPAE format page
* tables. Used when raising alignment exceptions, whose FSR changes depending
diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c
index febb7f1532a..982c83ef42a 100644
--- a/target/arm/tcg/translate.c
+++ b/target/arm/tcg/translate.c
@@ -26,14 +26,10 @@
#include "arm_ldst.h"
#include "semihosting/semihost.h"
#include "cpregs.h"
-#include "exec/helper-proto.h"
#include "exec/target_page.h"
+#include "helper.h"
#include "helper-mve.h"
-#define HELPER_H "helper.h"
-#include "exec/helper-info.c.inc"
-#undef HELPER_H
-
#define ENABLE_ARCH_4T arm_dc_feature(s, ARM_FEATURE_V4T)
#define ENABLE_ARCH_5 arm_dc_feature(s, ARM_FEATURE_V5)
/* currently all emulated v5 cores are also v5TE, so don't bother */
diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c
index a070ac90579..1223b843bf1 100644
--- a/target/arm/tcg/vec_helper.c
+++ b/target/arm/tcg/vec_helper.c
@@ -19,7 +19,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "exec/helper-proto.h"
+#include "helper.h"
#include "helper-a64.h"
#include "helper-sme.h"
#include "helper-sve.h"
diff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c
index e156e3774ad..45f2eb0930f 100644
--- a/target/arm/tcg/vfp_helper.c
+++ b/target/arm/tcg/vfp_helper.c
@@ -19,14 +19,12 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "helper.h"
#include "internals.h"
#include "cpu-features.h"
#include "fpu/softfloat.h"
#include "qemu/log.h"
-#define HELPER_H "tcg/helper.h"
-#include "exec/helper-proto.h.inc"
-
/*
* Set the float_status behaviour to match the Arm defaults:
* * tininess-before-rounding
--
2.47.3
On 2/6/26 14:21, Pierrick Bouvier wrote:
> Since we cleaned helper.h, we can continue further and remove
> all exec/helper-* inclusion. This way, all helpers use the same pattern,
> and helper include details are limited to those headers.
>
> Signed-off-by: Pierrick Bouvier<pierrick.bouvier@linaro.org>
> ---
> target/arm/helper.h | 13 ++++++++++++-
> target/arm/tcg/{helper.h => helper-defs.h} | 0
> target/arm/tcg/translate.h | 2 +-
> target/arm/debug_helper.c | 4 +---
> target/arm/helper.c | 5 +++--
> target/arm/tcg/arith_helper.c | 4 +---
> target/arm/tcg/crypto_helper.c | 4 +---
> target/arm/tcg/helper-a64.c | 2 +-
> target/arm/tcg/hflags.c | 4 +---
> target/arm/tcg/m_helper.c | 2 +-
> target/arm/tcg/mte_helper.c | 2 +-
> target/arm/tcg/mve_helper.c | 2 +-
> target/arm/tcg/neon_helper.c | 4 +---
> target/arm/tcg/op_helper.c | 2 +-
> target/arm/tcg/pauth_helper.c | 2 +-
> target/arm/tcg/psci.c | 2 +-
> target/arm/tcg/sme_helper.c | 2 +-
> target/arm/tcg/sve_helper.c | 2 +-
> target/arm/tcg/tlb_helper.c | 4 +---
> target/arm/tcg/translate.c | 6 +-----
> target/arm/tcg/vec_helper.c | 2 +-
> target/arm/tcg/vfp_helper.c | 4 +---
> 22 files changed, 34 insertions(+), 40 deletions(-)
> rename target/arm/tcg/{helper.h => helper-defs.h} (100%)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
© 2016 - 2026 Red Hat, Inc.