{"id":2197993,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197993/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260219040150.2098396-9-pierrick.bouvier@linaro.org>","date":"2026-02-19T04:01:44","name":"[v4,08/14] target/arm: move exec/helper-* plumbery to helper.h","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"17b63785dac9c34452368c746588cf860e66a0d6","submitter":{"id":85798,"url":"http://patchwork.ozlabs.org/api/1.0/people/85798/?format=json","name":"Pierrick Bouvier","email":"pierrick.bouvier@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260219040150.2098396-9-pierrick.bouvier@linaro.org/mbox/","series":[{"id":492635,"url":"http://patchwork.ozlabs.org/api/1.0/series/492635/?format=json","date":"2026-02-19T04:01:36","name":"target/arm: single-binary","version":4,"mbox":"http://patchwork.ozlabs.org/series/492635/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197993/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=lTXxlK9A;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGfrQ6vq8z1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 15:03:50 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vsvFJ-0008Tp-CN; Wed, 18 Feb 2026 23:02:33 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1vsvF7-0008P5-Hg\n for qemu-devel@nongnu.org; Wed, 18 Feb 2026 23:02:21 -0500","from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1vsvF4-0001Er-Lw\n for qemu-devel@nongnu.org; Wed, 18 Feb 2026 23:02:21 -0500","by mail-pl1-x62e.google.com with SMTP id\n d9443c01a7336-2a95bfdb31eso1994075ad.3\n for <qemu-devel@nongnu.org>; Wed, 18 Feb 2026 20:02:18 -0800 (PST)","from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44]) by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2ad1a73200asm147636225ad.36.2026.02.18.20.02.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 18 Feb 2026 20:02:16 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1771473737; x=1772078537; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=vZWRAyQhu2Io6unvYUCtXe2P61Hg6zFaFVtChf0tU2A=;\n b=lTXxlK9AB9MRCYOR7ls2gId+QsOfzb9aCs84P55l9J+pb+iGonnK1ZKh5MI7HGYqut\n LmUKR1HoRyYVodiMNY28/rmN1hUuRCh0CWz37d6YaIXqMZPi9FfkNpDT68o6kB34pv1z\n dL8bnCKpUP95Kc04/7s9YroUQ7PAym8RsYcfzOBerz8nsapQ3yia4k+n//cUcdPY6op+\n d6avLHiKIsNFFeX3r3ElXy70CcVoD6hoExQpaCB+9p5j7TY5PGI1UKZpAZwdtMwmrw9+\n WA4V1kBS/GVSXXzpxaD/w51OsJmhyCRaRiUitq1fucV5Fq/I85oO5Wz9/tzzV22kIPqf\n Uyng==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771473737; x=1772078537;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=vZWRAyQhu2Io6unvYUCtXe2P61Hg6zFaFVtChf0tU2A=;\n b=WS2+fAHPOrEMpY8xcn1koEK8/ApA4Tjidfzp9xRYjiv0MJ+6JkX7S+jQDqkeuJXMtQ\n u7ZCTIHzPcs9Pj7nQqxeyJWilGogFYEHEyA7xVz/u6W/4EgyBd21qEhvqrjvtGITrB5A\n P0FTrCNjnm1QZVDXNmVBT+o64O6GSXL/HUVNn+MB9tHPzihA2Cxg/ps/gs5gUaBo7+mX\n qttIuSpO5EU4RpGS58HoYUvey2afEJa33OjiQ60IfztQldEY/oliKvHYwnIKr7FfKB7+\n gxTBWtINYRHo/T4QNwOs/upA0iqCQn9Nr8UdDQxOkiNvzNtft1lnQ1jV2iVCK5nBq2CX\n hAsQ==","X-Gm-Message-State":"AOJu0YxLoKqJGxj20zJxdAbYeopU5voEYCaJSB8EAxaW4RjQbZVMqF89\n vM/pFbH528Ffl3Ij9Po+GxFZKDXbMYLF9xJwD76el6Mam9rpjS0DqsSSx6DFW2kY7dKbD7oBFCW\n yhHIY","X-Gm-Gg":"AZuq6aJHIAsaNsSo9y4IoC5huJYCYzUvuvNxBZMk4mbGzcmsfFSmCThfm37tWfDwGbf\n VnwrdtcqZ5ozVRngyqm8O+CFGTq4qHEkQdU2u1/ui1DfuZETbK8UhKYKciYOofO0Yjnjo1HlFLh\n aQm0izAgcSIUPbzQArjLr+uXFF0mtjeB/OFIfc3ymsEK59ZC/2Xaj2ZdMpFRk2xinxwVYw2sOQi\n f8ZB3oNx0ztYcdWv8g01a3EjwSDbB7KRsxVPdx9rQji6x/aWNWT1X3TKsQIUx2JIDL87Miz0d4w\n /9sYjd1I/i+98YHB2miXUoGc+bJ5Dv9FXJrlkW1C102pBnC37ebMdHlrc1HOx5lYzd1sYEHPQqo\n +ILkmZHFG3q2XEiDFRkPOv8+JMBeD6wzBbc9wav2az1ZkzGh7MCdeMzdt99Q/HV+tDOSu0SyVjW\n X3Xc7c2tr6bpm1nMNBLL4B4VzIAFGj2N6qTkgP39f4ZHkxAuTfDnwUoi/7Q7Oi3+hlbNH0nOTj0\n v9X","X-Received":"by 2002:a17:903:2445:b0:2aa:dd98:197e with SMTP id\n d9443c01a7336-2ad5b16c9a6mr11371225ad.51.1771473737000;\n Wed, 18 Feb 2026 20:02:17 -0800 (PST)","From":"Pierrick Bouvier <pierrick.bouvier@linaro.org>","To":"qemu-devel@nongnu.org","Cc":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>, qemu-arm@nongnu.org,\n kvm@vger.kernel.org, Richard Henderson <richard.henderson@linaro.org>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, anjo@rev.ng,\n Peter Maydell <peter.maydell@linaro.org>,\n Jim MacArthur <jim.macarthur@linaro.org>","Subject":"[PATCH v4 08/14] target/arm: move exec/helper-* plumbery to helper.h","Date":"Wed, 18 Feb 2026 20:01:44 -0800","Message-ID":"<20260219040150.2098396-9-pierrick.bouvier@linaro.org>","X-Mailer":"git-send-email 2.47.3","In-Reply-To":"<20260219040150.2098396-1-pierrick.bouvier@linaro.org>","References":"<20260219040150.2098396-1-pierrick.bouvier@linaro.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::62e;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62e.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Since we cleaned helper.h, we can continue further and remove\nall exec/helper-* inclusion. This way, all helpers use the same pattern,\nand helper include details are limited to those headers.\n\nReviewed-by: Richard Henderson <richard.henderson@linaro.org>\nSigned-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>\n---\n target/arm/helper.h                        | 13 ++++++++++++-\n target/arm/tcg/{helper.h => helper-defs.h} |  0\n target/arm/tcg/translate.h                 |  2 +-\n target/arm/tcg/arith_helper.c              |  4 +---\n target/arm/tcg/crypto_helper.c             |  4 +---\n target/arm/tcg/debug.c                     |  4 +---\n target/arm/tcg/helper-a64.c                |  2 +-\n target/arm/tcg/hflags.c                    |  4 +---\n target/arm/tcg/m_helper.c                  |  2 +-\n target/arm/tcg/mte_helper.c                |  2 +-\n target/arm/tcg/mve_helper.c                |  2 +-\n target/arm/tcg/neon_helper.c               |  4 +---\n target/arm/tcg/op_helper.c                 |  2 +-\n target/arm/tcg/pauth_helper.c              |  2 +-\n target/arm/tcg/psci.c                      |  2 +-\n target/arm/tcg/sme_helper.c                |  2 +-\n target/arm/tcg/sve_helper.c                |  2 +-\n target/arm/tcg/tlb_helper.c                |  4 +---\n target/arm/tcg/translate.c                 |  9 ++++-----\n target/arm/tcg/vec_helper.c                |  2 +-\n target/arm/tcg/vfp_helper.c                |  4 +---\n 21 files changed, 34 insertions(+), 38 deletions(-)\n rename target/arm/tcg/{helper.h => helper-defs.h} (100%)","diff":"diff --git a/target/arm/helper.h b/target/arm/helper.h\nindex b1e83196b3b..b1c26c180ea 100644\n--- a/target/arm/helper.h\n+++ b/target/arm/helper.h\n@@ -1,3 +1,14 @@\n /* SPDX-License-Identifier: GPL-2.0-or-later */\n \n-#include \"tcg/helper.h\"\n+#ifndef HELPER__H\n+#define HELPER__H\n+\n+#include \"exec/helper-proto-common.h\"\n+#include \"exec/helper-gen-common.h\"\n+\n+#define HELPER_H \"tcg/helper-defs.h\"\n+#include \"exec/helper-proto.h.inc\"\n+#include \"exec/helper-gen.h.inc\"\n+#undef HELPER_H\n+\n+#endif /* HELPER__H */\ndiff --git a/target/arm/tcg/helper.h b/target/arm/tcg/helper-defs.h\nsimilarity index 100%\nrename from target/arm/tcg/helper.h\nrename to target/arm/tcg/helper-defs.h\ndiff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h\nindex 1e30d7c77c3..027769271c9 100644\n--- a/target/arm/tcg/translate.h\n+++ b/target/arm/tcg/translate.h\n@@ -6,7 +6,7 @@\n #include \"tcg/tcg-op-gvec.h\"\n #include \"exec/translator.h\"\n #include \"exec/translation-block.h\"\n-#include \"exec/helper-gen.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n \ndiff --git a/target/arm/tcg/arith_helper.c b/target/arm/tcg/arith_helper.c\nindex 97c6362992c..cc081c8f966 100644\n--- a/target/arm/tcg/arith_helper.c\n+++ b/target/arm/tcg/arith_helper.c\n@@ -8,11 +8,9 @@\n #include \"qemu/osdep.h\"\n #include \"qemu/bswap.h\"\n #include \"qemu/crc32c.h\"\n+#include \"helper.h\"\n #include <zlib.h> /* for crc32 */\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n /*\n  * Note that signed overflow is undefined in C.  The following routines are\n  * careful to use unsigned types where modulo arithmetic is required.\ndiff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c\nindex 3428bd1bf0b..11977cb7723 100644\n--- a/target/arm/tcg/crypto_helper.c\n+++ b/target/arm/tcg/crypto_helper.c\n@@ -15,11 +15,9 @@\n #include \"tcg/tcg-gvec-desc.h\"\n #include \"crypto/aes-round.h\"\n #include \"crypto/sm4.h\"\n+#include \"helper.h\"\n #include \"vec_internal.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n union CRYPTO_STATE {\n     uint8_t    bytes[16];\n     uint32_t   words[4];\ndiff --git a/target/arm/tcg/debug.c b/target/arm/tcg/debug.c\nindex 7dfb291a9bf..5214e3c08a8 100644\n--- a/target/arm/tcg/debug.c\n+++ b/target/arm/tcg/debug.c\n@@ -8,15 +8,13 @@\n #include \"qemu/osdep.h\"\n #include \"qemu/log.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"cpregs.h\"\n #include \"exec/watchpoint.h\"\n #include \"system/tcg.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n /* Return the Exception Level targeted by debug exceptions. */\n static int arm_debug_target_el(CPUARMState *env)\n {\ndiff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c\nindex 07ddfb895dd..2dec587d386 100644\n--- a/target/arm/tcg/helper-a64.c\n+++ b/target/arm/tcg/helper-a64.c\n@@ -21,7 +21,7 @@\n #include \"qemu/units.h\"\n #include \"cpu.h\"\n #include \"gdbstub/helpers.h\"\n-#include \"exec/helper-proto.h\"\n+#include \"helper.h\"\n #include \"helper-a64.h\"\n #include \"qemu/host-utils.h\"\n #include \"qemu/log.h\"\ndiff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c\nindex 5c9b9bec3b2..7e6f8d36475 100644\n--- a/target/arm/tcg/hflags.c\n+++ b/target/arm/tcg/hflags.c\n@@ -7,15 +7,13 @@\n  */\n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"exec/translation-block.h\"\n #include \"accel/tcg/cpu-ops.h\"\n #include \"cpregs.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n static inline bool fgt_svc(CPUARMState *env, int el)\n {\n     /*\ndiff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c\nindex 0c3832a47fd..a0cb8cb021e 100644\n--- a/target/arm/tcg/m_helper.c\n+++ b/target/arm/tcg/m_helper.c\n@@ -8,10 +8,10 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"gdbstub/helpers.h\"\n-#include \"exec/helper-proto.h\"\n #include \"qemu/main-loop.h\"\n #include \"qemu/bitops.h\"\n #include \"qemu/log.h\"\ndiff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c\nindex 01b7f099f4a..a9fb979f639 100644\n--- a/target/arm/tcg/mte_helper.c\n+++ b/target/arm/tcg/mte_helper.c\n@@ -20,6 +20,7 @@\n #include \"qemu/osdep.h\"\n #include \"qemu/log.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"exec/target_page.h\"\n #include \"exec/page-protection.h\"\n@@ -32,7 +33,6 @@\n #include \"accel/tcg/cpu-ldst.h\"\n #include \"accel/tcg/probe.h\"\n #include \"helper-a64.h\"\n-#include \"exec/helper-proto.h\"\n #include \"exec/tlb-flags.h\"\n #include \"accel/tcg/cpu-ops.h\"\n #include \"qapi/error.h\"\ndiff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c\nindex f33642df1f9..a67d90d6c75 100644\n--- a/target/arm/tcg/mve_helper.c\n+++ b/target/arm/tcg/mve_helper.c\n@@ -19,10 +19,10 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"helper-mve.h\"\n #include \"internals.h\"\n #include \"vec_internal.h\"\n-#include \"exec/helper-proto.h\"\n #include \"accel/tcg/cpu-ldst.h\"\n #include \"tcg/tcg.h\"\n #include \"fpu/softfloat.h\"\ndiff --git a/target/arm/tcg/neon_helper.c b/target/arm/tcg/neon_helper.c\nindex 8d288f3a700..69147969b23 100644\n--- a/target/arm/tcg/neon_helper.c\n+++ b/target/arm/tcg/neon_helper.c\n@@ -9,13 +9,11 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"tcg/tcg-gvec-desc.h\"\n #include \"fpu/softfloat.h\"\n #include \"vec_internal.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n #define SIGNBIT (uint32_t)0x80000000\n #define SIGNBIT64 ((uint64_t)1 << 63)\n \ndiff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c\nindex c7ab462d1d1..4d708635068 100644\n--- a/target/arm/tcg/op_helper.c\n+++ b/target/arm/tcg/op_helper.c\n@@ -19,8 +19,8 @@\n #include \"qemu/osdep.h\"\n #include \"qemu/main-loop.h\"\n #include \"cpu.h\"\n-#include \"exec/helper-proto.h\"\n #include \"exec/target_page.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"accel/tcg/cpu-ldst.h\"\ndiff --git a/target/arm/tcg/pauth_helper.c b/target/arm/tcg/pauth_helper.c\nindex 5a20117ae89..67c0d59d9e9 100644\n--- a/target/arm/tcg/pauth_helper.c\n+++ b/target/arm/tcg/pauth_helper.c\n@@ -19,11 +19,11 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"accel/tcg/cpu-ldst.h\"\n #include \"helper-a64.h\"\n-#include \"exec/helper-proto.h\"\n #include \"tcg/tcg-gvec-desc.h\"\n #include \"qemu/xxhash.h\"\n \ndiff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c\nindex 2d409301578..bca6058e41a 100644\n--- a/target/arm/tcg/psci.c\n+++ b/target/arm/tcg/psci.c\n@@ -18,7 +18,7 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n-#include \"exec/helper-proto.h\"\n+#include \"helper.h\"\n #include \"kvm-consts.h\"\n #include \"qemu/main-loop.h\"\n #include \"system/runstate.h\"\ndiff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c\nindex 7729732369f..ab5999c5925 100644\n--- a/target/arm/tcg/sme_helper.c\n+++ b/target/arm/tcg/sme_helper.c\n@@ -21,7 +21,7 @@\n #include \"cpu.h\"\n #include \"internals.h\"\n #include \"tcg/tcg-gvec-desc.h\"\n-#include \"exec/helper-proto.h\"\n+#include \"helper.h\"\n #include \"helper-sme.h\"\n #include \"accel/tcg/cpu-ldst.h\"\n #include \"accel/tcg/helper-retaddr.h\"\ndiff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c\nindex 16e528e41a6..062d8881bd0 100644\n--- a/target/arm/tcg/sve_helper.c\n+++ b/target/arm/tcg/sve_helper.c\n@@ -21,9 +21,9 @@\n #include \"cpu.h\"\n #include \"internals.h\"\n #include \"exec/page-protection.h\"\n-#include \"exec/helper-proto.h\"\n #include \"exec/target_page.h\"\n #include \"exec/tlb-flags.h\"\n+#include \"helper.h\"\n #include \"helper-a64.h\"\n #include \"helper-sve.h\"\n #include \"tcg/tcg-gvec-desc.h\"\ndiff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c\nindex 5c689d3b69f..565954269f9 100644\n--- a/target/arm/tcg/tlb_helper.c\n+++ b/target/arm/tcg/tlb_helper.c\n@@ -7,12 +7,10 @@\n  */\n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n /*\n  * Returns true if the stage 1 translation regime is using LPAE format page\n  * tables. Used when raising alignment exceptions, whose FSR changes depending\ndiff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c\nindex 580ec86c68c..3f57006f9df 100644\n--- a/target/arm/tcg/translate.c\n+++ b/target/arm/tcg/translate.c\n@@ -26,14 +26,10 @@\n #include \"arm_ldst.h\"\n #include \"semihosting/semihost.h\"\n #include \"cpregs.h\"\n-#include \"exec/helper-proto.h\"\n #include \"exec/target_page.h\"\n+#include \"helper.h\"\n #include \"helper-mve.h\"\n \n-#define HELPER_H \"helper.h\"\n-#include \"exec/helper-info.c.inc\"\n-#undef  HELPER_H\n-\n #define ENABLE_ARCH_4T    arm_dc_feature(s, ARM_FEATURE_V4T)\n #define ENABLE_ARCH_5     arm_dc_feature(s, ARM_FEATURE_V5)\n /* currently all emulated v5 cores are also v5TE, so don't bother */\n@@ -45,6 +41,9 @@\n #define ENABLE_ARCH_7     arm_dc_feature(s, ARM_FEATURE_V7)\n #define ENABLE_ARCH_8     arm_dc_feature(s, ARM_FEATURE_V8)\n \n+#define HELPER_H \"tcg/helper-defs.h\"\n+#include \"exec/helper-info.c.inc\"\n+\n /* These are TCG globals which alias CPUARMState fields */\n static TCGv_i32 cpu_R[16];\n TCGv_i32 cpu_CF, cpu_NF, cpu_VF, cpu_ZF;\ndiff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c\nindex a070ac90579..1223b843bf1 100644\n--- a/target/arm/tcg/vec_helper.c\n+++ b/target/arm/tcg/vec_helper.c\n@@ -19,7 +19,7 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n-#include \"exec/helper-proto.h\"\n+#include \"helper.h\"\n #include \"helper-a64.h\"\n #include \"helper-sme.h\"\n #include \"helper-sve.h\"\ndiff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c\nindex e156e3774ad..45f2eb0930f 100644\n--- a/target/arm/tcg/vfp_helper.c\n+++ b/target/arm/tcg/vfp_helper.c\n@@ -19,14 +19,12 @@\n \n #include \"qemu/osdep.h\"\n #include \"cpu.h\"\n+#include \"helper.h\"\n #include \"internals.h\"\n #include \"cpu-features.h\"\n #include \"fpu/softfloat.h\"\n #include \"qemu/log.h\"\n \n-#define HELPER_H \"tcg/helper.h\"\n-#include \"exec/helper-proto.h.inc\"\n-\n /*\n  * Set the float_status behaviour to match the Arm defaults:\n  *  * tininess-before-rounding\n","prefixes":["v4","08/14"]}