1 #include "def-helper.h"
3 DEF_HELPER_FLAGS_1(clz
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
)
4 DEF_HELPER_FLAGS_1(sxtb16
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
)
5 DEF_HELPER_FLAGS_1(uxtb16
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
)
7 DEF_HELPER_3(add_setq
, i32
, env
, i32
, i32
)
8 DEF_HELPER_3(add_saturate
, i32
, env
, i32
, i32
)
9 DEF_HELPER_3(sub_saturate
, i32
, env
, i32
, i32
)
10 DEF_HELPER_3(add_usaturate
, i32
, env
, i32
, i32
)
11 DEF_HELPER_3(sub_usaturate
, i32
, env
, i32
, i32
)
12 DEF_HELPER_2(double_saturate
, i32
, env
, s32
)
13 DEF_HELPER_FLAGS_2(sdiv
, TCG_CALL_CONST
| TCG_CALL_PURE
, s32
, s32
, s32
)
14 DEF_HELPER_FLAGS_2(udiv
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
, i32
)
15 DEF_HELPER_FLAGS_1(rbit
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
)
18 DEF_HELPER_3(pfx ## add8, i32, i32, i32, ptr) \
19 DEF_HELPER_3(pfx ## sub8, i32, i32, i32, ptr) \
20 DEF_HELPER_3(pfx ## sub16, i32, i32, i32, ptr) \
21 DEF_HELPER_3(pfx ## add16, i32, i32, i32, ptr) \
22 DEF_HELPER_3(pfx ## addsubx, i32, i32, i32, ptr) \
23 DEF_HELPER_3(pfx ## subaddx, i32, i32, i32, ptr)
30 DEF_HELPER_2(pfx ## add8, i32, i32, i32) \
31 DEF_HELPER_2(pfx ## sub8, i32, i32, i32) \
32 DEF_HELPER_2(pfx ## sub16, i32, i32, i32) \
33 DEF_HELPER_2(pfx ## add16, i32, i32, i32) \
34 DEF_HELPER_2(pfx ## addsubx, i32, i32, i32) \
35 DEF_HELPER_2(pfx ## subaddx, i32, i32, i32)
42 DEF_HELPER_3(ssat
, i32
, env
, i32
, i32
)
43 DEF_HELPER_3(usat
, i32
, env
, i32
, i32
)
44 DEF_HELPER_3(ssat16
, i32
, env
, i32
, i32
)
45 DEF_HELPER_3(usat16
, i32
, env
, i32
, i32
)
47 DEF_HELPER_FLAGS_2(usad8
, TCG_CALL_CONST
| TCG_CALL_PURE
, i32
, i32
, i32
)
49 DEF_HELPER_1(logicq_cc
, i32
, i64
)
51 DEF_HELPER_FLAGS_3(sel_flags
, TCG_CALL_CONST
| TCG_CALL_PURE
,
53 DEF_HELPER_2(exception
, void, env
, i32
)
54 DEF_HELPER_1(wfi
, void, env
)
56 DEF_HELPER_3(cpsr_write
, void, env
, i32
, i32
)
57 DEF_HELPER_1(cpsr_read
, i32
, env
)
59 DEF_HELPER_3(v7m_msr
, void, env
, i32
, i32
)
60 DEF_HELPER_2(v7m_mrs
, i32
, env
, i32
)
62 DEF_HELPER_3(set_cp_reg
, void, env
, ptr
, i32
)
63 DEF_HELPER_2(get_cp_reg
, i32
, env
, ptr
)
64 DEF_HELPER_3(set_cp_reg64
, void, env
, ptr
, i64
)
65 DEF_HELPER_2(get_cp_reg64
, i64
, env
, ptr
)
67 DEF_HELPER_2(get_r13_banked
, i32
, env
, i32
)
68 DEF_HELPER_3(set_r13_banked
, void, env
, i32
, i32
)
70 DEF_HELPER_2(get_user_reg
, i32
, env
, i32
)
71 DEF_HELPER_3(set_user_reg
, void, env
, i32
, i32
)
73 DEF_HELPER_1(vfp_get_fpscr
, i32
, env
)
74 DEF_HELPER_2(vfp_set_fpscr
, void, env
, i32
)
76 DEF_HELPER_3(vfp_adds
, f32
, f32
, f32
, ptr
)
77 DEF_HELPER_3(vfp_addd
, f64
, f64
, f64
, ptr
)
78 DEF_HELPER_3(vfp_subs
, f32
, f32
, f32
, ptr
)
79 DEF_HELPER_3(vfp_subd
, f64
, f64
, f64
, ptr
)
80 DEF_HELPER_3(vfp_muls
, f32
, f32
, f32
, ptr
)
81 DEF_HELPER_3(vfp_muld
, f64
, f64
, f64
, ptr
)
82 DEF_HELPER_3(vfp_divs
, f32
, f32
, f32
, ptr
)
83 DEF_HELPER_3(vfp_divd
, f64
, f64
, f64
, ptr
)
84 DEF_HELPER_1(vfp_negs
, f32
, f32
)
85 DEF_HELPER_1(vfp_negd
, f64
, f64
)
86 DEF_HELPER_1(vfp_abss
, f32
, f32
)
87 DEF_HELPER_1(vfp_absd
, f64
, f64
)
88 DEF_HELPER_2(vfp_sqrts
, f32
, f32
, env
)
89 DEF_HELPER_2(vfp_sqrtd
, f64
, f64
, env
)
90 DEF_HELPER_3(vfp_cmps
, void, f32
, f32
, env
)
91 DEF_HELPER_3(vfp_cmpd
, void, f64
, f64
, env
)
92 DEF_HELPER_3(vfp_cmpes
, void, f32
, f32
, env
)
93 DEF_HELPER_3(vfp_cmped
, void, f64
, f64
, env
)
95 DEF_HELPER_2(vfp_fcvtds
, f64
, f32
, env
)
96 DEF_HELPER_2(vfp_fcvtsd
, f32
, f64
, env
)
98 DEF_HELPER_2(vfp_uitos
, f32
, i32
, ptr
)
99 DEF_HELPER_2(vfp_uitod
, f64
, i32
, ptr
)
100 DEF_HELPER_2(vfp_sitos
, f32
, i32
, ptr
)
101 DEF_HELPER_2(vfp_sitod
, f64
, i32
, ptr
)
103 DEF_HELPER_2(vfp_touis
, i32
, f32
, ptr
)
104 DEF_HELPER_2(vfp_touid
, i32
, f64
, ptr
)
105 DEF_HELPER_2(vfp_touizs
, i32
, f32
, ptr
)
106 DEF_HELPER_2(vfp_touizd
, i32
, f64
, ptr
)
107 DEF_HELPER_2(vfp_tosis
, i32
, f32
, ptr
)
108 DEF_HELPER_2(vfp_tosid
, i32
, f64
, ptr
)
109 DEF_HELPER_2(vfp_tosizs
, i32
, f32
, ptr
)
110 DEF_HELPER_2(vfp_tosizd
, i32
, f64
, ptr
)
112 DEF_HELPER_3(vfp_toshs
, i32
, f32
, i32
, ptr
)
113 DEF_HELPER_3(vfp_tosls
, i32
, f32
, i32
, ptr
)
114 DEF_HELPER_3(vfp_touhs
, i32
, f32
, i32
, ptr
)
115 DEF_HELPER_3(vfp_touls
, i32
, f32
, i32
, ptr
)
116 DEF_HELPER_3(vfp_toshd
, i64
, f64
, i32
, ptr
)
117 DEF_HELPER_3(vfp_tosld
, i64
, f64
, i32
, ptr
)
118 DEF_HELPER_3(vfp_touhd
, i64
, f64
, i32
, ptr
)
119 DEF_HELPER_3(vfp_tould
, i64
, f64
, i32
, ptr
)
120 DEF_HELPER_3(vfp_shtos
, f32
, i32
, i32
, ptr
)
121 DEF_HELPER_3(vfp_sltos
, f32
, i32
, i32
, ptr
)
122 DEF_HELPER_3(vfp_uhtos
, f32
, i32
, i32
, ptr
)
123 DEF_HELPER_3(vfp_ultos
, f32
, i32
, i32
, ptr
)
124 DEF_HELPER_3(vfp_shtod
, f64
, i64
, i32
, ptr
)
125 DEF_HELPER_3(vfp_sltod
, f64
, i64
, i32
, ptr
)
126 DEF_HELPER_3(vfp_uhtod
, f64
, i64
, i32
, ptr
)
127 DEF_HELPER_3(vfp_ultod
, f64
, i64
, i32
, ptr
)
129 DEF_HELPER_2(vfp_fcvt_f16_to_f32
, f32
, i32
, env
)
130 DEF_HELPER_2(vfp_fcvt_f32_to_f16
, i32
, f32
, env
)
131 DEF_HELPER_2(neon_fcvt_f16_to_f32
, f32
, i32
, env
)
132 DEF_HELPER_2(neon_fcvt_f32_to_f16
, i32
, f32
, env
)
134 DEF_HELPER_4(vfp_muladdd
, f64
, f64
, f64
, f64
, ptr
)
135 DEF_HELPER_4(vfp_muladds
, f32
, f32
, f32
, f32
, ptr
)
137 DEF_HELPER_3(recps_f32
, f32
, f32
, f32
, env
)
138 DEF_HELPER_3(rsqrts_f32
, f32
, f32
, f32
, env
)
139 DEF_HELPER_2(recpe_f32
, f32
, f32
, env
)
140 DEF_HELPER_2(rsqrte_f32
, f32
, f32
, env
)
141 DEF_HELPER_2(recpe_u32
, i32
, i32
, env
)
142 DEF_HELPER_2(rsqrte_u32
, i32
, i32
, env
)
143 DEF_HELPER_5(neon_tbl
, i32
, env
, i32
, i32
, i32
, i32
)
145 DEF_HELPER_3(adc_cc
, i32
, env
, i32
, i32
)
146 DEF_HELPER_3(sbc_cc
, i32
, env
, i32
, i32
)
148 DEF_HELPER_3(shl_cc
, i32
, env
, i32
, i32
)
149 DEF_HELPER_3(shr_cc
, i32
, env
, i32
, i32
)
150 DEF_HELPER_3(sar_cc
, i32
, env
, i32
, i32
)
151 DEF_HELPER_3(ror_cc
, i32
, env
, i32
, i32
)
154 DEF_HELPER_3(neon_qadd_u8
, i32
, env
, i32
, i32
)
155 DEF_HELPER_3(neon_qadd_s8
, i32
, env
, i32
, i32
)
156 DEF_HELPER_3(neon_qadd_u16
, i32
, env
, i32
, i32
)
157 DEF_HELPER_3(neon_qadd_s16
, i32
, env
, i32
, i32
)
158 DEF_HELPER_3(neon_qadd_u32
, i32
, env
, i32
, i32
)
159 DEF_HELPER_3(neon_qadd_s32
, i32
, env
, i32
, i32
)
160 DEF_HELPER_3(neon_qsub_u8
, i32
, env
, i32
, i32
)
161 DEF_HELPER_3(neon_qsub_s8
, i32
, env
, i32
, i32
)
162 DEF_HELPER_3(neon_qsub_u16
, i32
, env
, i32
, i32
)
163 DEF_HELPER_3(neon_qsub_s16
, i32
, env
, i32
, i32
)
164 DEF_HELPER_3(neon_qsub_u32
, i32
, env
, i32
, i32
)
165 DEF_HELPER_3(neon_qsub_s32
, i32
, env
, i32
, i32
)
166 DEF_HELPER_3(neon_qadd_u64
, i64
, env
, i64
, i64
)
167 DEF_HELPER_3(neon_qadd_s64
, i64
, env
, i64
, i64
)
168 DEF_HELPER_3(neon_qsub_u64
, i64
, env
, i64
, i64
)
169 DEF_HELPER_3(neon_qsub_s64
, i64
, env
, i64
, i64
)
171 DEF_HELPER_2(neon_hadd_s8
, i32
, i32
, i32
)
172 DEF_HELPER_2(neon_hadd_u8
, i32
, i32
, i32
)
173 DEF_HELPER_2(neon_hadd_s16
, i32
, i32
, i32
)
174 DEF_HELPER_2(neon_hadd_u16
, i32
, i32
, i32
)
175 DEF_HELPER_2(neon_hadd_s32
, s32
, s32
, s32
)
176 DEF_HELPER_2(neon_hadd_u32
, i32
, i32
, i32
)
177 DEF_HELPER_2(neon_rhadd_s8
, i32
, i32
, i32
)
178 DEF_HELPER_2(neon_rhadd_u8
, i32
, i32
, i32
)
179 DEF_HELPER_2(neon_rhadd_s16
, i32
, i32
, i32
)
180 DEF_HELPER_2(neon_rhadd_u16
, i32
, i32
, i32
)
181 DEF_HELPER_2(neon_rhadd_s32
, s32
, s32
, s32
)
182 DEF_HELPER_2(neon_rhadd_u32
, i32
, i32
, i32
)
183 DEF_HELPER_2(neon_hsub_s8
, i32
, i32
, i32
)
184 DEF_HELPER_2(neon_hsub_u8
, i32
, i32
, i32
)
185 DEF_HELPER_2(neon_hsub_s16
, i32
, i32
, i32
)
186 DEF_HELPER_2(neon_hsub_u16
, i32
, i32
, i32
)
187 DEF_HELPER_2(neon_hsub_s32
, s32
, s32
, s32
)
188 DEF_HELPER_2(neon_hsub_u32
, i32
, i32
, i32
)
190 DEF_HELPER_2(neon_cgt_u8
, i32
, i32
, i32
)
191 DEF_HELPER_2(neon_cgt_s8
, i32
, i32
, i32
)
192 DEF_HELPER_2(neon_cgt_u16
, i32
, i32
, i32
)
193 DEF_HELPER_2(neon_cgt_s16
, i32
, i32
, i32
)
194 DEF_HELPER_2(neon_cgt_u32
, i32
, i32
, i32
)
195 DEF_HELPER_2(neon_cgt_s32
, i32
, i32
, i32
)
196 DEF_HELPER_2(neon_cge_u8
, i32
, i32
, i32
)
197 DEF_HELPER_2(neon_cge_s8
, i32
, i32
, i32
)
198 DEF_HELPER_2(neon_cge_u16
, i32
, i32
, i32
)
199 DEF_HELPER_2(neon_cge_s16
, i32
, i32
, i32
)
200 DEF_HELPER_2(neon_cge_u32
, i32
, i32
, i32
)
201 DEF_HELPER_2(neon_cge_s32
, i32
, i32
, i32
)
203 DEF_HELPER_2(neon_min_u8
, i32
, i32
, i32
)
204 DEF_HELPER_2(neon_min_s8
, i32
, i32
, i32
)
205 DEF_HELPER_2(neon_min_u16
, i32
, i32
, i32
)
206 DEF_HELPER_2(neon_min_s16
, i32
, i32
, i32
)
207 DEF_HELPER_2(neon_min_u32
, i32
, i32
, i32
)
208 DEF_HELPER_2(neon_min_s32
, i32
, i32
, i32
)
209 DEF_HELPER_2(neon_max_u8
, i32
, i32
, i32
)
210 DEF_HELPER_2(neon_max_s8
, i32
, i32
, i32
)
211 DEF_HELPER_2(neon_max_u16
, i32
, i32
, i32
)
212 DEF_HELPER_2(neon_max_s16
, i32
, i32
, i32
)
213 DEF_HELPER_2(neon_max_u32
, i32
, i32
, i32
)
214 DEF_HELPER_2(neon_max_s32
, i32
, i32
, i32
)
215 DEF_HELPER_2(neon_pmin_u8
, i32
, i32
, i32
)
216 DEF_HELPER_2(neon_pmin_s8
, i32
, i32
, i32
)
217 DEF_HELPER_2(neon_pmin_u16
, i32
, i32
, i32
)
218 DEF_HELPER_2(neon_pmin_s16
, i32
, i32
, i32
)
219 DEF_HELPER_2(neon_pmax_u8
, i32
, i32
, i32
)
220 DEF_HELPER_2(neon_pmax_s8
, i32
, i32
, i32
)
221 DEF_HELPER_2(neon_pmax_u16
, i32
, i32
, i32
)
222 DEF_HELPER_2(neon_pmax_s16
, i32
, i32
, i32
)
224 DEF_HELPER_2(neon_abd_u8
, i32
, i32
, i32
)
225 DEF_HELPER_2(neon_abd_s8
, i32
, i32
, i32
)
226 DEF_HELPER_2(neon_abd_u16
, i32
, i32
, i32
)
227 DEF_HELPER_2(neon_abd_s16
, i32
, i32
, i32
)
228 DEF_HELPER_2(neon_abd_u32
, i32
, i32
, i32
)
229 DEF_HELPER_2(neon_abd_s32
, i32
, i32
, i32
)
231 DEF_HELPER_2(neon_shl_u8
, i32
, i32
, i32
)
232 DEF_HELPER_2(neon_shl_s8
, i32
, i32
, i32
)
233 DEF_HELPER_2(neon_shl_u16
, i32
, i32
, i32
)
234 DEF_HELPER_2(neon_shl_s16
, i32
, i32
, i32
)
235 DEF_HELPER_2(neon_shl_u32
, i32
, i32
, i32
)
236 DEF_HELPER_2(neon_shl_s32
, i32
, i32
, i32
)
237 DEF_HELPER_2(neon_shl_u64
, i64
, i64
, i64
)
238 DEF_HELPER_2(neon_shl_s64
, i64
, i64
, i64
)
239 DEF_HELPER_2(neon_rshl_u8
, i32
, i32
, i32
)
240 DEF_HELPER_2(neon_rshl_s8
, i32
, i32
, i32
)
241 DEF_HELPER_2(neon_rshl_u16
, i32
, i32
, i32
)
242 DEF_HELPER_2(neon_rshl_s16
, i32
, i32
, i32
)
243 DEF_HELPER_2(neon_rshl_u32
, i32
, i32
, i32
)
244 DEF_HELPER_2(neon_rshl_s32
, i32
, i32
, i32
)
245 DEF_HELPER_2(neon_rshl_u64
, i64
, i64
, i64
)
246 DEF_HELPER_2(neon_rshl_s64
, i64
, i64
, i64
)
247 DEF_HELPER_3(neon_qshl_u8
, i32
, env
, i32
, i32
)
248 DEF_HELPER_3(neon_qshl_s8
, i32
, env
, i32
, i32
)
249 DEF_HELPER_3(neon_qshl_u16
, i32
, env
, i32
, i32
)
250 DEF_HELPER_3(neon_qshl_s16
, i32
, env
, i32
, i32
)
251 DEF_HELPER_3(neon_qshl_u32
, i32
, env
, i32
, i32
)
252 DEF_HELPER_3(neon_qshl_s32
, i32
, env
, i32
, i32
)
253 DEF_HELPER_3(neon_qshl_u64
, i64
, env
, i64
, i64
)
254 DEF_HELPER_3(neon_qshl_s64
, i64
, env
, i64
, i64
)
255 DEF_HELPER_3(neon_qshlu_s8
, i32
, env
, i32
, i32
);
256 DEF_HELPER_3(neon_qshlu_s16
, i32
, env
, i32
, i32
);
257 DEF_HELPER_3(neon_qshlu_s32
, i32
, env
, i32
, i32
);
258 DEF_HELPER_3(neon_qshlu_s64
, i64
, env
, i64
, i64
);
259 DEF_HELPER_3(neon_qrshl_u8
, i32
, env
, i32
, i32
)
260 DEF_HELPER_3(neon_qrshl_s8
, i32
, env
, i32
, i32
)
261 DEF_HELPER_3(neon_qrshl_u16
, i32
, env
, i32
, i32
)
262 DEF_HELPER_3(neon_qrshl_s16
, i32
, env
, i32
, i32
)
263 DEF_HELPER_3(neon_qrshl_u32
, i32
, env
, i32
, i32
)
264 DEF_HELPER_3(neon_qrshl_s32
, i32
, env
, i32
, i32
)
265 DEF_HELPER_3(neon_qrshl_u64
, i64
, env
, i64
, i64
)
266 DEF_HELPER_3(neon_qrshl_s64
, i64
, env
, i64
, i64
)
268 DEF_HELPER_2(neon_add_u8
, i32
, i32
, i32
)
269 DEF_HELPER_2(neon_add_u16
, i32
, i32
, i32
)
270 DEF_HELPER_2(neon_padd_u8
, i32
, i32
, i32
)
271 DEF_HELPER_2(neon_padd_u16
, i32
, i32
, i32
)
272 DEF_HELPER_2(neon_sub_u8
, i32
, i32
, i32
)
273 DEF_HELPER_2(neon_sub_u16
, i32
, i32
, i32
)
274 DEF_HELPER_2(neon_mul_u8
, i32
, i32
, i32
)
275 DEF_HELPER_2(neon_mul_u16
, i32
, i32
, i32
)
276 DEF_HELPER_2(neon_mul_p8
, i32
, i32
, i32
)
277 DEF_HELPER_2(neon_mull_p8
, i64
, i32
, i32
)
279 DEF_HELPER_2(neon_tst_u8
, i32
, i32
, i32
)
280 DEF_HELPER_2(neon_tst_u16
, i32
, i32
, i32
)
281 DEF_HELPER_2(neon_tst_u32
, i32
, i32
, i32
)
282 DEF_HELPER_2(neon_ceq_u8
, i32
, i32
, i32
)
283 DEF_HELPER_2(neon_ceq_u16
, i32
, i32
, i32
)
284 DEF_HELPER_2(neon_ceq_u32
, i32
, i32
, i32
)
286 DEF_HELPER_1(neon_abs_s8
, i32
, i32
)
287 DEF_HELPER_1(neon_abs_s16
, i32
, i32
)
288 DEF_HELPER_1(neon_clz_u8
, i32
, i32
)
289 DEF_HELPER_1(neon_clz_u16
, i32
, i32
)
290 DEF_HELPER_1(neon_cls_s8
, i32
, i32
)
291 DEF_HELPER_1(neon_cls_s16
, i32
, i32
)
292 DEF_HELPER_1(neon_cls_s32
, i32
, i32
)
293 DEF_HELPER_1(neon_cnt_u8
, i32
, i32
)
295 DEF_HELPER_3(neon_qdmulh_s16
, i32
, env
, i32
, i32
)
296 DEF_HELPER_3(neon_qrdmulh_s16
, i32
, env
, i32
, i32
)
297 DEF_HELPER_3(neon_qdmulh_s32
, i32
, env
, i32
, i32
)
298 DEF_HELPER_3(neon_qrdmulh_s32
, i32
, env
, i32
, i32
)
300 DEF_HELPER_1(neon_narrow_u8
, i32
, i64
)
301 DEF_HELPER_1(neon_narrow_u16
, i32
, i64
)
302 DEF_HELPER_2(neon_unarrow_sat8
, i32
, env
, i64
)
303 DEF_HELPER_2(neon_narrow_sat_u8
, i32
, env
, i64
)
304 DEF_HELPER_2(neon_narrow_sat_s8
, i32
, env
, i64
)
305 DEF_HELPER_2(neon_unarrow_sat16
, i32
, env
, i64
)
306 DEF_HELPER_2(neon_narrow_sat_u16
, i32
, env
, i64
)
307 DEF_HELPER_2(neon_narrow_sat_s16
, i32
, env
, i64
)
308 DEF_HELPER_2(neon_unarrow_sat32
, i32
, env
, i64
)
309 DEF_HELPER_2(neon_narrow_sat_u32
, i32
, env
, i64
)
310 DEF_HELPER_2(neon_narrow_sat_s32
, i32
, env
, i64
)
311 DEF_HELPER_1(neon_narrow_high_u8
, i32
, i64
)
312 DEF_HELPER_1(neon_narrow_high_u16
, i32
, i64
)
313 DEF_HELPER_1(neon_narrow_round_high_u8
, i32
, i64
)
314 DEF_HELPER_1(neon_narrow_round_high_u16
, i32
, i64
)
315 DEF_HELPER_1(neon_widen_u8
, i64
, i32
)
316 DEF_HELPER_1(neon_widen_s8
, i64
, i32
)
317 DEF_HELPER_1(neon_widen_u16
, i64
, i32
)
318 DEF_HELPER_1(neon_widen_s16
, i64
, i32
)
320 DEF_HELPER_2(neon_addl_u16
, i64
, i64
, i64
)
321 DEF_HELPER_2(neon_addl_u32
, i64
, i64
, i64
)
322 DEF_HELPER_2(neon_paddl_u16
, i64
, i64
, i64
)
323 DEF_HELPER_2(neon_paddl_u32
, i64
, i64
, i64
)
324 DEF_HELPER_2(neon_subl_u16
, i64
, i64
, i64
)
325 DEF_HELPER_2(neon_subl_u32
, i64
, i64
, i64
)
326 DEF_HELPER_3(neon_addl_saturate_s32
, i64
, env
, i64
, i64
)
327 DEF_HELPER_3(neon_addl_saturate_s64
, i64
, env
, i64
, i64
)
328 DEF_HELPER_2(neon_abdl_u16
, i64
, i32
, i32
)
329 DEF_HELPER_2(neon_abdl_s16
, i64
, i32
, i32
)
330 DEF_HELPER_2(neon_abdl_u32
, i64
, i32
, i32
)
331 DEF_HELPER_2(neon_abdl_s32
, i64
, i32
, i32
)
332 DEF_HELPER_2(neon_abdl_u64
, i64
, i32
, i32
)
333 DEF_HELPER_2(neon_abdl_s64
, i64
, i32
, i32
)
334 DEF_HELPER_2(neon_mull_u8
, i64
, i32
, i32
)
335 DEF_HELPER_2(neon_mull_s8
, i64
, i32
, i32
)
336 DEF_HELPER_2(neon_mull_u16
, i64
, i32
, i32
)
337 DEF_HELPER_2(neon_mull_s16
, i64
, i32
, i32
)
339 DEF_HELPER_1(neon_negl_u16
, i64
, i64
)
340 DEF_HELPER_1(neon_negl_u32
, i64
, i64
)
342 DEF_HELPER_2(neon_qabs_s8
, i32
, env
, i32
)
343 DEF_HELPER_2(neon_qabs_s16
, i32
, env
, i32
)
344 DEF_HELPER_2(neon_qabs_s32
, i32
, env
, i32
)
345 DEF_HELPER_2(neon_qneg_s8
, i32
, env
, i32
)
346 DEF_HELPER_2(neon_qneg_s16
, i32
, env
, i32
)
347 DEF_HELPER_2(neon_qneg_s32
, i32
, env
, i32
)
349 DEF_HELPER_3(neon_min_f32
, i32
, i32
, i32
, ptr
)
350 DEF_HELPER_3(neon_max_f32
, i32
, i32
, i32
, ptr
)
351 DEF_HELPER_3(neon_abd_f32
, i32
, i32
, i32
, ptr
)
352 DEF_HELPER_3(neon_ceq_f32
, i32
, i32
, i32
, ptr
)
353 DEF_HELPER_3(neon_cge_f32
, i32
, i32
, i32
, ptr
)
354 DEF_HELPER_3(neon_cgt_f32
, i32
, i32
, i32
, ptr
)
355 DEF_HELPER_3(neon_acge_f32
, i32
, i32
, i32
, ptr
)
356 DEF_HELPER_3(neon_acgt_f32
, i32
, i32
, i32
, ptr
)
358 /* iwmmxt_helper.c */
359 DEF_HELPER_2(iwmmxt_maddsq
, i64
, i64
, i64
)
360 DEF_HELPER_2(iwmmxt_madduq
, i64
, i64
, i64
)
361 DEF_HELPER_2(iwmmxt_sadb
, i64
, i64
, i64
)
362 DEF_HELPER_2(iwmmxt_sadw
, i64
, i64
, i64
)
363 DEF_HELPER_2(iwmmxt_mulslw
, i64
, i64
, i64
)
364 DEF_HELPER_2(iwmmxt_mulshw
, i64
, i64
, i64
)
365 DEF_HELPER_2(iwmmxt_mululw
, i64
, i64
, i64
)
366 DEF_HELPER_2(iwmmxt_muluhw
, i64
, i64
, i64
)
367 DEF_HELPER_2(iwmmxt_macsw
, i64
, i64
, i64
)
368 DEF_HELPER_2(iwmmxt_macuw
, i64
, i64
, i64
)
369 DEF_HELPER_1(iwmmxt_setpsr_nz
, i32
, i64
)
371 #define DEF_IWMMXT_HELPER_SIZE_ENV(name) \
372 DEF_HELPER_3(iwmmxt_##name##b, i64, env, i64, i64) \
373 DEF_HELPER_3(iwmmxt_##name##w, i64, env, i64, i64) \
374 DEF_HELPER_3(iwmmxt_##name##l, i64, env, i64, i64) \
376 DEF_IWMMXT_HELPER_SIZE_ENV(unpackl)
377 DEF_IWMMXT_HELPER_SIZE_ENV(unpackh
)
379 DEF_HELPER_2(iwmmxt_unpacklub
, i64
, env
, i64
)
380 DEF_HELPER_2(iwmmxt_unpackluw
, i64
, env
, i64
)
381 DEF_HELPER_2(iwmmxt_unpacklul
, i64
, env
, i64
)
382 DEF_HELPER_2(iwmmxt_unpackhub
, i64
, env
, i64
)
383 DEF_HELPER_2(iwmmxt_unpackhuw
, i64
, env
, i64
)
384 DEF_HELPER_2(iwmmxt_unpackhul
, i64
, env
, i64
)
385 DEF_HELPER_2(iwmmxt_unpacklsb
, i64
, env
, i64
)
386 DEF_HELPER_2(iwmmxt_unpacklsw
, i64
, env
, i64
)
387 DEF_HELPER_2(iwmmxt_unpacklsl
, i64
, env
, i64
)
388 DEF_HELPER_2(iwmmxt_unpackhsb
, i64
, env
, i64
)
389 DEF_HELPER_2(iwmmxt_unpackhsw
, i64
, env
, i64
)
390 DEF_HELPER_2(iwmmxt_unpackhsl
, i64
, env
, i64
)
392 DEF_IWMMXT_HELPER_SIZE_ENV(cmpeq
)
393 DEF_IWMMXT_HELPER_SIZE_ENV(cmpgtu
)
394 DEF_IWMMXT_HELPER_SIZE_ENV(cmpgts
)
396 DEF_IWMMXT_HELPER_SIZE_ENV(mins
)
397 DEF_IWMMXT_HELPER_SIZE_ENV(minu
)
398 DEF_IWMMXT_HELPER_SIZE_ENV(maxs
)
399 DEF_IWMMXT_HELPER_SIZE_ENV(maxu
)
401 DEF_IWMMXT_HELPER_SIZE_ENV(subn
)
402 DEF_IWMMXT_HELPER_SIZE_ENV(addn
)
403 DEF_IWMMXT_HELPER_SIZE_ENV(subu
)
404 DEF_IWMMXT_HELPER_SIZE_ENV(addu
)
405 DEF_IWMMXT_HELPER_SIZE_ENV(subs
)
406 DEF_IWMMXT_HELPER_SIZE_ENV(adds
)
408 DEF_HELPER_3(iwmmxt_avgb0
, i64
, env
, i64
, i64
)
409 DEF_HELPER_3(iwmmxt_avgb1
, i64
, env
, i64
, i64
)
410 DEF_HELPER_3(iwmmxt_avgw0
, i64
, env
, i64
, i64
)
411 DEF_HELPER_3(iwmmxt_avgw1
, i64
, env
, i64
, i64
)
413 DEF_HELPER_2(iwmmxt_msadb
, i64
, i64
, i64
)
415 DEF_HELPER_3(iwmmxt_align
, i64
, i64
, i64
, i32
)
416 DEF_HELPER_4(iwmmxt_insr
, i64
, i64
, i32
, i32
, i32
)
418 DEF_HELPER_1(iwmmxt_bcstb
, i64
, i32
)
419 DEF_HELPER_1(iwmmxt_bcstw
, i64
, i32
)
420 DEF_HELPER_1(iwmmxt_bcstl
, i64
, i32
)
422 DEF_HELPER_1(iwmmxt_addcb
, i64
, i64
)
423 DEF_HELPER_1(iwmmxt_addcw
, i64
, i64
)
424 DEF_HELPER_1(iwmmxt_addcl
, i64
, i64
)
426 DEF_HELPER_1(iwmmxt_msbb
, i32
, i64
)
427 DEF_HELPER_1(iwmmxt_msbw
, i32
, i64
)
428 DEF_HELPER_1(iwmmxt_msbl
, i32
, i64
)
430 DEF_HELPER_3(iwmmxt_srlw
, i64
, env
, i64
, i32
)
431 DEF_HELPER_3(iwmmxt_srll
, i64
, env
, i64
, i32
)
432 DEF_HELPER_3(iwmmxt_srlq
, i64
, env
, i64
, i32
)
433 DEF_HELPER_3(iwmmxt_sllw
, i64
, env
, i64
, i32
)
434 DEF_HELPER_3(iwmmxt_slll
, i64
, env
, i64
, i32
)
435 DEF_HELPER_3(iwmmxt_sllq
, i64
, env
, i64
, i32
)
436 DEF_HELPER_3(iwmmxt_sraw
, i64
, env
, i64
, i32
)
437 DEF_HELPER_3(iwmmxt_sral
, i64
, env
, i64
, i32
)
438 DEF_HELPER_3(iwmmxt_sraq
, i64
, env
, i64
, i32
)
439 DEF_HELPER_3(iwmmxt_rorw
, i64
, env
, i64
, i32
)
440 DEF_HELPER_3(iwmmxt_rorl
, i64
, env
, i64
, i32
)
441 DEF_HELPER_3(iwmmxt_rorq
, i64
, env
, i64
, i32
)
442 DEF_HELPER_3(iwmmxt_shufh
, i64
, env
, i64
, i32
)
444 DEF_HELPER_3(iwmmxt_packuw
, i64
, env
, i64
, i64
)
445 DEF_HELPER_3(iwmmxt_packul
, i64
, env
, i64
, i64
)
446 DEF_HELPER_3(iwmmxt_packuq
, i64
, env
, i64
, i64
)
447 DEF_HELPER_3(iwmmxt_packsw
, i64
, env
, i64
, i64
)
448 DEF_HELPER_3(iwmmxt_packsl
, i64
, env
, i64
, i64
)
449 DEF_HELPER_3(iwmmxt_packsq
, i64
, env
, i64
, i64
)
451 DEF_HELPER_3(iwmmxt_muladdsl
, i64
, i64
, i32
, i32
)
452 DEF_HELPER_3(iwmmxt_muladdsw
, i64
, i64
, i32
, i32
)
453 DEF_HELPER_3(iwmmxt_muladdswl
, i64
, i64
, i32
, i32
)
455 DEF_HELPER_3(neon_unzip8
, void, env
, i32
, i32
)
456 DEF_HELPER_3(neon_unzip16
, void, env
, i32
, i32
)
457 DEF_HELPER_3(neon_qunzip8
, void, env
, i32
, i32
)
458 DEF_HELPER_3(neon_qunzip16
, void, env
, i32
, i32
)
459 DEF_HELPER_3(neon_qunzip32
, void, env
, i32
, i32
)
460 DEF_HELPER_3(neon_zip8
, void, env
, i32
, i32
)
461 DEF_HELPER_3(neon_zip16
, void, env
, i32
, i32
)
462 DEF_HELPER_3(neon_qzip8
, void, env
, i32
, i32
)
463 DEF_HELPER_3(neon_qzip16
, void, env
, i32
, i32
)
464 DEF_HELPER_3(neon_qzip32
, void, env
, i32
, i32
)
466 #include "def-helper.h"