]> Git Repo - qemu.git/blame - include/exec/helper-gen.h
tcg: Push tcg-runtime routines into exec/helper-*
[qemu.git] / include / exec / helper-gen.h
CommitLineData
2ef6175a
RH
1/* Helper file for declaring TCG helper functions.
2 This one expands generation functions for tcg opcodes. */
3
4#ifndef HELPER_GEN_H
5#define HELPER_GEN_H 1
6
7#include <exec/helper-head.h>
8
9#define DEF_HELPER_FLAGS_0(name, flags, ret) \
10static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
11{ \
12 int sizemask; \
13 sizemask = dh_is_64bit(ret); \
14 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 0, NULL); \
15}
16
17#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
18static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1)) \
19{ \
20 TCGArg args[1]; \
21 int sizemask = 0; \
22 dh_sizemask(ret, 0); \
23 dh_arg(t1, 1); \
24 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 1, args); \
25}
26
27#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
28static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
29 dh_arg_decl(t2, 2)) \
30{ \
31 TCGArg args[2]; \
32 int sizemask = 0; \
33 dh_sizemask(ret, 0); \
34 dh_arg(t1, 1); \
35 dh_arg(t2, 2); \
36 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 2, args); \
37}
38
39#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
40static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
41 dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
42{ \
43 TCGArg args[3]; \
44 int sizemask = 0; \
45 dh_sizemask(ret, 0); \
46 dh_arg(t1, 1); \
47 dh_arg(t2, 2); \
48 dh_arg(t3, 3); \
49 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 3, args); \
50}
51
52#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
53static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
54 dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \
55{ \
56 TCGArg args[4]; \
57 int sizemask = 0; \
58 dh_sizemask(ret, 0); \
59 dh_arg(t1, 1); \
60 dh_arg(t2, 2); \
61 dh_arg(t3, 3); \
62 dh_arg(t4, 4); \
63 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 4, args); \
64}
65
66#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
67static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
68 dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
69 dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \
70{ \
71 TCGArg args[5]; \
72 int sizemask = 0; \
73 dh_sizemask(ret, 0); \
74 dh_arg(t1, 1); \
75 dh_arg(t2, 2); \
76 dh_arg(t3, 3); \
77 dh_arg(t4, 4); \
78 dh_arg(t5, 5); \
79 tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 5, args); \
80}
81
82#include "helper.h"
944eea96 83#include "tcg-runtime.h"
2ef6175a
RH
84
85#undef DEF_HELPER_FLAGS_0
86#undef DEF_HELPER_FLAGS_1
87#undef DEF_HELPER_FLAGS_2
88#undef DEF_HELPER_FLAGS_3
89#undef DEF_HELPER_FLAGS_4
90#undef DEF_HELPER_FLAGS_5
91#undef GEN_HELPER
92
93#endif /* HELPER_GEN_H */
This page took 0.031916 seconds and 4 git commands to generate.