]>
Commit | Line | Data |
---|---|---|
6ddbc6e4 | 1 | #define DEF_HELPER(name, ret, args) ret glue(helper_,name) args; |
1497c961 PB |
2 | |
3 | #ifdef GEN_HELPER | |
d9ba4830 PB |
4 | #define DEF_HELPER_0_0(name, ret, args) \ |
5 | DEF_HELPER(name, ret, args) \ | |
6 | static inline void gen_helper_##name(void) \ | |
7 | { \ | |
8 | tcg_gen_helper_0_0(helper_##name); \ | |
9 | } | |
10 | #define DEF_HELPER_0_1(name, ret, args) \ | |
11 | DEF_HELPER(name, ret, args) \ | |
12 | static inline void gen_helper_##name(TCGv arg1) \ | |
13 | { \ | |
14 | tcg_gen_helper_0_1(helper_##name, arg1); \ | |
15 | } | |
16 | #define DEF_HELPER_0_2(name, ret, args) \ | |
17 | DEF_HELPER(name, ret, args) \ | |
18 | static inline void gen_helper_##name(TCGv arg1, TCGv arg2) \ | |
19 | { \ | |
20 | tcg_gen_helper_0_2(helper_##name, arg1, arg2); \ | |
21 | } | |
b0109805 PB |
22 | #define DEF_HELPER_0_3(name, ret, args) \ |
23 | DEF_HELPER(name, ret, args) \ | |
24 | static inline void gen_helper_##name( \ | |
25 | TCGv arg1, TCGv arg2, TCGv arg3) \ | |
26 | { \ | |
27 | tcg_gen_helper_0_3(helper_##name, arg1, arg2, arg3); \ | |
28 | } | |
d9ba4830 PB |
29 | #define DEF_HELPER_1_0(name, ret, args) \ |
30 | DEF_HELPER(name, ret, args) \ | |
31 | static inline void gen_helper_##name(TCGv ret) \ | |
32 | { \ | |
33 | tcg_gen_helper_1_0(helper_##name, ret); \ | |
34 | } | |
1497c961 PB |
35 | #define DEF_HELPER_1_1(name, ret, args) \ |
36 | DEF_HELPER(name, ret, args) \ | |
37 | static inline void gen_helper_##name(TCGv ret, TCGv arg1) \ | |
38 | { \ | |
39 | tcg_gen_helper_1_1(helper_##name, ret, arg1); \ | |
40 | } | |
41 | #define DEF_HELPER_1_2(name, ret, args) \ | |
42 | DEF_HELPER(name, ret, args) \ | |
43 | static inline void gen_helper_##name(TCGv ret, TCGv arg1, TCGv arg2) \ | |
44 | { \ | |
45 | tcg_gen_helper_1_2(helper_##name, ret, arg1, arg2); \ | |
46 | } | |
6ddbc6e4 PB |
47 | #define DEF_HELPER_1_3(name, ret, args) \ |
48 | DEF_HELPER(name, ret, args) \ | |
49 | static inline void gen_helper_##name(TCGv ret, \ | |
50 | TCGv arg1, TCGv arg2, TCGv arg3) \ | |
51 | { \ | |
52 | tcg_gen_helper_1_3(helper_##name, ret, arg1, arg2, arg3); \ | |
53 | } | |
8f8e3aa4 PB |
54 | #define DEF_HELPER_1_4(name, ret, args) \ |
55 | DEF_HELPER(name, ret, args) \ | |
56 | static inline void gen_helper_##name(TCGv ret, \ | |
57 | TCGv arg1, TCGv arg2, TCGv arg3, TCGv arg4) \ | |
58 | { \ | |
59 | tcg_gen_helper_1_4(helper_##name, ret, arg1, arg2, arg3, arg4); \ | |
60 | } | |
1497c961 | 61 | #else /* !GEN_HELPER */ |
d9ba4830 PB |
62 | #define DEF_HELPER_0_0 DEF_HELPER |
63 | #define DEF_HELPER_0_1 DEF_HELPER | |
64 | #define DEF_HELPER_0_2 DEF_HELPER | |
b0109805 | 65 | #define DEF_HELPER_0_3 DEF_HELPER |
d9ba4830 | 66 | #define DEF_HELPER_1_0 DEF_HELPER |
1497c961 PB |
67 | #define DEF_HELPER_1_1 DEF_HELPER |
68 | #define DEF_HELPER_1_2 DEF_HELPER | |
6ddbc6e4 | 69 | #define DEF_HELPER_1_3 DEF_HELPER |
8f8e3aa4 | 70 | #define DEF_HELPER_1_4 DEF_HELPER |
6ddbc6e4 | 71 | #define HELPER(x) glue(helper_,x) |
b26eefb6 PB |
72 | #endif |
73 | ||
1497c961 PB |
74 | DEF_HELPER_1_1(clz, uint32_t, (uint32_t)) |
75 | DEF_HELPER_1_1(sxtb16, uint32_t, (uint32_t)) | |
76 | DEF_HELPER_1_1(uxtb16, uint32_t, (uint32_t)) | |
77 | ||
78 | DEF_HELPER_1_2(add_setq, uint32_t, (uint32_t, uint32_t)) | |
79 | DEF_HELPER_1_2(add_saturate, uint32_t, (uint32_t, uint32_t)) | |
80 | DEF_HELPER_1_2(sub_saturate, uint32_t, (uint32_t, uint32_t)) | |
81 | DEF_HELPER_1_2(add_usaturate, uint32_t, (uint32_t, uint32_t)) | |
82 | DEF_HELPER_1_2(sub_usaturate, uint32_t, (uint32_t, uint32_t)) | |
83 | DEF_HELPER_1_1(double_saturate, uint32_t, (int32_t)) | |
3670669c PB |
84 | DEF_HELPER_1_2(sdiv, int32_t, (int32_t, int32_t)) |
85 | DEF_HELPER_1_2(udiv, uint32_t, (uint32_t, uint32_t)) | |
86 | DEF_HELPER_1_1(rbit, uint32_t, (uint32_t)) | |
ad69471c | 87 | DEF_HELPER_1_1(abs, uint32_t, (uint32_t)) |
1497c961 | 88 | |
6ddbc6e4 PB |
89 | #define PAS_OP(pfx) \ |
90 | DEF_HELPER_1_3(pfx ## add8, uint32_t, (uint32_t, uint32_t, uint32_t *)) \ | |
91 | DEF_HELPER_1_3(pfx ## sub8, uint32_t, (uint32_t, uint32_t, uint32_t *)) \ | |
92 | DEF_HELPER_1_3(pfx ## sub16, uint32_t, (uint32_t, uint32_t, uint32_t *)) \ | |
93 | DEF_HELPER_1_3(pfx ## add16, uint32_t, (uint32_t, uint32_t, uint32_t *)) \ | |
94 | DEF_HELPER_1_3(pfx ## addsubx, uint32_t, (uint32_t, uint32_t, uint32_t *)) \ | |
95 | DEF_HELPER_1_3(pfx ## subaddx, uint32_t, (uint32_t, uint32_t, uint32_t *)) | |
96 | ||
97 | PAS_OP(s) | |
98 | PAS_OP(u) | |
99 | #undef PAS_OP | |
100 | ||
101 | #define PAS_OP(pfx) \ | |
102 | DEF_HELPER_1_2(pfx ## add8, uint32_t, (uint32_t, uint32_t)) \ | |
103 | DEF_HELPER_1_2(pfx ## sub8, uint32_t, (uint32_t, uint32_t)) \ | |
104 | DEF_HELPER_1_2(pfx ## sub16, uint32_t, (uint32_t, uint32_t)) \ | |
105 | DEF_HELPER_1_2(pfx ## add16, uint32_t, (uint32_t, uint32_t)) \ | |
106 | DEF_HELPER_1_2(pfx ## addsubx, uint32_t, (uint32_t, uint32_t)) \ | |
107 | DEF_HELPER_1_2(pfx ## subaddx, uint32_t, (uint32_t, uint32_t)) | |
108 | PAS_OP(q) | |
109 | PAS_OP(sh) | |
110 | PAS_OP(uq) | |
111 | PAS_OP(uh) | |
112 | #undef PAS_OP | |
113 | ||
114 | DEF_HELPER_1_2(ssat, uint32_t, (uint32_t, uint32_t)) | |
115 | DEF_HELPER_1_2(usat, uint32_t, (uint32_t, uint32_t)) | |
116 | DEF_HELPER_1_2(ssat16, uint32_t, (uint32_t, uint32_t)) | |
117 | DEF_HELPER_1_2(usat16, uint32_t, (uint32_t, uint32_t)) | |
118 | ||
119 | DEF_HELPER_1_2(usad8, uint32_t, (uint32_t, uint32_t)) | |
120 | ||
5e3f878a PB |
121 | DEF_HELPER_1_1(logicq_cc, uint32_t, (uint64_t)) |
122 | ||
6ddbc6e4 | 123 | DEF_HELPER_1_3(sel_flags, uint32_t, (uint32_t, uint32_t, uint32_t)) |
d9ba4830 PB |
124 | DEF_HELPER_0_1(exception, void, (uint32_t)) |
125 | DEF_HELPER_0_0(wfi, void, (void)) | |
126 | ||
127 | DEF_HELPER_0_2(cpsr_write, void, (uint32_t, uint32_t)) | |
128 | DEF_HELPER_1_0(cpsr_read, uint32_t, (void)) | |
6ddbc6e4 | 129 | |
8984bd2e PB |
130 | DEF_HELPER_0_3(v7m_msr, void, (CPUState *, uint32_t, uint32_t)) |
131 | DEF_HELPER_1_2(v7m_mrs, uint32_t, (CPUState *, uint32_t)) | |
132 | ||
133 | DEF_HELPER_0_3(set_cp15, void, (CPUState *, uint32_t, uint32_t)) | |
134 | DEF_HELPER_1_2(get_cp15, uint32_t, (CPUState *, uint32_t)) | |
135 | ||
136 | DEF_HELPER_0_3(set_cp, void, (CPUState *, uint32_t, uint32_t)) | |
137 | DEF_HELPER_1_2(get_cp, uint32_t, (CPUState *, uint32_t)) | |
138 | ||
b0109805 PB |
139 | DEF_HELPER_1_2(get_r13_banked, uint32_t, (CPUState *, uint32_t)) |
140 | DEF_HELPER_0_3(set_r13_banked, void, (CPUState *, uint32_t, uint32_t)) | |
141 | ||
8f8e3aa4 PB |
142 | DEF_HELPER_0_2(mark_exclusive, void, (CPUState *, uint32_t)) |
143 | DEF_HELPER_1_2(test_exclusive, uint32_t, (CPUState *, uint32_t)) | |
144 | DEF_HELPER_0_1(clrex, void, (CPUState *)) | |
145 | ||
b0109805 PB |
146 | DEF_HELPER_1_1(get_user_reg, uint32_t, (uint32_t)) |
147 | DEF_HELPER_0_2(set_user_reg, void, (uint32_t, uint32_t)) | |
148 | ||
4373f3ce PB |
149 | DEF_HELPER_1_1(vfp_get_fpscr, uint32_t, (CPUState *)) |
150 | DEF_HELPER_0_2(vfp_set_fpscr, void, (CPUState *, uint32_t)) | |
151 | ||
152 | DEF_HELPER_1_3(vfp_adds, float32, (float32, float32, CPUState *)) | |
153 | DEF_HELPER_1_3(vfp_addd, float64, (float64, float64, CPUState *)) | |
154 | DEF_HELPER_1_3(vfp_subs, float32, (float32, float32, CPUState *)) | |
155 | DEF_HELPER_1_3(vfp_subd, float64, (float64, float64, CPUState *)) | |
156 | DEF_HELPER_1_3(vfp_muls, float32, (float32, float32, CPUState *)) | |
157 | DEF_HELPER_1_3(vfp_muld, float64, (float64, float64, CPUState *)) | |
158 | DEF_HELPER_1_3(vfp_divs, float32, (float32, float32, CPUState *)) | |
159 | DEF_HELPER_1_3(vfp_divd, float64, (float64, float64, CPUState *)) | |
160 | DEF_HELPER_1_1(vfp_negs, float32, (float32)) | |
161 | DEF_HELPER_1_1(vfp_negd, float64, (float64)) | |
162 | DEF_HELPER_1_1(vfp_abss, float32, (float32)) | |
163 | DEF_HELPER_1_1(vfp_absd, float64, (float64)) | |
164 | DEF_HELPER_1_2(vfp_sqrts, float32, (float32, CPUState *)) | |
165 | DEF_HELPER_1_2(vfp_sqrtd, float64, (float64, CPUState *)) | |
166 | DEF_HELPER_0_3(vfp_cmps, void, (float32, float32, CPUState *)) | |
167 | DEF_HELPER_0_3(vfp_cmpd, void, (float64, float64, CPUState *)) | |
168 | DEF_HELPER_0_3(vfp_cmpes, void, (float32, float32, CPUState *)) | |
169 | DEF_HELPER_0_3(vfp_cmped, void, (float64, float64, CPUState *)) | |
170 | ||
171 | DEF_HELPER_1_2(vfp_fcvtds, float64, (float32, CPUState *)) | |
172 | DEF_HELPER_1_2(vfp_fcvtsd, float32, (float64, CPUState *)) | |
173 | ||
174 | DEF_HELPER_1_2(vfp_uitos, float32, (float32, CPUState *)) | |
175 | DEF_HELPER_1_2(vfp_uitod, float64, (float32, CPUState *)) | |
176 | DEF_HELPER_1_2(vfp_sitos, float32, (float32, CPUState *)) | |
177 | DEF_HELPER_1_2(vfp_sitod, float64, (float32, CPUState *)) | |
178 | ||
179 | DEF_HELPER_1_2(vfp_touis, float32, (float32, CPUState *)) | |
180 | DEF_HELPER_1_2(vfp_touid, float32, (float64, CPUState *)) | |
181 | DEF_HELPER_1_2(vfp_touizs, float32, (float32, CPUState *)) | |
182 | DEF_HELPER_1_2(vfp_touizd, float32, (float64, CPUState *)) | |
183 | DEF_HELPER_1_2(vfp_tosis, float32, (float32, CPUState *)) | |
184 | DEF_HELPER_1_2(vfp_tosid, float32, (float64, CPUState *)) | |
185 | DEF_HELPER_1_2(vfp_tosizs, float32, (float32, CPUState *)) | |
186 | DEF_HELPER_1_2(vfp_tosizd, float32, (float64, CPUState *)) | |
187 | ||
188 | DEF_HELPER_1_3(vfp_toshs, float32, (float32, uint32_t, CPUState *)) | |
189 | DEF_HELPER_1_3(vfp_tosls, float32, (float32, uint32_t, CPUState *)) | |
190 | DEF_HELPER_1_3(vfp_touhs, float32, (float32, uint32_t, CPUState *)) | |
191 | DEF_HELPER_1_3(vfp_touls, float32, (float32, uint32_t, CPUState *)) | |
192 | DEF_HELPER_1_3(vfp_toshd, float64, (float64, uint32_t, CPUState *)) | |
193 | DEF_HELPER_1_3(vfp_tosld, float64, (float64, uint32_t, CPUState *)) | |
194 | DEF_HELPER_1_3(vfp_touhd, float64, (float64, uint32_t, CPUState *)) | |
195 | DEF_HELPER_1_3(vfp_tould, float64, (float64, uint32_t, CPUState *)) | |
196 | DEF_HELPER_1_3(vfp_shtos, float32, (float32, uint32_t, CPUState *)) | |
197 | DEF_HELPER_1_3(vfp_sltos, float32, (float32, uint32_t, CPUState *)) | |
198 | DEF_HELPER_1_3(vfp_uhtos, float32, (float32, uint32_t, CPUState *)) | |
199 | DEF_HELPER_1_3(vfp_ultos, float32, (float32, uint32_t, CPUState *)) | |
200 | DEF_HELPER_1_3(vfp_shtod, float64, (float64, uint32_t, CPUState *)) | |
201 | DEF_HELPER_1_3(vfp_sltod, float64, (float64, uint32_t, CPUState *)) | |
202 | DEF_HELPER_1_3(vfp_uhtod, float64, (float64, uint32_t, CPUState *)) | |
203 | DEF_HELPER_1_3(vfp_ultod, float64, (float64, uint32_t, CPUState *)) | |
204 | ||
205 | DEF_HELPER_1_3(recps_f32, float32, (float32, float32, CPUState *)) | |
206 | DEF_HELPER_1_3(rsqrts_f32, float32, (float32, float32, CPUState *)) | |
207 | DEF_HELPER_1_2(recpe_f32, float32, (float32, CPUState *)) | |
208 | DEF_HELPER_1_2(rsqrte_f32, float32, (float32, CPUState *)) | |
209 | DEF_HELPER_1_2(recpe_u32, uint32_t, (uint32_t, CPUState *)) | |
210 | DEF_HELPER_1_2(rsqrte_u32, uint32_t, (uint32_t, CPUState *)) | |
8f8e3aa4 | 211 | DEF_HELPER_1_4(neon_tbl, uint32_t, (uint32_t, uint32_t, uint32_t, uint32_t)) |
ad69471c PB |
212 | DEF_HELPER_1_2(neon_add_saturate_u64, uint64_t, (uint64_t, uint64_t)) |
213 | DEF_HELPER_1_2(neon_add_saturate_s64, uint64_t, (uint64_t, uint64_t)) | |
214 | DEF_HELPER_1_2(neon_sub_saturate_u64, uint64_t, (uint64_t, uint64_t)) | |
215 | DEF_HELPER_1_2(neon_sub_saturate_s64, uint64_t, (uint64_t, uint64_t)) | |
4373f3ce | 216 | |
8984bd2e PB |
217 | DEF_HELPER_1_2(add_cc, uint32_t, (uint32_t, uint32_t)) |
218 | DEF_HELPER_1_2(adc_cc, uint32_t, (uint32_t, uint32_t)) | |
219 | DEF_HELPER_1_2(sub_cc, uint32_t, (uint32_t, uint32_t)) | |
220 | DEF_HELPER_1_2(sbc_cc, uint32_t, (uint32_t, uint32_t)) | |
221 | ||
222 | DEF_HELPER_1_2(shl, uint32_t, (uint32_t, uint32_t)) | |
223 | DEF_HELPER_1_2(shr, uint32_t, (uint32_t, uint32_t)) | |
224 | DEF_HELPER_1_2(sar, uint32_t, (uint32_t, uint32_t)) | |
225 | DEF_HELPER_1_2(ror, uint32_t, (uint32_t, uint32_t)) | |
226 | DEF_HELPER_1_2(shl_cc, uint32_t, (uint32_t, uint32_t)) | |
227 | DEF_HELPER_1_2(shr_cc, uint32_t, (uint32_t, uint32_t)) | |
228 | DEF_HELPER_1_2(sar_cc, uint32_t, (uint32_t, uint32_t)) | |
229 | DEF_HELPER_1_2(ror_cc, uint32_t, (uint32_t, uint32_t)) | |
230 | ||
ad69471c PB |
231 | /* neon_helper.c */ |
232 | DEF_HELPER_1_3(neon_qadd_u8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
233 | DEF_HELPER_1_3(neon_qadd_s8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
234 | DEF_HELPER_1_3(neon_qadd_u16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
235 | DEF_HELPER_1_3(neon_qadd_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
236 | DEF_HELPER_1_3(neon_qsub_u8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
237 | DEF_HELPER_1_3(neon_qsub_s8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
238 | DEF_HELPER_1_3(neon_qsub_u16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
239 | DEF_HELPER_1_3(neon_qsub_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
240 | ||
241 | DEF_HELPER_1_2(neon_hadd_s8, uint32_t, (uint32_t, uint32_t)) | |
242 | DEF_HELPER_1_2(neon_hadd_u8, uint32_t, (uint32_t, uint32_t)) | |
243 | DEF_HELPER_1_2(neon_hadd_s16, uint32_t, (uint32_t, uint32_t)) | |
244 | DEF_HELPER_1_2(neon_hadd_u16, uint32_t, (uint32_t, uint32_t)) | |
245 | DEF_HELPER_1_2(neon_hadd_s32, int32_t, (int32_t, int32_t)) | |
246 | DEF_HELPER_1_2(neon_hadd_u32, uint32_t, (uint32_t, uint32_t)) | |
247 | DEF_HELPER_1_2(neon_rhadd_s8, uint32_t, (uint32_t, uint32_t)) | |
248 | DEF_HELPER_1_2(neon_rhadd_u8, uint32_t, (uint32_t, uint32_t)) | |
249 | DEF_HELPER_1_2(neon_rhadd_s16, uint32_t, (uint32_t, uint32_t)) | |
250 | DEF_HELPER_1_2(neon_rhadd_u16, uint32_t, (uint32_t, uint32_t)) | |
251 | DEF_HELPER_1_2(neon_rhadd_s32, int32_t, (int32_t, int32_t)) | |
252 | DEF_HELPER_1_2(neon_rhadd_u32, uint32_t, (uint32_t, uint32_t)) | |
253 | DEF_HELPER_1_2(neon_hsub_s8, uint32_t, (uint32_t, uint32_t)) | |
254 | DEF_HELPER_1_2(neon_hsub_u8, uint32_t, (uint32_t, uint32_t)) | |
255 | DEF_HELPER_1_2(neon_hsub_s16, uint32_t, (uint32_t, uint32_t)) | |
256 | DEF_HELPER_1_2(neon_hsub_u16, uint32_t, (uint32_t, uint32_t)) | |
257 | DEF_HELPER_1_2(neon_hsub_s32, int32_t, (int32_t, int32_t)) | |
258 | DEF_HELPER_1_2(neon_hsub_u32, uint32_t, (uint32_t, uint32_t)) | |
259 | ||
260 | DEF_HELPER_1_2(neon_cgt_u8, uint32_t, (uint32_t, uint32_t)) | |
261 | DEF_HELPER_1_2(neon_cgt_s8, uint32_t, (uint32_t, uint32_t)) | |
262 | DEF_HELPER_1_2(neon_cgt_u16, uint32_t, (uint32_t, uint32_t)) | |
263 | DEF_HELPER_1_2(neon_cgt_s16, uint32_t, (uint32_t, uint32_t)) | |
264 | DEF_HELPER_1_2(neon_cgt_u32, uint32_t, (uint32_t, uint32_t)) | |
265 | DEF_HELPER_1_2(neon_cgt_s32, uint32_t, (uint32_t, uint32_t)) | |
266 | DEF_HELPER_1_2(neon_cge_u8, uint32_t, (uint32_t, uint32_t)) | |
267 | DEF_HELPER_1_2(neon_cge_s8, uint32_t, (uint32_t, uint32_t)) | |
268 | DEF_HELPER_1_2(neon_cge_u16, uint32_t, (uint32_t, uint32_t)) | |
269 | DEF_HELPER_1_2(neon_cge_s16, uint32_t, (uint32_t, uint32_t)) | |
270 | DEF_HELPER_1_2(neon_cge_u32, uint32_t, (uint32_t, uint32_t)) | |
271 | DEF_HELPER_1_2(neon_cge_s32, uint32_t, (uint32_t, uint32_t)) | |
272 | ||
273 | DEF_HELPER_1_2(neon_min_u8, uint32_t, (uint32_t, uint32_t)) | |
274 | DEF_HELPER_1_2(neon_min_s8, uint32_t, (uint32_t, uint32_t)) | |
275 | DEF_HELPER_1_2(neon_min_u16, uint32_t, (uint32_t, uint32_t)) | |
276 | DEF_HELPER_1_2(neon_min_s16, uint32_t, (uint32_t, uint32_t)) | |
277 | DEF_HELPER_1_2(neon_min_u32, uint32_t, (uint32_t, uint32_t)) | |
278 | DEF_HELPER_1_2(neon_min_s32, uint32_t, (uint32_t, uint32_t)) | |
279 | DEF_HELPER_1_2(neon_max_u8, uint32_t, (uint32_t, uint32_t)) | |
280 | DEF_HELPER_1_2(neon_max_s8, uint32_t, (uint32_t, uint32_t)) | |
281 | DEF_HELPER_1_2(neon_max_u16, uint32_t, (uint32_t, uint32_t)) | |
282 | DEF_HELPER_1_2(neon_max_s16, uint32_t, (uint32_t, uint32_t)) | |
283 | DEF_HELPER_1_2(neon_max_u32, uint32_t, (uint32_t, uint32_t)) | |
284 | DEF_HELPER_1_2(neon_max_s32, uint32_t, (uint32_t, uint32_t)) | |
285 | DEF_HELPER_1_2(neon_pmin_u8, uint32_t, (uint32_t, uint32_t)) | |
286 | DEF_HELPER_1_2(neon_pmin_s8, uint32_t, (uint32_t, uint32_t)) | |
287 | DEF_HELPER_1_2(neon_pmin_u16, uint32_t, (uint32_t, uint32_t)) | |
288 | DEF_HELPER_1_2(neon_pmin_s16, uint32_t, (uint32_t, uint32_t)) | |
289 | DEF_HELPER_1_2(neon_pmin_u32, uint32_t, (uint32_t, uint32_t)) | |
290 | DEF_HELPER_1_2(neon_pmin_s32, uint32_t, (uint32_t, uint32_t)) | |
291 | DEF_HELPER_1_2(neon_pmax_u8, uint32_t, (uint32_t, uint32_t)) | |
292 | DEF_HELPER_1_2(neon_pmax_s8, uint32_t, (uint32_t, uint32_t)) | |
293 | DEF_HELPER_1_2(neon_pmax_u16, uint32_t, (uint32_t, uint32_t)) | |
294 | DEF_HELPER_1_2(neon_pmax_s16, uint32_t, (uint32_t, uint32_t)) | |
295 | DEF_HELPER_1_2(neon_pmax_u32, uint32_t, (uint32_t, uint32_t)) | |
296 | DEF_HELPER_1_2(neon_pmax_s32, uint32_t, (uint32_t, uint32_t)) | |
297 | ||
298 | DEF_HELPER_1_2(neon_abd_u8, uint32_t, (uint32_t, uint32_t)) | |
299 | DEF_HELPER_1_2(neon_abd_s8, uint32_t, (uint32_t, uint32_t)) | |
300 | DEF_HELPER_1_2(neon_abd_u16, uint32_t, (uint32_t, uint32_t)) | |
301 | DEF_HELPER_1_2(neon_abd_s16, uint32_t, (uint32_t, uint32_t)) | |
302 | DEF_HELPER_1_2(neon_abd_u32, uint32_t, (uint32_t, uint32_t)) | |
303 | DEF_HELPER_1_2(neon_abd_s32, uint32_t, (uint32_t, uint32_t)) | |
304 | ||
305 | DEF_HELPER_1_2(neon_shl_u8, uint32_t, (uint32_t, uint32_t)) | |
306 | DEF_HELPER_1_2(neon_shl_s8, uint32_t, (uint32_t, uint32_t)) | |
307 | DEF_HELPER_1_2(neon_shl_u16, uint32_t, (uint32_t, uint32_t)) | |
308 | DEF_HELPER_1_2(neon_shl_s16, uint32_t, (uint32_t, uint32_t)) | |
309 | DEF_HELPER_1_2(neon_shl_u32, uint32_t, (uint32_t, uint32_t)) | |
310 | DEF_HELPER_1_2(neon_shl_s32, uint32_t, (uint32_t, uint32_t)) | |
311 | DEF_HELPER_1_2(neon_shl_u64, uint64_t, (uint64_t, uint64_t)) | |
312 | DEF_HELPER_1_2(neon_shl_s64, uint64_t, (uint64_t, uint64_t)) | |
313 | DEF_HELPER_1_2(neon_rshl_u8, uint32_t, (uint32_t, uint32_t)) | |
314 | DEF_HELPER_1_2(neon_rshl_s8, uint32_t, (uint32_t, uint32_t)) | |
315 | DEF_HELPER_1_2(neon_rshl_u16, uint32_t, (uint32_t, uint32_t)) | |
316 | DEF_HELPER_1_2(neon_rshl_s16, uint32_t, (uint32_t, uint32_t)) | |
317 | DEF_HELPER_1_2(neon_rshl_u32, uint32_t, (uint32_t, uint32_t)) | |
318 | DEF_HELPER_1_2(neon_rshl_s32, uint32_t, (uint32_t, uint32_t)) | |
319 | DEF_HELPER_1_2(neon_rshl_u64, uint64_t, (uint64_t, uint64_t)) | |
320 | DEF_HELPER_1_2(neon_rshl_s64, uint64_t, (uint64_t, uint64_t)) | |
321 | DEF_HELPER_1_3(neon_qshl_u8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
322 | DEF_HELPER_1_3(neon_qshl_s8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
323 | DEF_HELPER_1_3(neon_qshl_u16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
324 | DEF_HELPER_1_3(neon_qshl_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
325 | DEF_HELPER_1_3(neon_qshl_u32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
326 | DEF_HELPER_1_3(neon_qshl_s32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
327 | DEF_HELPER_1_3(neon_qshl_u64, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
328 | DEF_HELPER_1_3(neon_qshl_s64, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
329 | DEF_HELPER_1_3(neon_qrshl_u8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
330 | DEF_HELPER_1_3(neon_qrshl_s8, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
331 | DEF_HELPER_1_3(neon_qrshl_u16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
332 | DEF_HELPER_1_3(neon_qrshl_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
333 | DEF_HELPER_1_3(neon_qrshl_u32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
334 | DEF_HELPER_1_3(neon_qrshl_s32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
335 | DEF_HELPER_1_3(neon_qrshl_u64, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
336 | DEF_HELPER_1_3(neon_qrshl_s64, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
337 | ||
338 | DEF_HELPER_1_2(neon_add_u8, uint32_t, (uint32_t, uint32_t)) | |
339 | DEF_HELPER_1_2(neon_add_u16, uint32_t, (uint32_t, uint32_t)) | |
340 | DEF_HELPER_1_2(neon_padd_u8, uint32_t, (uint32_t, uint32_t)) | |
341 | DEF_HELPER_1_2(neon_padd_u16, uint32_t, (uint32_t, uint32_t)) | |
342 | DEF_HELPER_1_2(neon_sub_u8, uint32_t, (uint32_t, uint32_t)) | |
343 | DEF_HELPER_1_2(neon_sub_u16, uint32_t, (uint32_t, uint32_t)) | |
344 | DEF_HELPER_1_2(neon_mul_u8, uint32_t, (uint32_t, uint32_t)) | |
345 | DEF_HELPER_1_2(neon_mul_u16, uint32_t, (uint32_t, uint32_t)) | |
346 | DEF_HELPER_1_2(neon_mul_p8, uint32_t, (uint32_t, uint32_t)) | |
347 | ||
348 | DEF_HELPER_1_2(neon_tst_u8, uint32_t, (uint32_t, uint32_t)) | |
349 | DEF_HELPER_1_2(neon_tst_u16, uint32_t, (uint32_t, uint32_t)) | |
350 | DEF_HELPER_1_2(neon_tst_u32, uint32_t, (uint32_t, uint32_t)) | |
351 | DEF_HELPER_1_2(neon_ceq_u8, uint32_t, (uint32_t, uint32_t)) | |
352 | DEF_HELPER_1_2(neon_ceq_u16, uint32_t, (uint32_t, uint32_t)) | |
353 | DEF_HELPER_1_2(neon_ceq_u32, uint32_t, (uint32_t, uint32_t)) | |
354 | ||
355 | DEF_HELPER_1_1(neon_abs_s8, uint32_t, (uint32_t)) | |
356 | DEF_HELPER_1_1(neon_abs_s16, uint32_t, (uint32_t)) | |
357 | DEF_HELPER_1_1(neon_clz_u8, uint32_t, (uint32_t)) | |
358 | DEF_HELPER_1_1(neon_clz_u16, uint32_t, (uint32_t)) | |
359 | DEF_HELPER_1_1(neon_cls_s8, uint32_t, (uint32_t)) | |
360 | DEF_HELPER_1_1(neon_cls_s16, uint32_t, (uint32_t)) | |
361 | DEF_HELPER_1_1(neon_cls_s32, uint32_t, (uint32_t)) | |
362 | DEF_HELPER_1_1(neon_cnt_u8, uint32_t, (uint32_t)) | |
363 | ||
364 | DEF_HELPER_1_3(neon_qdmulh_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
365 | DEF_HELPER_1_3(neon_qrdmulh_s16, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
366 | DEF_HELPER_1_3(neon_qdmulh_s32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
367 | DEF_HELPER_1_3(neon_qrdmulh_s32, uint32_t, (CPUState *, uint32_t, uint32_t)) | |
368 | ||
369 | DEF_HELPER_1_1(neon_narrow_u8, uint32_t, (uint64_t)) | |
370 | DEF_HELPER_1_1(neon_narrow_u16, uint32_t, (uint64_t)) | |
371 | DEF_HELPER_1_2(neon_narrow_sat_u8, uint32_t, (CPUState *, uint64_t)) | |
372 | DEF_HELPER_1_2(neon_narrow_sat_s8, uint32_t, (CPUState *, uint64_t)) | |
373 | DEF_HELPER_1_2(neon_narrow_sat_u16, uint32_t, (CPUState *, uint64_t)) | |
374 | DEF_HELPER_1_2(neon_narrow_sat_s16, uint32_t, (CPUState *, uint64_t)) | |
375 | DEF_HELPER_1_2(neon_narrow_sat_u32, uint32_t, (CPUState *, uint64_t)) | |
376 | DEF_HELPER_1_2(neon_narrow_sat_s32, uint32_t, (CPUState *, uint64_t)) | |
377 | DEF_HELPER_1_1(neon_narrow_high_u8, uint32_t, (uint64_t)) | |
378 | DEF_HELPER_1_1(neon_narrow_high_u16, uint32_t, (uint64_t)) | |
379 | DEF_HELPER_1_1(neon_narrow_round_high_u8, uint32_t, (uint64_t)) | |
380 | DEF_HELPER_1_1(neon_narrow_round_high_u16, uint32_t, (uint64_t)) | |
381 | DEF_HELPER_1_1(neon_widen_u8, uint64_t, (uint32_t)) | |
382 | DEF_HELPER_1_1(neon_widen_s8, uint64_t, (uint32_t)) | |
383 | DEF_HELPER_1_1(neon_widen_u16, uint64_t, (uint32_t)) | |
384 | DEF_HELPER_1_1(neon_widen_s16, uint64_t, (uint32_t)) | |
385 | ||
386 | DEF_HELPER_1_2(neon_addl_u16, uint64_t, (uint64_t, uint64_t)) | |
387 | DEF_HELPER_1_2(neon_addl_u32, uint64_t, (uint64_t, uint64_t)) | |
388 | DEF_HELPER_1_2(neon_paddl_u16, uint64_t, (uint64_t, uint64_t)) | |
389 | DEF_HELPER_1_2(neon_paddl_u32, uint64_t, (uint64_t, uint64_t)) | |
390 | DEF_HELPER_1_2(neon_subl_u16, uint64_t, (uint64_t, uint64_t)) | |
391 | DEF_HELPER_1_2(neon_subl_u32, uint64_t, (uint64_t, uint64_t)) | |
392 | DEF_HELPER_1_3(neon_addl_saturate_s32, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
393 | DEF_HELPER_1_3(neon_addl_saturate_s64, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
394 | DEF_HELPER_1_2(neon_abdl_u16, uint64_t, (uint32_t, uint32_t)) | |
395 | DEF_HELPER_1_2(neon_abdl_s16, uint64_t, (uint32_t, uint32_t)) | |
396 | DEF_HELPER_1_2(neon_abdl_u32, uint64_t, (uint32_t, uint32_t)) | |
397 | DEF_HELPER_1_2(neon_abdl_s32, uint64_t, (uint32_t, uint32_t)) | |
398 | DEF_HELPER_1_2(neon_abdl_u64, uint64_t, (uint32_t, uint32_t)) | |
399 | DEF_HELPER_1_2(neon_abdl_s64, uint64_t, (uint32_t, uint32_t)) | |
400 | DEF_HELPER_1_2(neon_mull_u8, uint64_t, (uint32_t, uint32_t)) | |
401 | DEF_HELPER_1_2(neon_mull_s8, uint64_t, (uint32_t, uint32_t)) | |
402 | DEF_HELPER_1_2(neon_mull_u16, uint64_t, (uint32_t, uint32_t)) | |
403 | DEF_HELPER_1_2(neon_mull_s16, uint64_t, (uint32_t, uint32_t)) | |
404 | ||
405 | DEF_HELPER_1_1(neon_negl_u16, uint64_t, (uint64_t)) | |
406 | DEF_HELPER_1_1(neon_negl_u32, uint64_t, (uint64_t)) | |
407 | DEF_HELPER_1_1(neon_negl_u64, uint64_t, (uint64_t)) | |
408 | ||
409 | DEF_HELPER_1_2(neon_qabs_s8, uint32_t, (CPUState *, uint32_t)) | |
410 | DEF_HELPER_1_2(neon_qabs_s16, uint32_t, (CPUState *, uint32_t)) | |
411 | DEF_HELPER_1_2(neon_qabs_s32, uint32_t, (CPUState *, uint32_t)) | |
412 | DEF_HELPER_1_2(neon_qneg_s8, uint32_t, (CPUState *, uint32_t)) | |
413 | DEF_HELPER_1_2(neon_qneg_s16, uint32_t, (CPUState *, uint32_t)) | |
414 | DEF_HELPER_1_2(neon_qneg_s32, uint32_t, (CPUState *, uint32_t)) | |
415 | ||
416 | DEF_HELPER_0_0(neon_trn_u8, void, (void)) | |
417 | DEF_HELPER_0_0(neon_trn_u16, void, (void)) | |
418 | DEF_HELPER_0_0(neon_unzip_u8, void, (void)) | |
419 | DEF_HELPER_0_0(neon_zip_u8, void, (void)) | |
420 | DEF_HELPER_0_0(neon_zip_u16, void, (void)) | |
421 | ||
422 | DEF_HELPER_1_2(neon_min_f32, uint32_t, (uint32_t, uint32_t)) | |
423 | DEF_HELPER_1_2(neon_max_f32, uint32_t, (uint32_t, uint32_t)) | |
424 | DEF_HELPER_1_2(neon_abd_f32, uint32_t, (uint32_t, uint32_t)) | |
425 | DEF_HELPER_1_2(neon_add_f32, uint32_t, (uint32_t, uint32_t)) | |
426 | DEF_HELPER_1_2(neon_sub_f32, uint32_t, (uint32_t, uint32_t)) | |
427 | DEF_HELPER_1_2(neon_mul_f32, uint32_t, (uint32_t, uint32_t)) | |
428 | DEF_HELPER_1_2(neon_ceq_f32, uint32_t, (uint32_t, uint32_t)) | |
429 | DEF_HELPER_1_2(neon_cge_f32, uint32_t, (uint32_t, uint32_t)) | |
430 | DEF_HELPER_1_2(neon_cgt_f32, uint32_t, (uint32_t, uint32_t)) | |
431 | DEF_HELPER_1_2(neon_acge_f32, uint32_t, (uint32_t, uint32_t)) | |
432 | DEF_HELPER_1_2(neon_acgt_f32, uint32_t, (uint32_t, uint32_t)) | |
433 | ||
e677137d PB |
434 | /* iwmmxt_helper.c */ |
435 | DEF_HELPER_1_2(iwmmxt_maddsq, uint64_t, (uint64_t, uint64_t)) | |
436 | DEF_HELPER_1_2(iwmmxt_madduq, uint64_t, (uint64_t, uint64_t)) | |
437 | DEF_HELPER_1_2(iwmmxt_sadb, uint64_t, (uint64_t, uint64_t)) | |
438 | DEF_HELPER_1_2(iwmmxt_sadw, uint64_t, (uint64_t, uint64_t)) | |
439 | DEF_HELPER_1_2(iwmmxt_mulslw, uint64_t, (uint64_t, uint64_t)) | |
440 | DEF_HELPER_1_2(iwmmxt_mulshw, uint64_t, (uint64_t, uint64_t)) | |
441 | DEF_HELPER_1_2(iwmmxt_mululw, uint64_t, (uint64_t, uint64_t)) | |
442 | DEF_HELPER_1_2(iwmmxt_muluhw, uint64_t, (uint64_t, uint64_t)) | |
443 | DEF_HELPER_1_2(iwmmxt_macsw, uint64_t, (uint64_t, uint64_t)) | |
444 | DEF_HELPER_1_2(iwmmxt_macuw, uint64_t, (uint64_t, uint64_t)) | |
445 | DEF_HELPER_1_1(iwmmxt_setpsr_nz, uint32_t, (uint64_t)) | |
446 | ||
447 | #define DEF_IWMMXT_HELPER_SIZE_ENV(name) \ | |
448 | DEF_HELPER_1_3(iwmmxt_##name##b, uint64_t, (CPUState *, uint64_t, uint64_t)) \ | |
449 | DEF_HELPER_1_3(iwmmxt_##name##w, uint64_t, (CPUState *, uint64_t, uint64_t)) \ | |
450 | DEF_HELPER_1_3(iwmmxt_##name##l, uint64_t, (CPUState *, uint64_t, uint64_t)) \ | |
451 | ||
452 | DEF_IWMMXT_HELPER_SIZE_ENV(unpackl) | |
453 | DEF_IWMMXT_HELPER_SIZE_ENV(unpackh) | |
454 | ||
455 | DEF_HELPER_1_2(iwmmxt_unpacklub, uint64_t, (CPUState *, uint64_t)) | |
456 | DEF_HELPER_1_2(iwmmxt_unpackluw, uint64_t, (CPUState *, uint64_t)) | |
457 | DEF_HELPER_1_2(iwmmxt_unpacklul, uint64_t, (CPUState *, uint64_t)) | |
458 | DEF_HELPER_1_2(iwmmxt_unpackhub, uint64_t, (CPUState *, uint64_t)) | |
459 | DEF_HELPER_1_2(iwmmxt_unpackhuw, uint64_t, (CPUState *, uint64_t)) | |
460 | DEF_HELPER_1_2(iwmmxt_unpackhul, uint64_t, (CPUState *, uint64_t)) | |
461 | DEF_HELPER_1_2(iwmmxt_unpacklsb, uint64_t, (CPUState *, uint64_t)) | |
462 | DEF_HELPER_1_2(iwmmxt_unpacklsw, uint64_t, (CPUState *, uint64_t)) | |
463 | DEF_HELPER_1_2(iwmmxt_unpacklsl, uint64_t, (CPUState *, uint64_t)) | |
464 | DEF_HELPER_1_2(iwmmxt_unpackhsb, uint64_t, (CPUState *, uint64_t)) | |
465 | DEF_HELPER_1_2(iwmmxt_unpackhsw, uint64_t, (CPUState *, uint64_t)) | |
466 | DEF_HELPER_1_2(iwmmxt_unpackhsl, uint64_t, (CPUState *, uint64_t)) | |
467 | ||
468 | DEF_IWMMXT_HELPER_SIZE_ENV(cmpeq) | |
469 | DEF_IWMMXT_HELPER_SIZE_ENV(cmpgtu) | |
470 | DEF_IWMMXT_HELPER_SIZE_ENV(cmpgts) | |
471 | ||
472 | DEF_IWMMXT_HELPER_SIZE_ENV(mins) | |
473 | DEF_IWMMXT_HELPER_SIZE_ENV(minu) | |
474 | DEF_IWMMXT_HELPER_SIZE_ENV(maxs) | |
475 | DEF_IWMMXT_HELPER_SIZE_ENV(maxu) | |
476 | ||
477 | DEF_IWMMXT_HELPER_SIZE_ENV(subn) | |
478 | DEF_IWMMXT_HELPER_SIZE_ENV(addn) | |
479 | DEF_IWMMXT_HELPER_SIZE_ENV(subu) | |
480 | DEF_IWMMXT_HELPER_SIZE_ENV(addu) | |
481 | DEF_IWMMXT_HELPER_SIZE_ENV(subs) | |
482 | DEF_IWMMXT_HELPER_SIZE_ENV(adds) | |
483 | ||
484 | DEF_HELPER_1_3(iwmmxt_avgb0, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
485 | DEF_HELPER_1_3(iwmmxt_avgb1, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
486 | DEF_HELPER_1_3(iwmmxt_avgw0, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
487 | DEF_HELPER_1_3(iwmmxt_avgw1, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
488 | ||
489 | DEF_HELPER_1_2(iwmmxt_msadb, uint64_t, (uint64_t, uint64_t)) | |
490 | ||
491 | DEF_HELPER_1_3(iwmmxt_align, uint64_t, (uint64_t, uint64_t, uint32_t)) | |
492 | DEF_HELPER_1_4(iwmmxt_insr, uint64_t, (uint64_t, uint32_t, uint32_t, uint32_t)) | |
493 | ||
494 | DEF_HELPER_1_1(iwmmxt_bcstb, uint64_t, (uint32_t)) | |
495 | DEF_HELPER_1_1(iwmmxt_bcstw, uint64_t, (uint32_t)) | |
496 | DEF_HELPER_1_1(iwmmxt_bcstl, uint64_t, (uint32_t)) | |
497 | ||
498 | DEF_HELPER_1_1(iwmmxt_addcb, uint64_t, (uint64_t)) | |
499 | DEF_HELPER_1_1(iwmmxt_addcw, uint64_t, (uint64_t)) | |
500 | DEF_HELPER_1_1(iwmmxt_addcl, uint64_t, (uint64_t)) | |
501 | ||
502 | DEF_HELPER_1_1(iwmmxt_msbb, uint32_t, (uint64_t)) | |
503 | DEF_HELPER_1_1(iwmmxt_msbw, uint32_t, (uint64_t)) | |
504 | DEF_HELPER_1_1(iwmmxt_msbl, uint32_t, (uint64_t)) | |
505 | ||
506 | DEF_HELPER_1_3(iwmmxt_srlw, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
507 | DEF_HELPER_1_3(iwmmxt_srll, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
508 | DEF_HELPER_1_3(iwmmxt_srlq, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
509 | DEF_HELPER_1_3(iwmmxt_sllw, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
510 | DEF_HELPER_1_3(iwmmxt_slll, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
511 | DEF_HELPER_1_3(iwmmxt_sllq, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
512 | DEF_HELPER_1_3(iwmmxt_sraw, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
513 | DEF_HELPER_1_3(iwmmxt_sral, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
514 | DEF_HELPER_1_3(iwmmxt_sraq, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
515 | DEF_HELPER_1_3(iwmmxt_rorw, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
516 | DEF_HELPER_1_3(iwmmxt_rorl, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
517 | DEF_HELPER_1_3(iwmmxt_rorq, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
518 | DEF_HELPER_1_3(iwmmxt_shufh, uint64_t, (CPUState *, uint64_t, uint32_t)) | |
519 | ||
520 | DEF_HELPER_1_3(iwmmxt_packuw, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
521 | DEF_HELPER_1_3(iwmmxt_packul, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
522 | DEF_HELPER_1_3(iwmmxt_packuq, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
523 | DEF_HELPER_1_3(iwmmxt_packsw, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
524 | DEF_HELPER_1_3(iwmmxt_packsl, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
525 | DEF_HELPER_1_3(iwmmxt_packsq, uint64_t, (CPUState *, uint64_t, uint64_t)) | |
526 | ||
527 | DEF_HELPER_1_3(iwmmxt_muladdsl, uint64_t, (uint64_t, uint32_t, uint32_t)) | |
528 | DEF_HELPER_1_3(iwmmxt_muladdsw, uint64_t, (uint64_t, uint32_t, uint32_t)) | |
529 | DEF_HELPER_1_3(iwmmxt_muladdswl, uint64_t, (uint64_t, uint32_t, uint32_t)) | |
530 | ||
1497c961 | 531 | #undef DEF_HELPER |
d9ba4830 PB |
532 | #undef DEF_HELPER_0_0 |
533 | #undef DEF_HELPER_0_1 | |
534 | #undef DEF_HELPER_0_2 | |
535 | #undef DEF_HELPER_1_0 | |
1497c961 PB |
536 | #undef DEF_HELPER_1_1 |
537 | #undef DEF_HELPER_1_2 | |
d9ba4830 | 538 | #undef DEF_HELPER_1_3 |
1497c961 | 539 | #undef GEN_HELPER |