Statistics
| Branch: | Revision:

root / target-m68k / helpers.h @ 56aebc89

History | View | Annotate | Download (5.2 kB)

1 e1f3808e pbrook
#ifndef DEF_HELPER
2 e1f3808e pbrook
#define DEF_HELPER(name, ret, args) ret glue(helper_,name) args;
3 e1f3808e pbrook
#endif
4 e1f3808e pbrook
5 e1f3808e pbrook
#ifdef GEN_HELPER
6 e1f3808e pbrook
#define DEF_HELPER_0_0(name, ret, args) \
7 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
8 e1f3808e pbrook
static inline void gen_helper_##name(void) \
9 e1f3808e pbrook
{ \
10 e1f3808e pbrook
    tcg_gen_helper_0_0(helper_##name); \
11 e1f3808e pbrook
}
12 e1f3808e pbrook
#define DEF_HELPER_0_1(name, ret, args) \
13 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
14 e1f3808e pbrook
static inline void gen_helper_##name(TCGv arg1) \
15 e1f3808e pbrook
{ \
16 e1f3808e pbrook
    tcg_gen_helper_0_1(helper_##name, arg1); \
17 e1f3808e pbrook
}
18 e1f3808e pbrook
#define DEF_HELPER_0_2(name, ret, args) \
19 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
20 e1f3808e pbrook
static inline void gen_helper_##name(TCGv arg1, TCGv arg2) \
21 e1f3808e pbrook
{ \
22 e1f3808e pbrook
    tcg_gen_helper_0_2(helper_##name, arg1, arg2); \
23 e1f3808e pbrook
}
24 e1f3808e pbrook
#define DEF_HELPER_0_3(name, ret, args) \
25 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
26 e1f3808e pbrook
static inline void gen_helper_##name( \
27 e1f3808e pbrook
    TCGv arg1, TCGv arg2, TCGv arg3) \
28 e1f3808e pbrook
{ \
29 e1f3808e pbrook
    tcg_gen_helper_0_3(helper_##name, arg1, arg2, arg3); \
30 e1f3808e pbrook
}
31 e1f3808e pbrook
#define DEF_HELPER_1_0(name, ret, args) \
32 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
33 e1f3808e pbrook
static inline void gen_helper_##name(TCGv ret) \
34 e1f3808e pbrook
{ \
35 e1f3808e pbrook
    tcg_gen_helper_1_0(helper_##name, ret); \
36 e1f3808e pbrook
}
37 e1f3808e pbrook
#define DEF_HELPER_1_1(name, ret, args) \
38 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
39 e1f3808e pbrook
static inline void gen_helper_##name(TCGv ret, TCGv arg1) \
40 e1f3808e pbrook
{ \
41 e1f3808e pbrook
    tcg_gen_helper_1_1(helper_##name, ret, arg1); \
42 e1f3808e pbrook
}
43 e1f3808e pbrook
#define DEF_HELPER_1_2(name, ret, args) \
44 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
45 e1f3808e pbrook
static inline void gen_helper_##name(TCGv ret, TCGv arg1, TCGv arg2) \
46 e1f3808e pbrook
{ \
47 e1f3808e pbrook
    tcg_gen_helper_1_2(helper_##name, ret, arg1, arg2); \
48 e1f3808e pbrook
}
49 e1f3808e pbrook
#define DEF_HELPER_1_3(name, ret, args) \
50 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
51 e1f3808e pbrook
static inline void gen_helper_##name(TCGv ret, \
52 e1f3808e pbrook
    TCGv arg1, TCGv arg2, TCGv arg3) \
53 e1f3808e pbrook
{ \
54 e1f3808e pbrook
    tcg_gen_helper_1_3(helper_##name, ret, arg1, arg2, arg3); \
55 e1f3808e pbrook
}
56 e1f3808e pbrook
#define DEF_HELPER_1_4(name, ret, args) \
57 e1f3808e pbrook
DEF_HELPER(name, ret, args) \
58 e1f3808e pbrook
static inline void gen_helper_##name(TCGv ret, \
59 e1f3808e pbrook
    TCGv arg1, TCGv arg2, TCGv arg3, TCGv arg4) \
60 e1f3808e pbrook
{ \
61 e1f3808e pbrook
    tcg_gen_helper_1_4(helper_##name, ret, arg1, arg2, arg3, arg4); \
62 e1f3808e pbrook
}
63 e1f3808e pbrook
#else /* !GEN_HELPER */
64 e1f3808e pbrook
#define DEF_HELPER_0_0 DEF_HELPER
65 e1f3808e pbrook
#define DEF_HELPER_0_1 DEF_HELPER
66 e1f3808e pbrook
#define DEF_HELPER_0_2 DEF_HELPER
67 e1f3808e pbrook
#define DEF_HELPER_0_3 DEF_HELPER
68 e1f3808e pbrook
#define DEF_HELPER_1_0 DEF_HELPER
69 e1f3808e pbrook
#define DEF_HELPER_1_1 DEF_HELPER
70 e1f3808e pbrook
#define DEF_HELPER_1_2 DEF_HELPER
71 e1f3808e pbrook
#define DEF_HELPER_1_3 DEF_HELPER
72 e1f3808e pbrook
#define DEF_HELPER_1_4 DEF_HELPER
73 e1f3808e pbrook
#define HELPER(x) glue(helper_,x)
74 e1f3808e pbrook
#endif
75 e1f3808e pbrook
76 e1f3808e pbrook
DEF_HELPER_1_1(bitrev, uint32_t, (uint32_t))
77 e1f3808e pbrook
DEF_HELPER_1_1(ff1, uint32_t, (uint32_t))
78 e1f3808e pbrook
DEF_HELPER_1_2(sats, uint32_t, (uint32_t, uint32_t))
79 e1f3808e pbrook
DEF_HELPER_0_2(divu, void, (CPUState *, uint32_t))
80 e1f3808e pbrook
DEF_HELPER_0_2(divs, void, (CPUState *, uint32_t))
81 e1f3808e pbrook
DEF_HELPER_1_3(addx_cc, uint32_t, (CPUState *, uint32_t, uint32_t))
82 e1f3808e pbrook
DEF_HELPER_1_3(subx_cc, uint32_t, (CPUState *, uint32_t, uint32_t))
83 e1f3808e pbrook
DEF_HELPER_1_3(shl_cc, uint32_t, (CPUState *, uint32_t, uint32_t))
84 e1f3808e pbrook
DEF_HELPER_1_3(shr_cc, uint32_t, (CPUState *, uint32_t, uint32_t))
85 e1f3808e pbrook
DEF_HELPER_1_3(sar_cc, uint32_t, (CPUState *, uint32_t, uint32_t))
86 e1f3808e pbrook
DEF_HELPER_1_2(xflag_lt, uint32_t, (uint32_t, uint32_t))
87 e1f3808e pbrook
DEF_HELPER_0_2(set_sr, void, (CPUState *, uint32_t))
88 e1f3808e pbrook
DEF_HELPER_0_3(movec, void, (CPUState *, uint32_t, uint32_t))
89 e1f3808e pbrook
90 e1f3808e pbrook
DEF_HELPER_1_2(f64_to_i32, float32, (CPUState *, float64))
91 e1f3808e pbrook
DEF_HELPER_1_2(f64_to_f32, float32, (CPUState *, float64))
92 e1f3808e pbrook
DEF_HELPER_1_2(i32_to_f64, float64, (CPUState *, uint32_t))
93 e1f3808e pbrook
DEF_HELPER_1_2(f32_to_f64, float64, (CPUState *, float32))
94 e1f3808e pbrook
DEF_HELPER_1_2(iround_f64, float64, (CPUState *, float64))
95 e1f3808e pbrook
DEF_HELPER_1_2(itrunc_f64, float64, (CPUState *, float64))
96 e1f3808e pbrook
DEF_HELPER_1_2(sqrt_f64, float64, (CPUState *, float64))
97 e1f3808e pbrook
DEF_HELPER_1_1(abs_f64, float64, (float64))
98 e1f3808e pbrook
DEF_HELPER_1_1(chs_f64, float64, (float64))
99 e1f3808e pbrook
DEF_HELPER_1_3(add_f64, float64, (CPUState *, float64, float64))
100 e1f3808e pbrook
DEF_HELPER_1_3(sub_f64, float64, (CPUState *, float64, float64))
101 e1f3808e pbrook
DEF_HELPER_1_3(mul_f64, float64, (CPUState *, float64, float64))
102 e1f3808e pbrook
DEF_HELPER_1_3(div_f64, float64, (CPUState *, float64, float64))
103 e1f3808e pbrook
DEF_HELPER_1_3(sub_cmp_f64, float64, (CPUState *, float64, float64))
104 e1f3808e pbrook
DEF_HELPER_1_2(compare_f64, uint32_t, (CPUState *, float64))
105 e1f3808e pbrook
106 e1f3808e pbrook
DEF_HELPER_0_3(mac_move, void, (CPUState *, uint32_t, uint32_t))
107 e1f3808e pbrook
DEF_HELPER_1_3(macmulf, uint64_t, (CPUState *, uint32_t, uint32_t))
108 e1f3808e pbrook
DEF_HELPER_1_3(macmuls, uint64_t, (CPUState *, uint32_t, uint32_t))
109 e1f3808e pbrook
DEF_HELPER_1_3(macmulu, uint64_t, (CPUState *, uint32_t, uint32_t))
110 e1f3808e pbrook
DEF_HELPER_0_2(macsats, void, (CPUState *, uint32_t))
111 e1f3808e pbrook
DEF_HELPER_0_2(macsatu, void, (CPUState *, uint32_t))
112 e1f3808e pbrook
DEF_HELPER_0_2(macsatf, void, (CPUState *, uint32_t))
113 e1f3808e pbrook
DEF_HELPER_0_2(mac_set_flags, void, (CPUState *, uint32_t))
114 e1f3808e pbrook
DEF_HELPER_0_2(set_macsr, void, (CPUState *, uint32_t))
115 e1f3808e pbrook
DEF_HELPER_1_2(get_macf, uint32_t, (CPUState *, uint64_t))
116 e1f3808e pbrook
DEF_HELPER_1_1(get_macs, uint32_t, (uint64_t))
117 e1f3808e pbrook
DEF_HELPER_1_1(get_macu, uint32_t, (uint64_t))
118 e1f3808e pbrook
DEF_HELPER_1_2(get_mac_extf, uint32_t, (CPUState *, uint32_t))
119 e1f3808e pbrook
DEF_HELPER_1_2(get_mac_exti, uint32_t, (CPUState *, uint32_t))
120 e1f3808e pbrook
DEF_HELPER_0_3(set_mac_extf, void, (CPUState *, uint32_t, uint32_t))
121 e1f3808e pbrook
DEF_HELPER_0_3(set_mac_exts, void, (CPUState *, uint32_t, uint32_t))
122 e1f3808e pbrook
DEF_HELPER_0_3(set_mac_extu, void, (CPUState *, uint32_t, uint32_t))
123 e1f3808e pbrook
124 e1f3808e pbrook
DEF_HELPER_0_2(flush_flags, void, (CPUState *, uint32_t))
125 e1f3808e pbrook
DEF_HELPER_0_1(raise_exception, void, (uint32_t))
126 e1f3808e pbrook
127 e1f3808e pbrook
#undef DEF_HELPER
128 e1f3808e pbrook
#undef DEF_HELPER_0_0
129 e1f3808e pbrook
#undef DEF_HELPER_0_1
130 e1f3808e pbrook
#undef DEF_HELPER_0_2
131 e1f3808e pbrook
#undef DEF_HELPER_0_3
132 e1f3808e pbrook
#undef DEF_HELPER_1_0
133 e1f3808e pbrook
#undef DEF_HELPER_1_1
134 e1f3808e pbrook
#undef DEF_HELPER_1_2
135 e1f3808e pbrook
#undef DEF_HELPER_1_3
136 e1f3808e pbrook
#undef DEF_HELPER_1_4
137 e1f3808e pbrook
#undef GEN_HELPER
138 e1f3808e pbrook
#undef DEF_HELPER