1 /* Helper file for declaring TCG helper functions.
2 This one expands generation functions for tcg opcodes. */
7 #include <exec/helper-head.h>
9 #define DEF_HELPER_FLAGS_0(name, flags, ret) \
10 static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
12 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 0, NULL); \
15 #define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
16 static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
19 TCGArg args[1] = { dh_arg(t1, 1) }; \
20 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 1, args); \
23 #define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
24 static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
25 dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \
27 TCGArg args[2] = { dh_arg(t1, 1), dh_arg(t2, 2) }; \
28 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 2, args); \
31 #define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
32 static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
33 dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
35 TCGArg args[3] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3) }; \
36 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 3, args); \
39 #define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
40 static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
41 dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), \
42 dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \
44 TCGArg args[4] = { dh_arg(t1, 1), dh_arg(t2, 2), \
45 dh_arg(t3, 3), dh_arg(t4, 4) }; \
46 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 4, args); \
49 #define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
50 static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
51 dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
52 dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \
54 TCGArg args[5] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
55 dh_arg(t4, 4), dh_arg(t5, 5) }; \
56 tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 5, args); \
60 #include "trace/generated-helpers.h"
61 #include "trace/generated-helpers-wrappers.h"
62 #include "tcg-runtime.h"
64 #undef DEF_HELPER_FLAGS_0
65 #undef DEF_HELPER_FLAGS_1
66 #undef DEF_HELPER_FLAGS_2
67 #undef DEF_HELPER_FLAGS_3
68 #undef DEF_HELPER_FLAGS_4
69 #undef DEF_HELPER_FLAGS_5
72 #endif /* HELPER_GEN_H */