]> git.proxmox.com Git - mirror_qemu.git/blame - target/arm/helper.h
target/ppc: introduce GEN_VSX_HELPER_R2 macro to fpu_helper.c
[mirror_qemu.git] / target / arm / helper.h
CommitLineData
4b3d4829
AJ
1DEF_HELPER_FLAGS_1(sxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
2DEF_HELPER_FLAGS_1(uxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
a7812ae4 3
9ef39277
BS
4DEF_HELPER_3(add_setq, i32, env, i32, i32)
5DEF_HELPER_3(add_saturate, i32, env, i32, i32)
6DEF_HELPER_3(sub_saturate, i32, env, i32, i32)
7DEF_HELPER_3(add_usaturate, i32, env, i32, i32)
8DEF_HELPER_3(sub_usaturate, i32, env, i32, i32)
9DEF_HELPER_2(double_saturate, i32, env, s32)
4b3d4829
AJ
10DEF_HELPER_FLAGS_2(sdiv, TCG_CALL_NO_RWG_SE, s32, s32, s32)
11DEF_HELPER_FLAGS_2(udiv, TCG_CALL_NO_RWG_SE, i32, i32, i32)
12DEF_HELPER_FLAGS_1(rbit, TCG_CALL_NO_RWG_SE, i32, i32)
1497c961 13
6ddbc6e4 14#define PAS_OP(pfx) \
a7812ae4
PB
15 DEF_HELPER_3(pfx ## add8, i32, i32, i32, ptr) \
16 DEF_HELPER_3(pfx ## sub8, i32, i32, i32, ptr) \
17 DEF_HELPER_3(pfx ## sub16, i32, i32, i32, ptr) \
18 DEF_HELPER_3(pfx ## add16, i32, i32, i32, ptr) \
19 DEF_HELPER_3(pfx ## addsubx, i32, i32, i32, ptr) \
20 DEF_HELPER_3(pfx ## subaddx, i32, i32, i32, ptr)
6ddbc6e4
PB
21
22PAS_OP(s)
23PAS_OP(u)
24#undef PAS_OP
25
26#define PAS_OP(pfx) \
a7812ae4
PB
27 DEF_HELPER_2(pfx ## add8, i32, i32, i32) \
28 DEF_HELPER_2(pfx ## sub8, i32, i32, i32) \
29 DEF_HELPER_2(pfx ## sub16, i32, i32, i32) \
30 DEF_HELPER_2(pfx ## add16, i32, i32, i32) \
31 DEF_HELPER_2(pfx ## addsubx, i32, i32, i32) \
32 DEF_HELPER_2(pfx ## subaddx, i32, i32, i32)
6ddbc6e4
PB
33PAS_OP(q)
34PAS_OP(sh)
35PAS_OP(uq)
36PAS_OP(uh)
37#undef PAS_OP
38
9ef39277
BS
39DEF_HELPER_3(ssat, i32, env, i32, i32)
40DEF_HELPER_3(usat, i32, env, i32, i32)
41DEF_HELPER_3(ssat16, i32, env, i32, i32)
42DEF_HELPER_3(usat16, i32, env, i32, i32)
a7812ae4 43
4b3d4829 44DEF_HELPER_FLAGS_2(usad8, TCG_CALL_NO_RWG_SE, i32, i32, i32)
a7812ae4 45
4b3d4829 46DEF_HELPER_FLAGS_3(sel_flags, TCG_CALL_NO_RWG_SE,
00e3ab2d 47 i32, i32, i32, i32)
d4a2dc67 48DEF_HELPER_2(exception_internal, void, env, i32)
73710361 49DEF_HELPER_4(exception_with_syndrome, void, env, i32, i32, i32)
c900a2e6 50DEF_HELPER_2(exception_bkpt_insn, void, env, i32)
9886ecdf 51DEF_HELPER_1(setend, void, env)
58803318 52DEF_HELPER_2(wfi, void, env, i32)
72c1d3af 53DEF_HELPER_1(wfe, void, env)
049e24a1 54DEF_HELPER_1(yield, void, env)
35979d71 55DEF_HELPER_1(pre_hvc, void, env)
e0d6e6a5 56DEF_HELPER_2(pre_smc, void, env, i32)
a7812ae4 57
5d98bf8f
SF
58DEF_HELPER_1(check_breakpoints, void, env)
59
1ce94f81 60DEF_HELPER_3(cpsr_write, void, env, i32, i32)
235ea1f5 61DEF_HELPER_2(cpsr_write_eret, void, env, i32)
9ef39277 62DEF_HELPER_1(cpsr_read, i32, env)
a7812ae4
PB
63
64DEF_HELPER_3(v7m_msr, void, env, i32, i32)
65DEF_HELPER_2(v7m_mrs, i32, env, i32)
66
fb602cb7 67DEF_HELPER_2(v7m_bxns, void, env, i32)
3e3fa230 68DEF_HELPER_2(v7m_blxns, void, env, i32)
fb602cb7 69
5158de24
PM
70DEF_HELPER_3(v7m_tt, i32, env, i32, i32)
71
e33cf0f8
PM
72DEF_HELPER_1(v7m_preserve_fp_state, void, env)
73
019076b0 74DEF_HELPER_2(v7m_vlstm, void, env, i32)
956fe143 75DEF_HELPER_2(v7m_vlldm, void, env, i32)
019076b0 76
55203189
PM
77DEF_HELPER_2(v8m_stackcheck, void, env, i32)
78
3f208fd7 79DEF_HELPER_4(access_check_cp_reg, void, env, ptr, i32, i32)
4b6a83fb
PM
80DEF_HELPER_3(set_cp_reg, void, env, ptr, i32)
81DEF_HELPER_2(get_cp_reg, i32, env, ptr)
82DEF_HELPER_3(set_cp_reg64, void, env, ptr, i64)
83DEF_HELPER_2(get_cp_reg64, i64, env, ptr)
84
a7812ae4
PB
85DEF_HELPER_2(get_r13_banked, i32, env, i32)
86DEF_HELPER_3(set_r13_banked, void, env, i32, i32)
87
8bfd0550
PM
88DEF_HELPER_3(mrs_banked, i32, env, i32, i32)
89DEF_HELPER_4(msr_banked, void, env, i32, i32, i32)
90
9ef39277 91DEF_HELPER_2(get_user_reg, i32, env, i32)
1ce94f81 92DEF_HELPER_3(set_user_reg, void, env, i32, i32)
a7812ae4
PB
93
94DEF_HELPER_1(vfp_get_fpscr, i32, env)
95DEF_HELPER_2(vfp_set_fpscr, void, env, i32)
96
ae1857ec
PM
97DEF_HELPER_3(vfp_adds, f32, f32, f32, ptr)
98DEF_HELPER_3(vfp_addd, f64, f64, f64, ptr)
99DEF_HELPER_3(vfp_subs, f32, f32, f32, ptr)
100DEF_HELPER_3(vfp_subd, f64, f64, f64, ptr)
101DEF_HELPER_3(vfp_muls, f32, f32, f32, ptr)
102DEF_HELPER_3(vfp_muld, f64, f64, f64, ptr)
103DEF_HELPER_3(vfp_divs, f32, f32, f32, ptr)
104DEF_HELPER_3(vfp_divd, f64, f64, f64, ptr)
f71a2ae5
PM
105DEF_HELPER_3(vfp_maxs, f32, f32, f32, ptr)
106DEF_HELPER_3(vfp_maxd, f64, f64, f64, ptr)
107DEF_HELPER_3(vfp_mins, f32, f32, f32, ptr)
108DEF_HELPER_3(vfp_mind, f64, f64, f64, ptr)
109DEF_HELPER_3(vfp_maxnums, f32, f32, f32, ptr)
110DEF_HELPER_3(vfp_maxnumd, f64, f64, f64, ptr)
111DEF_HELPER_3(vfp_minnums, f32, f32, f32, ptr)
112DEF_HELPER_3(vfp_minnumd, f64, f64, f64, ptr)
a7812ae4
PB
113DEF_HELPER_1(vfp_negs, f32, f32)
114DEF_HELPER_1(vfp_negd, f64, f64)
115DEF_HELPER_1(vfp_abss, f32, f32)
116DEF_HELPER_1(vfp_absd, f64, f64)
117DEF_HELPER_2(vfp_sqrts, f32, f32, env)
118DEF_HELPER_2(vfp_sqrtd, f64, f64, env)
119DEF_HELPER_3(vfp_cmps, void, f32, f32, env)
120DEF_HELPER_3(vfp_cmpd, void, f64, f64, env)
121DEF_HELPER_3(vfp_cmpes, void, f32, f32, env)
122DEF_HELPER_3(vfp_cmped, void, f64, f64, env)
123
124DEF_HELPER_2(vfp_fcvtds, f64, f32, env)
125DEF_HELPER_2(vfp_fcvtsd, f32, f64, env)
126
93193190 127DEF_HELPER_2(vfp_uitoh, f16, i32, ptr)
5500b06c
PM
128DEF_HELPER_2(vfp_uitos, f32, i32, ptr)
129DEF_HELPER_2(vfp_uitod, f64, i32, ptr)
93193190 130DEF_HELPER_2(vfp_sitoh, f16, i32, ptr)
5500b06c
PM
131DEF_HELPER_2(vfp_sitos, f32, i32, ptr)
132DEF_HELPER_2(vfp_sitod, f64, i32, ptr)
133
93193190 134DEF_HELPER_2(vfp_touih, i32, f16, ptr)
5500b06c
PM
135DEF_HELPER_2(vfp_touis, i32, f32, ptr)
136DEF_HELPER_2(vfp_touid, i32, f64, ptr)
93193190 137DEF_HELPER_2(vfp_touizh, i32, f16, ptr)
5500b06c
PM
138DEF_HELPER_2(vfp_touizs, i32, f32, ptr)
139DEF_HELPER_2(vfp_touizd, i32, f64, ptr)
df4de1af
RH
140DEF_HELPER_2(vfp_tosih, s32, f16, ptr)
141DEF_HELPER_2(vfp_tosis, s32, f32, ptr)
142DEF_HELPER_2(vfp_tosid, s32, f64, ptr)
143DEF_HELPER_2(vfp_tosizh, s32, f16, ptr)
144DEF_HELPER_2(vfp_tosizs, s32, f32, ptr)
145DEF_HELPER_2(vfp_tosizd, s32, f64, ptr)
5500b06c 146
16d5b3ca
WN
147DEF_HELPER_3(vfp_toshs_round_to_zero, i32, f32, i32, ptr)
148DEF_HELPER_3(vfp_tosls_round_to_zero, i32, f32, i32, ptr)
149DEF_HELPER_3(vfp_touhs_round_to_zero, i32, f32, i32, ptr)
150DEF_HELPER_3(vfp_touls_round_to_zero, i32, f32, i32, ptr)
151DEF_HELPER_3(vfp_toshd_round_to_zero, i64, f64, i32, ptr)
152DEF_HELPER_3(vfp_tosld_round_to_zero, i64, f64, i32, ptr)
153DEF_HELPER_3(vfp_touhd_round_to_zero, i64, f64, i32, ptr)
154DEF_HELPER_3(vfp_tould_round_to_zero, i64, f64, i32, ptr)
88808a02
RH
155DEF_HELPER_3(vfp_touhh, i32, f16, i32, ptr)
156DEF_HELPER_3(vfp_toshh, i32, f16, i32, ptr)
564a0632
RH
157DEF_HELPER_3(vfp_toulh, i32, f16, i32, ptr)
158DEF_HELPER_3(vfp_toslh, i32, f16, i32, ptr)
159DEF_HELPER_3(vfp_touqh, i64, f16, i32, ptr)
160DEF_HELPER_3(vfp_tosqh, i64, f16, i32, ptr)
3c6a074a
WN
161DEF_HELPER_3(vfp_toshs, i32, f32, i32, ptr)
162DEF_HELPER_3(vfp_tosls, i32, f32, i32, ptr)
163DEF_HELPER_3(vfp_tosqs, i64, f32, i32, ptr)
164DEF_HELPER_3(vfp_touhs, i32, f32, i32, ptr)
165DEF_HELPER_3(vfp_touls, i32, f32, i32, ptr)
166DEF_HELPER_3(vfp_touqs, i64, f32, i32, ptr)
167DEF_HELPER_3(vfp_toshd, i64, f64, i32, ptr)
168DEF_HELPER_3(vfp_tosld, i64, f64, i32, ptr)
169DEF_HELPER_3(vfp_tosqd, i64, f64, i32, ptr)
170DEF_HELPER_3(vfp_touhd, i64, f64, i32, ptr)
171DEF_HELPER_3(vfp_tould, i64, f64, i32, ptr)
172DEF_HELPER_3(vfp_touqd, i64, f64, i32, ptr)
5500b06c
PM
173DEF_HELPER_3(vfp_shtos, f32, i32, i32, ptr)
174DEF_HELPER_3(vfp_sltos, f32, i32, i32, ptr)
3c6a074a 175DEF_HELPER_3(vfp_sqtos, f32, i64, i32, ptr)
5500b06c
PM
176DEF_HELPER_3(vfp_uhtos, f32, i32, i32, ptr)
177DEF_HELPER_3(vfp_ultos, f32, i32, i32, ptr)
3c6a074a 178DEF_HELPER_3(vfp_uqtos, f32, i64, i32, ptr)
5500b06c
PM
179DEF_HELPER_3(vfp_shtod, f64, i64, i32, ptr)
180DEF_HELPER_3(vfp_sltod, f64, i64, i32, ptr)
3c6a074a 181DEF_HELPER_3(vfp_sqtod, f64, i64, i32, ptr)
5500b06c
PM
182DEF_HELPER_3(vfp_uhtod, f64, i64, i32, ptr)
183DEF_HELPER_3(vfp_ultod, f64, i64, i32, ptr)
3c6a074a 184DEF_HELPER_3(vfp_uqtod, f64, i64, i32, ptr)
93193190
AB
185DEF_HELPER_3(vfp_sltoh, f16, i32, i32, ptr)
186DEF_HELPER_3(vfp_ultoh, f16, i32, i32, ptr)
564a0632
RH
187DEF_HELPER_3(vfp_sqtoh, f16, i64, i32, ptr)
188DEF_HELPER_3(vfp_uqtoh, f16, i64, i32, ptr)
a7812ae4 189
9b049916 190DEF_HELPER_FLAGS_2(set_rmode, TCG_CALL_NO_RWG, i32, i32, ptr)
43630e58 191DEF_HELPER_FLAGS_2(set_neon_rmode, TCG_CALL_NO_RWG, i32, i32, env)
52a1f6a3 192
486624fc
AB
193DEF_HELPER_FLAGS_3(vfp_fcvt_f16_to_f32, TCG_CALL_NO_RWG, f32, f16, ptr, i32)
194DEF_HELPER_FLAGS_3(vfp_fcvt_f32_to_f16, TCG_CALL_NO_RWG, f16, f32, ptr, i32)
195DEF_HELPER_FLAGS_3(vfp_fcvt_f16_to_f64, TCG_CALL_NO_RWG, f64, f16, ptr, i32)
196DEF_HELPER_FLAGS_3(vfp_fcvt_f64_to_f16, TCG_CALL_NO_RWG, f16, f64, ptr, i32)
60011498 197
da97f52c
PM
198DEF_HELPER_4(vfp_muladdd, f64, f64, f64, f64, ptr)
199DEF_HELPER_4(vfp_muladds, f32, f32, f32, f32, ptr)
200
a7812ae4
PB
201DEF_HELPER_3(recps_f32, f32, f32, f32, env)
202DEF_HELPER_3(rsqrts_f32, f32, f32, f32, env)
5eb70735 203DEF_HELPER_FLAGS_2(recpe_f16, TCG_CALL_NO_RWG, f16, f16, ptr)
b6d4443a
AB
204DEF_HELPER_FLAGS_2(recpe_f32, TCG_CALL_NO_RWG, f32, f32, ptr)
205DEF_HELPER_FLAGS_2(recpe_f64, TCG_CALL_NO_RWG, f64, f64, ptr)
d719cbc7 206DEF_HELPER_FLAGS_2(rsqrte_f16, TCG_CALL_NO_RWG, f16, f16, ptr)
c2fb418e
AB
207DEF_HELPER_FLAGS_2(rsqrte_f32, TCG_CALL_NO_RWG, f32, f32, ptr)
208DEF_HELPER_FLAGS_2(rsqrte_f64, TCG_CALL_NO_RWG, f64, f64, ptr)
b6d4443a 209DEF_HELPER_2(recpe_u32, i32, i32, ptr)
c2fb418e 210DEF_HELPER_FLAGS_2(rsqrte_u32, TCG_CALL_NO_RWG, i32, i32, ptr)
e7c06c4e 211DEF_HELPER_FLAGS_4(neon_tbl, TCG_CALL_NO_RWG, i32, i32, i32, ptr, i32)
9ef39277 212
9ef39277
BS
213DEF_HELPER_3(shl_cc, i32, env, i32, i32)
214DEF_HELPER_3(shr_cc, i32, env, i32, i32)
215DEF_HELPER_3(sar_cc, i32, env, i32, i32)
216DEF_HELPER_3(ror_cc, i32, env, i32, i32)
8984bd2e 217
d9b0848d
PM
218DEF_HELPER_FLAGS_2(rints_exact, TCG_CALL_NO_RWG, f32, f32, ptr)
219DEF_HELPER_FLAGS_2(rintd_exact, TCG_CALL_NO_RWG, f64, f64, ptr)
220DEF_HELPER_FLAGS_2(rints, TCG_CALL_NO_RWG, f32, f32, ptr)
221DEF_HELPER_FLAGS_2(rintd, TCG_CALL_NO_RWG, f64, f64, ptr)
222
6c1f6f27
RH
223DEF_HELPER_FLAGS_2(vjcvt, TCG_CALL_NO_RWG, i32, f64, env)
224DEF_HELPER_FLAGS_2(fjcvtzs, TCG_CALL_NO_RWG, i64, f64, ptr)
225
ad69471c 226/* neon_helper.c */
09e03735
AB
227DEF_HELPER_FLAGS_3(neon_qadd_u8, TCG_CALL_NO_RWG, i32, env, i32, i32)
228DEF_HELPER_FLAGS_3(neon_qadd_s8, TCG_CALL_NO_RWG, i32, env, i32, i32)
229DEF_HELPER_FLAGS_3(neon_qadd_u16, TCG_CALL_NO_RWG, i32, env, i32, i32)
230DEF_HELPER_FLAGS_3(neon_qadd_s16, TCG_CALL_NO_RWG, i32, env, i32, i32)
231DEF_HELPER_FLAGS_3(neon_qadd_u32, TCG_CALL_NO_RWG, i32, env, i32, i32)
232DEF_HELPER_FLAGS_3(neon_qadd_s32, TCG_CALL_NO_RWG, i32, env, i32, i32)
233DEF_HELPER_FLAGS_3(neon_uqadd_s8, TCG_CALL_NO_RWG, i32, env, i32, i32)
234DEF_HELPER_FLAGS_3(neon_uqadd_s16, TCG_CALL_NO_RWG, i32, env, i32, i32)
235DEF_HELPER_FLAGS_3(neon_uqadd_s32, TCG_CALL_NO_RWG, i32, env, i32, i32)
236DEF_HELPER_FLAGS_3(neon_uqadd_s64, TCG_CALL_NO_RWG, i64, env, i64, i64)
237DEF_HELPER_FLAGS_3(neon_sqadd_u8, TCG_CALL_NO_RWG, i32, env, i32, i32)
238DEF_HELPER_FLAGS_3(neon_sqadd_u16, TCG_CALL_NO_RWG, i32, env, i32, i32)
239DEF_HELPER_FLAGS_3(neon_sqadd_u32, TCG_CALL_NO_RWG, i32, env, i32, i32)
240DEF_HELPER_FLAGS_3(neon_sqadd_u64, TCG_CALL_NO_RWG, i64, env, i64, i64)
02da0b2d
PM
241DEF_HELPER_3(neon_qsub_u8, i32, env, i32, i32)
242DEF_HELPER_3(neon_qsub_s8, i32, env, i32, i32)
243DEF_HELPER_3(neon_qsub_u16, i32, env, i32, i32)
244DEF_HELPER_3(neon_qsub_s16, i32, env, i32, i32)
245DEF_HELPER_3(neon_qsub_u32, i32, env, i32, i32)
246DEF_HELPER_3(neon_qsub_s32, i32, env, i32, i32)
247DEF_HELPER_3(neon_qadd_u64, i64, env, i64, i64)
248DEF_HELPER_3(neon_qadd_s64, i64, env, i64, i64)
249DEF_HELPER_3(neon_qsub_u64, i64, env, i64, i64)
250DEF_HELPER_3(neon_qsub_s64, i64, env, i64, i64)
a7812ae4
PB
251
252DEF_HELPER_2(neon_hadd_s8, i32, i32, i32)
253DEF_HELPER_2(neon_hadd_u8, i32, i32, i32)
254DEF_HELPER_2(neon_hadd_s16, i32, i32, i32)
255DEF_HELPER_2(neon_hadd_u16, i32, i32, i32)
256DEF_HELPER_2(neon_hadd_s32, s32, s32, s32)
257DEF_HELPER_2(neon_hadd_u32, i32, i32, i32)
258DEF_HELPER_2(neon_rhadd_s8, i32, i32, i32)
259DEF_HELPER_2(neon_rhadd_u8, i32, i32, i32)
260DEF_HELPER_2(neon_rhadd_s16, i32, i32, i32)
261DEF_HELPER_2(neon_rhadd_u16, i32, i32, i32)
262DEF_HELPER_2(neon_rhadd_s32, s32, s32, s32)
263DEF_HELPER_2(neon_rhadd_u32, i32, i32, i32)
264DEF_HELPER_2(neon_hsub_s8, i32, i32, i32)
265DEF_HELPER_2(neon_hsub_u8, i32, i32, i32)
266DEF_HELPER_2(neon_hsub_s16, i32, i32, i32)
267DEF_HELPER_2(neon_hsub_u16, i32, i32, i32)
268DEF_HELPER_2(neon_hsub_s32, s32, s32, s32)
269DEF_HELPER_2(neon_hsub_u32, i32, i32, i32)
270
271DEF_HELPER_2(neon_cgt_u8, i32, i32, i32)
272DEF_HELPER_2(neon_cgt_s8, i32, i32, i32)
273DEF_HELPER_2(neon_cgt_u16, i32, i32, i32)
274DEF_HELPER_2(neon_cgt_s16, i32, i32, i32)
275DEF_HELPER_2(neon_cgt_u32, i32, i32, i32)
276DEF_HELPER_2(neon_cgt_s32, i32, i32, i32)
277DEF_HELPER_2(neon_cge_u8, i32, i32, i32)
278DEF_HELPER_2(neon_cge_s8, i32, i32, i32)
279DEF_HELPER_2(neon_cge_u16, i32, i32, i32)
280DEF_HELPER_2(neon_cge_s16, i32, i32, i32)
281DEF_HELPER_2(neon_cge_u32, i32, i32, i32)
282DEF_HELPER_2(neon_cge_s32, i32, i32, i32)
283
a7812ae4
PB
284DEF_HELPER_2(neon_pmin_u8, i32, i32, i32)
285DEF_HELPER_2(neon_pmin_s8, i32, i32, i32)
286DEF_HELPER_2(neon_pmin_u16, i32, i32, i32)
287DEF_HELPER_2(neon_pmin_s16, i32, i32, i32)
288DEF_HELPER_2(neon_pmax_u8, i32, i32, i32)
289DEF_HELPER_2(neon_pmax_s8, i32, i32, i32)
290DEF_HELPER_2(neon_pmax_u16, i32, i32, i32)
291DEF_HELPER_2(neon_pmax_s16, i32, i32, i32)
292
293DEF_HELPER_2(neon_abd_u8, i32, i32, i32)
294DEF_HELPER_2(neon_abd_s8, i32, i32, i32)
295DEF_HELPER_2(neon_abd_u16, i32, i32, i32)
296DEF_HELPER_2(neon_abd_s16, i32, i32, i32)
297DEF_HELPER_2(neon_abd_u32, i32, i32, i32)
298DEF_HELPER_2(neon_abd_s32, i32, i32, i32)
299
300DEF_HELPER_2(neon_shl_u8, i32, i32, i32)
301DEF_HELPER_2(neon_shl_s8, i32, i32, i32)
302DEF_HELPER_2(neon_shl_u16, i32, i32, i32)
303DEF_HELPER_2(neon_shl_s16, i32, i32, i32)
304DEF_HELPER_2(neon_shl_u32, i32, i32, i32)
305DEF_HELPER_2(neon_shl_s32, i32, i32, i32)
306DEF_HELPER_2(neon_shl_u64, i64, i64, i64)
307DEF_HELPER_2(neon_shl_s64, i64, i64, i64)
308DEF_HELPER_2(neon_rshl_u8, i32, i32, i32)
309DEF_HELPER_2(neon_rshl_s8, i32, i32, i32)
310DEF_HELPER_2(neon_rshl_u16, i32, i32, i32)
311DEF_HELPER_2(neon_rshl_s16, i32, i32, i32)
312DEF_HELPER_2(neon_rshl_u32, i32, i32, i32)
313DEF_HELPER_2(neon_rshl_s32, i32, i32, i32)
314DEF_HELPER_2(neon_rshl_u64, i64, i64, i64)
315DEF_HELPER_2(neon_rshl_s64, i64, i64, i64)
02da0b2d
PM
316DEF_HELPER_3(neon_qshl_u8, i32, env, i32, i32)
317DEF_HELPER_3(neon_qshl_s8, i32, env, i32, i32)
318DEF_HELPER_3(neon_qshl_u16, i32, env, i32, i32)
319DEF_HELPER_3(neon_qshl_s16, i32, env, i32, i32)
320DEF_HELPER_3(neon_qshl_u32, i32, env, i32, i32)
321DEF_HELPER_3(neon_qshl_s32, i32, env, i32, i32)
322DEF_HELPER_3(neon_qshl_u64, i64, env, i64, i64)
323DEF_HELPER_3(neon_qshl_s64, i64, env, i64, i64)
f5daeec4
RH
324DEF_HELPER_3(neon_qshlu_s8, i32, env, i32, i32)
325DEF_HELPER_3(neon_qshlu_s16, i32, env, i32, i32)
326DEF_HELPER_3(neon_qshlu_s32, i32, env, i32, i32)
327DEF_HELPER_3(neon_qshlu_s64, i64, env, i64, i64)
02da0b2d
PM
328DEF_HELPER_3(neon_qrshl_u8, i32, env, i32, i32)
329DEF_HELPER_3(neon_qrshl_s8, i32, env, i32, i32)
330DEF_HELPER_3(neon_qrshl_u16, i32, env, i32, i32)
331DEF_HELPER_3(neon_qrshl_s16, i32, env, i32, i32)
332DEF_HELPER_3(neon_qrshl_u32, i32, env, i32, i32)
333DEF_HELPER_3(neon_qrshl_s32, i32, env, i32, i32)
334DEF_HELPER_3(neon_qrshl_u64, i64, env, i64, i64)
335DEF_HELPER_3(neon_qrshl_s64, i64, env, i64, i64)
a7812ae4
PB
336
337DEF_HELPER_2(neon_add_u8, i32, i32, i32)
338DEF_HELPER_2(neon_add_u16, i32, i32, i32)
339DEF_HELPER_2(neon_padd_u8, i32, i32, i32)
340DEF_HELPER_2(neon_padd_u16, i32, i32, i32)
341DEF_HELPER_2(neon_sub_u8, i32, i32, i32)
342DEF_HELPER_2(neon_sub_u16, i32, i32, i32)
343DEF_HELPER_2(neon_mul_u8, i32, i32, i32)
344DEF_HELPER_2(neon_mul_u16, i32, i32, i32)
345DEF_HELPER_2(neon_mul_p8, i32, i32, i32)
e5ca24cb 346DEF_HELPER_2(neon_mull_p8, i64, i32, i32)
a7812ae4
PB
347
348DEF_HELPER_2(neon_tst_u8, i32, i32, i32)
349DEF_HELPER_2(neon_tst_u16, i32, i32, i32)
350DEF_HELPER_2(neon_tst_u32, i32, i32, i32)
351DEF_HELPER_2(neon_ceq_u8, i32, i32, i32)
352DEF_HELPER_2(neon_ceq_u16, i32, i32, i32)
353DEF_HELPER_2(neon_ceq_u32, i32, i32, i32)
354
a7812ae4
PB
355DEF_HELPER_1(neon_clz_u8, i32, i32)
356DEF_HELPER_1(neon_clz_u16, i32, i32)
357DEF_HELPER_1(neon_cls_s8, i32, i32)
358DEF_HELPER_1(neon_cls_s16, i32, i32)
359DEF_HELPER_1(neon_cls_s32, i32, i32)
360DEF_HELPER_1(neon_cnt_u8, i32, i32)
86cbc418 361DEF_HELPER_FLAGS_1(neon_rbit_u8, TCG_CALL_NO_RWG_SE, i32, i32)
a7812ae4 362
02da0b2d
PM
363DEF_HELPER_3(neon_qdmulh_s16, i32, env, i32, i32)
364DEF_HELPER_3(neon_qrdmulh_s16, i32, env, i32, i32)
d9061ec3
RH
365DEF_HELPER_4(neon_qrdmlah_s16, i32, env, i32, i32, i32)
366DEF_HELPER_4(neon_qrdmlsh_s16, i32, env, i32, i32, i32)
02da0b2d
PM
367DEF_HELPER_3(neon_qdmulh_s32, i32, env, i32, i32)
368DEF_HELPER_3(neon_qrdmulh_s32, i32, env, i32, i32)
d9061ec3
RH
369DEF_HELPER_4(neon_qrdmlah_s32, i32, env, s32, s32, s32)
370DEF_HELPER_4(neon_qrdmlsh_s32, i32, env, s32, s32, s32)
a7812ae4
PB
371
372DEF_HELPER_1(neon_narrow_u8, i32, i64)
373DEF_HELPER_1(neon_narrow_u16, i32, i64)
02da0b2d
PM
374DEF_HELPER_2(neon_unarrow_sat8, i32, env, i64)
375DEF_HELPER_2(neon_narrow_sat_u8, i32, env, i64)
376DEF_HELPER_2(neon_narrow_sat_s8, i32, env, i64)
377DEF_HELPER_2(neon_unarrow_sat16, i32, env, i64)
378DEF_HELPER_2(neon_narrow_sat_u16, i32, env, i64)
379DEF_HELPER_2(neon_narrow_sat_s16, i32, env, i64)
380DEF_HELPER_2(neon_unarrow_sat32, i32, env, i64)
381DEF_HELPER_2(neon_narrow_sat_u32, i32, env, i64)
382DEF_HELPER_2(neon_narrow_sat_s32, i32, env, i64)
a7812ae4
PB
383DEF_HELPER_1(neon_narrow_high_u8, i32, i64)
384DEF_HELPER_1(neon_narrow_high_u16, i32, i64)
385DEF_HELPER_1(neon_narrow_round_high_u8, i32, i64)
386DEF_HELPER_1(neon_narrow_round_high_u16, i32, i64)
387DEF_HELPER_1(neon_widen_u8, i64, i32)
388DEF_HELPER_1(neon_widen_s8, i64, i32)
389DEF_HELPER_1(neon_widen_u16, i64, i32)
390DEF_HELPER_1(neon_widen_s16, i64, i32)
391
392DEF_HELPER_2(neon_addl_u16, i64, i64, i64)
393DEF_HELPER_2(neon_addl_u32, i64, i64, i64)
394DEF_HELPER_2(neon_paddl_u16, i64, i64, i64)
395DEF_HELPER_2(neon_paddl_u32, i64, i64, i64)
396DEF_HELPER_2(neon_subl_u16, i64, i64, i64)
397DEF_HELPER_2(neon_subl_u32, i64, i64, i64)
02da0b2d
PM
398DEF_HELPER_3(neon_addl_saturate_s32, i64, env, i64, i64)
399DEF_HELPER_3(neon_addl_saturate_s64, i64, env, i64, i64)
a7812ae4
PB
400DEF_HELPER_2(neon_abdl_u16, i64, i32, i32)
401DEF_HELPER_2(neon_abdl_s16, i64, i32, i32)
402DEF_HELPER_2(neon_abdl_u32, i64, i32, i32)
403DEF_HELPER_2(neon_abdl_s32, i64, i32, i32)
404DEF_HELPER_2(neon_abdl_u64, i64, i32, i32)
405DEF_HELPER_2(neon_abdl_s64, i64, i32, i32)
406DEF_HELPER_2(neon_mull_u8, i64, i32, i32)
407DEF_HELPER_2(neon_mull_s8, i64, i32, i32)
408DEF_HELPER_2(neon_mull_u16, i64, i32, i32)
409DEF_HELPER_2(neon_mull_s16, i64, i32, i32)
410
411DEF_HELPER_1(neon_negl_u16, i64, i64)
412DEF_HELPER_1(neon_negl_u32, i64, i64)
a7812ae4 413
0a79bc87
AB
414DEF_HELPER_FLAGS_2(neon_qabs_s8, TCG_CALL_NO_RWG, i32, env, i32)
415DEF_HELPER_FLAGS_2(neon_qabs_s16, TCG_CALL_NO_RWG, i32, env, i32)
416DEF_HELPER_FLAGS_2(neon_qabs_s32, TCG_CALL_NO_RWG, i32, env, i32)
417DEF_HELPER_FLAGS_2(neon_qabs_s64, TCG_CALL_NO_RWG, i64, env, i64)
418DEF_HELPER_FLAGS_2(neon_qneg_s8, TCG_CALL_NO_RWG, i32, env, i32)
419DEF_HELPER_FLAGS_2(neon_qneg_s16, TCG_CALL_NO_RWG, i32, env, i32)
420DEF_HELPER_FLAGS_2(neon_qneg_s32, TCG_CALL_NO_RWG, i32, env, i32)
421DEF_HELPER_FLAGS_2(neon_qneg_s64, TCG_CALL_NO_RWG, i64, env, i64)
a7812ae4 422
aa47cfdd
PM
423DEF_HELPER_3(neon_abd_f32, i32, i32, i32, ptr)
424DEF_HELPER_3(neon_ceq_f32, i32, i32, i32, ptr)
425DEF_HELPER_3(neon_cge_f32, i32, i32, i32, ptr)
426DEF_HELPER_3(neon_cgt_f32, i32, i32, i32, ptr)
427DEF_HELPER_3(neon_acge_f32, i32, i32, i32, ptr)
428DEF_HELPER_3(neon_acgt_f32, i32, i32, i32, ptr)
057d5f62
PM
429DEF_HELPER_3(neon_acge_f64, i64, i64, i64, ptr)
430DEF_HELPER_3(neon_acgt_f64, i64, i64, i64, ptr)
ad69471c 431
e677137d 432/* iwmmxt_helper.c */
a7812ae4
PB
433DEF_HELPER_2(iwmmxt_maddsq, i64, i64, i64)
434DEF_HELPER_2(iwmmxt_madduq, i64, i64, i64)
435DEF_HELPER_2(iwmmxt_sadb, i64, i64, i64)
436DEF_HELPER_2(iwmmxt_sadw, i64, i64, i64)
437DEF_HELPER_2(iwmmxt_mulslw, i64, i64, i64)
438DEF_HELPER_2(iwmmxt_mulshw, i64, i64, i64)
439DEF_HELPER_2(iwmmxt_mululw, i64, i64, i64)
440DEF_HELPER_2(iwmmxt_muluhw, i64, i64, i64)
441DEF_HELPER_2(iwmmxt_macsw, i64, i64, i64)
442DEF_HELPER_2(iwmmxt_macuw, i64, i64, i64)
443DEF_HELPER_1(iwmmxt_setpsr_nz, i32, i64)
e677137d 444
477955bd
PM
445#define DEF_IWMMXT_HELPER_SIZE_ENV(name) \
446DEF_HELPER_3(iwmmxt_##name##b, i64, env, i64, i64) \
447DEF_HELPER_3(iwmmxt_##name##w, i64, env, i64, i64) \
448DEF_HELPER_3(iwmmxt_##name##l, i64, env, i64, i64) \
449
450DEF_IWMMXT_HELPER_SIZE_ENV(unpackl)
451DEF_IWMMXT_HELPER_SIZE_ENV(unpackh)
452
453DEF_HELPER_2(iwmmxt_unpacklub, i64, env, i64)
454DEF_HELPER_2(iwmmxt_unpackluw, i64, env, i64)
455DEF_HELPER_2(iwmmxt_unpacklul, i64, env, i64)
456DEF_HELPER_2(iwmmxt_unpackhub, i64, env, i64)
457DEF_HELPER_2(iwmmxt_unpackhuw, i64, env, i64)
458DEF_HELPER_2(iwmmxt_unpackhul, i64, env, i64)
459DEF_HELPER_2(iwmmxt_unpacklsb, i64, env, i64)
460DEF_HELPER_2(iwmmxt_unpacklsw, i64, env, i64)
461DEF_HELPER_2(iwmmxt_unpacklsl, i64, env, i64)
462DEF_HELPER_2(iwmmxt_unpackhsb, i64, env, i64)
463DEF_HELPER_2(iwmmxt_unpackhsw, i64, env, i64)
464DEF_HELPER_2(iwmmxt_unpackhsl, i64, env, i64)
465
466DEF_IWMMXT_HELPER_SIZE_ENV(cmpeq)
467DEF_IWMMXT_HELPER_SIZE_ENV(cmpgtu)
468DEF_IWMMXT_HELPER_SIZE_ENV(cmpgts)
469
470DEF_IWMMXT_HELPER_SIZE_ENV(mins)
471DEF_IWMMXT_HELPER_SIZE_ENV(minu)
472DEF_IWMMXT_HELPER_SIZE_ENV(maxs)
473DEF_IWMMXT_HELPER_SIZE_ENV(maxu)
474
475DEF_IWMMXT_HELPER_SIZE_ENV(subn)
476DEF_IWMMXT_HELPER_SIZE_ENV(addn)
477DEF_IWMMXT_HELPER_SIZE_ENV(subu)
478DEF_IWMMXT_HELPER_SIZE_ENV(addu)
479DEF_IWMMXT_HELPER_SIZE_ENV(subs)
480DEF_IWMMXT_HELPER_SIZE_ENV(adds)
481
482DEF_HELPER_3(iwmmxt_avgb0, i64, env, i64, i64)
483DEF_HELPER_3(iwmmxt_avgb1, i64, env, i64, i64)
484DEF_HELPER_3(iwmmxt_avgw0, i64, env, i64, i64)
485DEF_HELPER_3(iwmmxt_avgw1, i64, env, i64, i64)
a7812ae4 486
a7812ae4
PB
487DEF_HELPER_3(iwmmxt_align, i64, i64, i64, i32)
488DEF_HELPER_4(iwmmxt_insr, i64, i64, i32, i32, i32)
489
490DEF_HELPER_1(iwmmxt_bcstb, i64, i32)
491DEF_HELPER_1(iwmmxt_bcstw, i64, i32)
492DEF_HELPER_1(iwmmxt_bcstl, i64, i32)
493
494DEF_HELPER_1(iwmmxt_addcb, i64, i64)
495DEF_HELPER_1(iwmmxt_addcw, i64, i64)
496DEF_HELPER_1(iwmmxt_addcl, i64, i64)
497
498DEF_HELPER_1(iwmmxt_msbb, i32, i64)
499DEF_HELPER_1(iwmmxt_msbw, i32, i64)
500DEF_HELPER_1(iwmmxt_msbl, i32, i64)
501
477955bd
PM
502DEF_HELPER_3(iwmmxt_srlw, i64, env, i64, i32)
503DEF_HELPER_3(iwmmxt_srll, i64, env, i64, i32)
504DEF_HELPER_3(iwmmxt_srlq, i64, env, i64, i32)
505DEF_HELPER_3(iwmmxt_sllw, i64, env, i64, i32)
506DEF_HELPER_3(iwmmxt_slll, i64, env, i64, i32)
507DEF_HELPER_3(iwmmxt_sllq, i64, env, i64, i32)
508DEF_HELPER_3(iwmmxt_sraw, i64, env, i64, i32)
509DEF_HELPER_3(iwmmxt_sral, i64, env, i64, i32)
510DEF_HELPER_3(iwmmxt_sraq, i64, env, i64, i32)
511DEF_HELPER_3(iwmmxt_rorw, i64, env, i64, i32)
512DEF_HELPER_3(iwmmxt_rorl, i64, env, i64, i32)
513DEF_HELPER_3(iwmmxt_rorq, i64, env, i64, i32)
514DEF_HELPER_3(iwmmxt_shufh, i64, env, i64, i32)
515
516DEF_HELPER_3(iwmmxt_packuw, i64, env, i64, i64)
517DEF_HELPER_3(iwmmxt_packul, i64, env, i64, i64)
518DEF_HELPER_3(iwmmxt_packuq, i64, env, i64, i64)
519DEF_HELPER_3(iwmmxt_packsw, i64, env, i64, i64)
520DEF_HELPER_3(iwmmxt_packsl, i64, env, i64, i64)
521DEF_HELPER_3(iwmmxt_packsq, i64, env, i64, i64)
a7812ae4
PB
522
523DEF_HELPER_3(iwmmxt_muladdsl, i64, i64, i32, i32)
524DEF_HELPER_3(iwmmxt_muladdsw, i64, i64, i32, i32)
525DEF_HELPER_3(iwmmxt_muladdswl, i64, i64, i32, i32)
526
b13708bb
RH
527DEF_HELPER_FLAGS_2(neon_unzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
528DEF_HELPER_FLAGS_2(neon_unzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
529DEF_HELPER_FLAGS_2(neon_qunzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
530DEF_HELPER_FLAGS_2(neon_qunzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
531DEF_HELPER_FLAGS_2(neon_qunzip32, TCG_CALL_NO_RWG, void, ptr, ptr)
532DEF_HELPER_FLAGS_2(neon_zip8, TCG_CALL_NO_RWG, void, ptr, ptr)
533DEF_HELPER_FLAGS_2(neon_zip16, TCG_CALL_NO_RWG, void, ptr, ptr)
534DEF_HELPER_FLAGS_2(neon_qzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
535DEF_HELPER_FLAGS_2(neon_qzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
536DEF_HELPER_FLAGS_2(neon_qzip32, TCG_CALL_NO_RWG, void, ptr, ptr)
02acedf9 537
1a66ac61
RH
538DEF_HELPER_FLAGS_3(crypto_aese, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
539DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
9d935509 540
1a66ac61
RH
541DEF_HELPER_FLAGS_4(crypto_sha1_3reg, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
542DEF_HELPER_FLAGS_2(crypto_sha1h, TCG_CALL_NO_RWG, void, ptr, ptr)
543DEF_HELPER_FLAGS_2(crypto_sha1su1, TCG_CALL_NO_RWG, void, ptr, ptr)
f1ecb913 544
1a66ac61
RH
545DEF_HELPER_FLAGS_3(crypto_sha256h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
546DEF_HELPER_FLAGS_3(crypto_sha256h2, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
547DEF_HELPER_FLAGS_2(crypto_sha256su0, TCG_CALL_NO_RWG, void, ptr, ptr)
548DEF_HELPER_FLAGS_3(crypto_sha256su1, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
f1ecb913 549
90b827d1
AB
550DEF_HELPER_FLAGS_3(crypto_sha512h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
551DEF_HELPER_FLAGS_3(crypto_sha512h2, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
552DEF_HELPER_FLAGS_2(crypto_sha512su0, TCG_CALL_NO_RWG, void, ptr, ptr)
553DEF_HELPER_FLAGS_3(crypto_sha512su1, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
554
80d6f4c6
AB
555DEF_HELPER_FLAGS_5(crypto_sm3tt, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32, i32)
556DEF_HELPER_FLAGS_3(crypto_sm3partw1, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
557DEF_HELPER_FLAGS_3(crypto_sm3partw2, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
558
b6577bcd
AB
559DEF_HELPER_FLAGS_2(crypto_sm4e, TCG_CALL_NO_RWG, void, ptr, ptr)
560DEF_HELPER_FLAGS_3(crypto_sm4ekey, TCG_CALL_NO_RWG, void, ptr, ptr, ptr)
561
eb0ecd5a
WN
562DEF_HELPER_FLAGS_3(crc32, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
563DEF_HELPER_FLAGS_3(crc32c, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
aca3f40b 564DEF_HELPER_2(dc_zva, void, env, i64)
eb0ecd5a 565
4e624eda
PM
566DEF_HELPER_FLAGS_2(neon_pmull_64_lo, TCG_CALL_NO_RWG_SE, i64, i64, i64)
567DEF_HELPER_FLAGS_2(neon_pmull_64_hi, TCG_CALL_NO_RWG_SE, i64, i64, i64)
568
e7186d82
RH
569DEF_HELPER_FLAGS_5(gvec_qrdmlah_s16, TCG_CALL_NO_RWG,
570 void, ptr, ptr, ptr, ptr, i32)
571DEF_HELPER_FLAGS_5(gvec_qrdmlsh_s16, TCG_CALL_NO_RWG,
572 void, ptr, ptr, ptr, ptr, i32)
573DEF_HELPER_FLAGS_5(gvec_qrdmlah_s32, TCG_CALL_NO_RWG,
574 void, ptr, ptr, ptr, ptr, i32)
575DEF_HELPER_FLAGS_5(gvec_qrdmlsh_s32, TCG_CALL_NO_RWG,
576 void, ptr, ptr, ptr, ptr, i32)
577
d730ecaa
RH
578DEF_HELPER_FLAGS_4(gvec_sdot_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
579DEF_HELPER_FLAGS_4(gvec_udot_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
580DEF_HELPER_FLAGS_4(gvec_sdot_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
581DEF_HELPER_FLAGS_4(gvec_udot_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
582
16fcfdc7
RH
583DEF_HELPER_FLAGS_4(gvec_sdot_idx_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
584DEF_HELPER_FLAGS_4(gvec_udot_idx_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
585DEF_HELPER_FLAGS_4(gvec_sdot_idx_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
586DEF_HELPER_FLAGS_4(gvec_udot_idx_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
587
1695cd61
RH
588DEF_HELPER_FLAGS_5(gvec_fcaddh, TCG_CALL_NO_RWG,
589 void, ptr, ptr, ptr, ptr, i32)
590DEF_HELPER_FLAGS_5(gvec_fcadds, TCG_CALL_NO_RWG,
591 void, ptr, ptr, ptr, ptr, i32)
592DEF_HELPER_FLAGS_5(gvec_fcaddd, TCG_CALL_NO_RWG,
593 void, ptr, ptr, ptr, ptr, i32)
594
d17b7cdc
RH
595DEF_HELPER_FLAGS_5(gvec_fcmlah, TCG_CALL_NO_RWG,
596 void, ptr, ptr, ptr, ptr, i32)
597DEF_HELPER_FLAGS_5(gvec_fcmlah_idx, TCG_CALL_NO_RWG,
598 void, ptr, ptr, ptr, ptr, i32)
599DEF_HELPER_FLAGS_5(gvec_fcmlas, TCG_CALL_NO_RWG,
600 void, ptr, ptr, ptr, ptr, i32)
601DEF_HELPER_FLAGS_5(gvec_fcmlas_idx, TCG_CALL_NO_RWG,
602 void, ptr, ptr, ptr, ptr, i32)
603DEF_HELPER_FLAGS_5(gvec_fcmlad, TCG_CALL_NO_RWG,
604 void, ptr, ptr, ptr, ptr, i32)
605
3887c038
RH
606DEF_HELPER_FLAGS_4(gvec_frecpe_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
607DEF_HELPER_FLAGS_4(gvec_frecpe_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
608DEF_HELPER_FLAGS_4(gvec_frecpe_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
609
610DEF_HELPER_FLAGS_4(gvec_frsqrte_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
611DEF_HELPER_FLAGS_4(gvec_frsqrte_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
612DEF_HELPER_FLAGS_4(gvec_frsqrte_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
613
29b80469
RH
614DEF_HELPER_FLAGS_5(gvec_fadd_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
615DEF_HELPER_FLAGS_5(gvec_fadd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
616DEF_HELPER_FLAGS_5(gvec_fadd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
617
618DEF_HELPER_FLAGS_5(gvec_fsub_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
619DEF_HELPER_FLAGS_5(gvec_fsub_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
620DEF_HELPER_FLAGS_5(gvec_fsub_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
621
622DEF_HELPER_FLAGS_5(gvec_fmul_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
623DEF_HELPER_FLAGS_5(gvec_fmul_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
624DEF_HELPER_FLAGS_5(gvec_fmul_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
625
626DEF_HELPER_FLAGS_5(gvec_ftsmul_h, TCG_CALL_NO_RWG,
627 void, ptr, ptr, ptr, ptr, i32)
628DEF_HELPER_FLAGS_5(gvec_ftsmul_s, TCG_CALL_NO_RWG,
629 void, ptr, ptr, ptr, ptr, i32)
630DEF_HELPER_FLAGS_5(gvec_ftsmul_d, TCG_CALL_NO_RWG,
631 void, ptr, ptr, ptr, ptr, i32)
632
ca40a6e6
RH
633DEF_HELPER_FLAGS_5(gvec_fmul_idx_h, TCG_CALL_NO_RWG,
634 void, ptr, ptr, ptr, ptr, i32)
635DEF_HELPER_FLAGS_5(gvec_fmul_idx_s, TCG_CALL_NO_RWG,
636 void, ptr, ptr, ptr, ptr, i32)
637DEF_HELPER_FLAGS_5(gvec_fmul_idx_d, TCG_CALL_NO_RWG,
638 void, ptr, ptr, ptr, ptr, i32)
639
640DEF_HELPER_FLAGS_6(gvec_fmla_idx_h, TCG_CALL_NO_RWG,
641 void, ptr, ptr, ptr, ptr, ptr, i32)
642DEF_HELPER_FLAGS_6(gvec_fmla_idx_s, TCG_CALL_NO_RWG,
643 void, ptr, ptr, ptr, ptr, ptr, i32)
644DEF_HELPER_FLAGS_6(gvec_fmla_idx_d, TCG_CALL_NO_RWG,
645 void, ptr, ptr, ptr, ptr, ptr, i32)
646
89e68b57
RH
647DEF_HELPER_FLAGS_5(gvec_uqadd_b, TCG_CALL_NO_RWG,
648 void, ptr, ptr, ptr, ptr, i32)
649DEF_HELPER_FLAGS_5(gvec_uqadd_h, TCG_CALL_NO_RWG,
650 void, ptr, ptr, ptr, ptr, i32)
651DEF_HELPER_FLAGS_5(gvec_uqadd_s, TCG_CALL_NO_RWG,
652 void, ptr, ptr, ptr, ptr, i32)
653DEF_HELPER_FLAGS_5(gvec_uqadd_d, TCG_CALL_NO_RWG,
654 void, ptr, ptr, ptr, ptr, i32)
655DEF_HELPER_FLAGS_5(gvec_sqadd_b, TCG_CALL_NO_RWG,
656 void, ptr, ptr, ptr, ptr, i32)
657DEF_HELPER_FLAGS_5(gvec_sqadd_h, TCG_CALL_NO_RWG,
658 void, ptr, ptr, ptr, ptr, i32)
659DEF_HELPER_FLAGS_5(gvec_sqadd_s, TCG_CALL_NO_RWG,
660 void, ptr, ptr, ptr, ptr, i32)
661DEF_HELPER_FLAGS_5(gvec_sqadd_d, TCG_CALL_NO_RWG,
662 void, ptr, ptr, ptr, ptr, i32)
663DEF_HELPER_FLAGS_5(gvec_uqsub_b, TCG_CALL_NO_RWG,
664 void, ptr, ptr, ptr, ptr, i32)
665DEF_HELPER_FLAGS_5(gvec_uqsub_h, TCG_CALL_NO_RWG,
666 void, ptr, ptr, ptr, ptr, i32)
667DEF_HELPER_FLAGS_5(gvec_uqsub_s, TCG_CALL_NO_RWG,
668 void, ptr, ptr, ptr, ptr, i32)
669DEF_HELPER_FLAGS_5(gvec_uqsub_d, TCG_CALL_NO_RWG,
670 void, ptr, ptr, ptr, ptr, i32)
671DEF_HELPER_FLAGS_5(gvec_sqsub_b, TCG_CALL_NO_RWG,
672 void, ptr, ptr, ptr, ptr, i32)
673DEF_HELPER_FLAGS_5(gvec_sqsub_h, TCG_CALL_NO_RWG,
674 void, ptr, ptr, ptr, ptr, i32)
675DEF_HELPER_FLAGS_5(gvec_sqsub_s, TCG_CALL_NO_RWG,
676 void, ptr, ptr, ptr, ptr, i32)
677DEF_HELPER_FLAGS_5(gvec_sqsub_d, TCG_CALL_NO_RWG,
678 void, ptr, ptr, ptr, ptr, i32)
679
a4e943a7
RH
680DEF_HELPER_FLAGS_5(gvec_fmlal_a32, TCG_CALL_NO_RWG,
681 void, ptr, ptr, ptr, ptr, i32)
682DEF_HELPER_FLAGS_5(gvec_fmlal_a64, TCG_CALL_NO_RWG,
683 void, ptr, ptr, ptr, ptr, i32)
684DEF_HELPER_FLAGS_5(gvec_fmlal_idx_a32, TCG_CALL_NO_RWG,
685 void, ptr, ptr, ptr, ptr, i32)
686DEF_HELPER_FLAGS_5(gvec_fmlal_idx_a64, TCG_CALL_NO_RWG,
687 void, ptr, ptr, ptr, ptr, i32)
688
6bea2563
RH
689DEF_HELPER_FLAGS_2(frint32_s, TCG_CALL_NO_RWG, f32, f32, ptr)
690DEF_HELPER_FLAGS_2(frint64_s, TCG_CALL_NO_RWG, f32, f32, ptr)
691DEF_HELPER_FLAGS_2(frint32_d, TCG_CALL_NO_RWG, f64, f64, ptr)
692DEF_HELPER_FLAGS_2(frint64_d, TCG_CALL_NO_RWG, f64, f64, ptr)
693
d3e35a1f
AG
694#ifdef TARGET_AARCH64
695#include "helper-a64.h"
9e18d7a6 696#include "helper-sve.h"
d3e35a1f 697#endif