Commit 59cffd4ba0 for qemu.org
commit 59cffd4ba00433635608221070a173b27af9f714
Author: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Date: Sat Oct 24 16:32:40 2026 +0000
tcg: introduce HELPER_INFO macro
In next commit, we'll prefix all helpers and helper_info with target
base architecture. Make sure helper_info symbol name is defined in a
single place before that.
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Link: https://lore.kernel.org/qemu-devel/20261024163249.77855-3-pierrick.bouvier@oss.qualcomm.com
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
diff --git a/include/exec/helper-gen.h.inc b/include/exec/helper-gen.h.inc
index dabe138e20..95715bde1e 100644
--- a/include/exec/helper-gen.h.inc
+++ b/include/exec/helper-gen.h.inc
@@ -11,88 +11,88 @@
#include "exec/helper-head.h.inc"
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
{ \
- tcg_gen_call0(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret)); \
+ tcg_gen_call0(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret)); \
}
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1)) \
{ \
- tcg_gen_call1(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call1(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1)); \
}
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \
{ \
- tcg_gen_call2(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call2(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2)); \
}
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
{ \
- tcg_gen_call3(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call3(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3)); \
}
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), \
dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \
{ \
- tcg_gen_call4(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call4(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2), \
dh_arg(t3, 3), dh_arg(t4, 4)); \
}
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \
{ \
- tcg_gen_call5(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call5(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
dh_arg(t4, 4), dh_arg(t5, 5)); \
}
#define DEF_HELPER_FLAGS_6(name, flags, ret, t1, t2, t3, t4, t5, t6) \
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
dh_arg_decl(t4, 4), dh_arg_decl(t5, 5), dh_arg_decl(t6, 6)) \
{ \
- tcg_gen_call6(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call6(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
dh_arg(t4, 4), dh_arg(t5, 5), dh_arg(t6, 6)); \
}
#define DEF_HELPER_FLAGS_7(name, flags, ret, t1, t2, t3, t4, t5, t6, t7)\
-extern TCGHelperInfo glue(helper_info_, name); \
+extern TCGHelperInfo HELPER_INFO(name); \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
dh_arg_decl(t4, 4), dh_arg_decl(t5, 5), dh_arg_decl(t6, 6), \
dh_arg_decl(t7, 7)) \
{ \
- tcg_gen_call7(glue(helper_info_,name).func, \
- &glue(helper_info_,name), dh_retvar(ret), \
+ tcg_gen_call7(HELPER_INFO(name).func, \
+ &HELPER_INFO(name), dh_retvar(ret), \
dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
dh_arg(t4, 4), dh_arg(t5, 5), dh_arg(t6, 6), \
dh_arg(t7, 7)); \
diff --git a/include/exec/helper-head.h.inc b/include/exec/helper-head.h.inc
index 7dec5f5b06..be1d79cf01 100644
--- a/include/exec/helper-head.h.inc
+++ b/include/exec/helper-head.h.inc
@@ -9,6 +9,7 @@
#include "fpu/softfloat-types.h"
#define HELPER(name) glue(helper_, name)
+#define HELPER_INFO(name) glue(helper_info_, name)
/* Some types that make sense in C, but not for TCG. */
#define dh_alias_i32 i32
diff --git a/include/exec/helper-info.c.inc b/include/exec/helper-info.c.inc
index c551736d49..4e1ab61e5c 100644
--- a/include/exec/helper-info.c.inc
+++ b/include/exec/helper-info.c.inc
@@ -16,21 +16,21 @@
#define str(s) #s
#define DEF_HELPER_FLAGS_0(NAME, FLAGS, RET) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) \
};
#define DEF_HELPER_FLAGS_1(NAME, FLAGS, RET, T1) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
};
#define DEF_HELPER_FLAGS_2(NAME, FLAGS, RET, T1, T2) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
@@ -38,7 +38,7 @@
};
#define DEF_HELPER_FLAGS_3(NAME, FLAGS, RET, T1, T2, T3) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
@@ -46,7 +46,7 @@
};
#define DEF_HELPER_FLAGS_4(NAME, FLAGS, RET, T1, T2, T3, T4) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
@@ -55,7 +55,7 @@
};
#define DEF_HELPER_FLAGS_5(NAME, FLAGS, RET, T1, T2, T3, T4, T5) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
@@ -64,7 +64,7 @@
};
#define DEF_HELPER_FLAGS_6(NAME, FLAGS, RET, T1, T2, T3, T4, T5, T6) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \
@@ -74,7 +74,7 @@
};
#define DEF_HELPER_FLAGS_7(NAME, FLAGS, RET, T1, T2, T3, T4, T5, T6, T7) \
- TCGHelperInfo glue(helper_info_, NAME) = { \
+ TCGHelperInfo HELPER_INFO(NAME) = { \
.func = HELPER(NAME), .name = str(NAME), \
.flags = FLAGS | dh_callflag(RET), \
.typemask = dh_typemask(RET, 0) | dh_typemask(T1, 1) \