1 #define DEF_HELPER(name, ret, args) ret glue(helper_,name) args;
4 #define DEF_HELPER_1_1(name, ret, args) \
5 DEF_HELPER(name, ret, args) \
6 static inline void gen_helper_##name(TCGv ret, TCGv arg1) \
8 tcg_gen_helper_1_1(helper_##name, ret, arg1); \
10 #define DEF_HELPER_1_2(name, ret, args) \
11 DEF_HELPER(name, ret, args) \
12 static inline void gen_helper_##name(TCGv ret, TCGv arg1, TCGv arg2) \
14 tcg_gen_helper_1_2(helper_##name, ret, arg1, arg2); \
16 #define DEF_HELPER_1_3(name, ret, args) \
17 DEF_HELPER(name, ret, args) \
18 static inline void gen_helper_##name(TCGv ret, \
19 TCGv arg1, TCGv arg2, TCGv arg3) \
21 tcg_gen_helper_1_3(helper_##name, ret, arg1, arg2, arg3); \
23 #else /* !GEN_HELPER */
24 #define DEF_HELPER_1_1 DEF_HELPER
25 #define DEF_HELPER_1_2 DEF_HELPER
26 #define DEF_HELPER_1_3 DEF_HELPER
27 #define HELPER(x) glue(helper_,x)
30 DEF_HELPER_1_1(clz, uint32_t, (uint32_t))
31 DEF_HELPER_1_1(sxtb16, uint32_t, (uint32_t))
32 DEF_HELPER_1_1(uxtb16, uint32_t, (uint32_t))
34 DEF_HELPER_1_2(add_setq, uint32_t, (uint32_t, uint32_t))
35 DEF_HELPER_1_2(add_saturate, uint32_t, (uint32_t, uint32_t))
36 DEF_HELPER_1_2(sub_saturate, uint32_t, (uint32_t, uint32_t))
37 DEF_HELPER_1_2(add_usaturate, uint32_t, (uint32_t, uint32_t))
38 DEF_HELPER_1_2(sub_usaturate, uint32_t, (uint32_t, uint32_t))
39 DEF_HELPER_1_1(double_saturate, uint32_t, (int32_t))
40 DEF_HELPER_1_2(sdiv, int32_t, (int32_t, int32_t))
41 DEF_HELPER_1_2(udiv, uint32_t, (uint32_t, uint32_t))
42 DEF_HELPER_1_1(rbit, uint32_t, (uint32_t))
45 DEF_HELPER_1_3(pfx ## add8, uint32_t, (uint32_t, uint32_t, uint32_t *)) \
46 DEF_HELPER_1_3(pfx ## sub8, uint32_t, (uint32_t, uint32_t, uint32_t *)) \
47 DEF_HELPER_1_3(pfx ## sub16, uint32_t, (uint32_t, uint32_t, uint32_t *)) \
48 DEF_HELPER_1_3(pfx ## add16, uint32_t, (uint32_t, uint32_t, uint32_t *)) \
49 DEF_HELPER_1_3(pfx ## addsubx, uint32_t, (uint32_t, uint32_t, uint32_t *)) \
50 DEF_HELPER_1_3(pfx ## subaddx, uint32_t, (uint32_t, uint32_t, uint32_t *))
57 DEF_HELPER_1_2(pfx ## add8, uint32_t, (uint32_t, uint32_t)) \
58 DEF_HELPER_1_2(pfx ## sub8, uint32_t, (uint32_t, uint32_t)) \
59 DEF_HELPER_1_2(pfx ## sub16, uint32_t, (uint32_t, uint32_t)) \
60 DEF_HELPER_1_2(pfx ## add16, uint32_t, (uint32_t, uint32_t)) \
61 DEF_HELPER_1_2(pfx ## addsubx, uint32_t, (uint32_t, uint32_t)) \
62 DEF_HELPER_1_2(pfx ## subaddx, uint32_t, (uint32_t, uint32_t))
69 DEF_HELPER_1_2(ssat, uint32_t, (uint32_t, uint32_t))
70 DEF_HELPER_1_2(usat, uint32_t, (uint32_t, uint32_t))
71 DEF_HELPER_1_2(ssat16, uint32_t, (uint32_t, uint32_t))
72 DEF_HELPER_1_2(usat16, uint32_t, (uint32_t, uint32_t))
74 DEF_HELPER_1_2(usad8, uint32_t, (uint32_t, uint32_t))
76 DEF_HELPER_1_3(sel_flags, uint32_t, (uint32_t, uint32_t, uint32_t))