blob: b227ac54d92dbdabb7f7a25c690c32bcfff8c153 [file] [log] [blame]
Aurelien Jarno4b3d4822012-10-09 21:53:08 +02001DEF_HELPER_FLAGS_1(sxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
2DEF_HELPER_FLAGS_1(uxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
pbrookb26eefb2008-03-31 03:44:26 +00003
Blue Swirl9ef39272012-09-04 20:19:15 +00004DEF_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)
Peter Maydelle5346292021-07-30 16:16:36 +01009DEF_HELPER_FLAGS_3(sdiv, TCG_CALL_NO_RWG, s32, env, s32, s32)
10DEF_HELPER_FLAGS_3(udiv, TCG_CALL_NO_RWG, i32, env, i32, i32)
Aurelien Jarno4b3d4822012-10-09 21:53:08 +020011DEF_HELPER_FLAGS_1(rbit, TCG_CALL_NO_RWG_SE, i32, i32)
pbrook1497c962008-03-31 03:45:50 +000012
pbrook6ddbc6e2008-03-31 03:46:33 +000013#define PAS_OP(pfx) \
pbrooka7812ae2008-11-17 14:43:54 +000014 DEF_HELPER_3(pfx ## add8, i32, i32, i32, ptr) \
15 DEF_HELPER_3(pfx ## sub8, i32, i32, i32, ptr) \
16 DEF_HELPER_3(pfx ## sub16, i32, i32, i32, ptr) \
17 DEF_HELPER_3(pfx ## add16, i32, i32, i32, ptr) \
18 DEF_HELPER_3(pfx ## addsubx, i32, i32, i32, ptr) \
19 DEF_HELPER_3(pfx ## subaddx, i32, i32, i32, ptr)
pbrook6ddbc6e2008-03-31 03:46:33 +000020
21PAS_OP(s)
22PAS_OP(u)
23#undef PAS_OP
24
25#define PAS_OP(pfx) \
pbrooka7812ae2008-11-17 14:43:54 +000026 DEF_HELPER_2(pfx ## add8, i32, i32, i32) \
27 DEF_HELPER_2(pfx ## sub8, i32, i32, i32) \
28 DEF_HELPER_2(pfx ## sub16, i32, i32, i32) \
29 DEF_HELPER_2(pfx ## add16, i32, i32, i32) \
30 DEF_HELPER_2(pfx ## addsubx, i32, i32, i32) \
31 DEF_HELPER_2(pfx ## subaddx, i32, i32, i32)
pbrook6ddbc6e2008-03-31 03:46:33 +000032PAS_OP(q)
33PAS_OP(sh)
34PAS_OP(uq)
35PAS_OP(uh)
36#undef PAS_OP
37
Blue Swirl9ef39272012-09-04 20:19:15 +000038DEF_HELPER_3(ssat, i32, env, i32, i32)
39DEF_HELPER_3(usat, i32, env, i32, i32)
40DEF_HELPER_3(ssat16, i32, env, i32, i32)
41DEF_HELPER_3(usat16, i32, env, i32, i32)
pbrook6ddbc6e2008-03-31 03:46:33 +000042
Aurelien Jarno4b3d4822012-10-09 21:53:08 +020043DEF_HELPER_FLAGS_2(usad8, TCG_CALL_NO_RWG_SE, i32, i32, i32)
pbrook6ddbc6e2008-03-31 03:46:33 +000044
Aurelien Jarno4b3d4822012-10-09 21:53:08 +020045DEF_HELPER_FLAGS_3(sel_flags, TCG_CALL_NO_RWG_SE,
Aurelien Jarno00e3ab22012-10-05 15:04:45 +010046 i32, i32, i32, i32)
Richard Henderson7666a812022-06-10 14:32:30 +010047DEF_HELPER_2(exception_internal, noreturn, env, i32)
Richard Hendersoneeaf5962022-06-10 14:32:34 +010048DEF_HELPER_3(exception_with_syndrome, noreturn, env, i32, i32)
Richard Hendersond3c5d502022-06-10 14:32:31 +010049DEF_HELPER_4(exception_with_syndrome_el, noreturn, env, i32, i32, i32)
Richard Henderson7666a812022-06-10 14:32:30 +010050DEF_HELPER_2(exception_bkpt_insn, noreturn, env, i32)
Richard Hendersonf0d7c202022-06-10 14:32:32 +010051DEF_HELPER_2(exception_swstep, noreturn, env, i32)
Richard Hendersonee030272021-11-03 00:03:49 -040052DEF_HELPER_2(exception_pc_alignment, noreturn, env, tl)
Paolo Bonzini9886ecd2016-03-04 11:30:21 +000053DEF_HELPER_1(setend, void, env)
Stefano Stabellini58803312017-10-31 11:50:50 +000054DEF_HELPER_2(wfi, void, env, i32)
Peter Maydell72c1d3a2014-03-10 14:56:30 +000055DEF_HELPER_1(wfe, void, env)
Peter Maydella96edb62024-04-30 15:00:35 +010056DEF_HELPER_2(wfit, void, env, i64)
Peter Maydell049e24a2015-07-06 10:05:44 +010057DEF_HELPER_1(yield, void, env)
Edgar E. Iglesias35979d72014-09-29 18:48:50 +010058DEF_HELPER_1(pre_hvc, void, env)
Edgar E. Iglesiase0d6e6a2014-09-29 18:48:50 +010059DEF_HELPER_2(pre_smc, void, env, i32)
Richard Henderson13954582022-05-06 13:02:34 -050060DEF_HELPER_1(vesb, void, env)
pbrookd9ba4832008-03-31 03:46:50 +000061
Blue Swirl1ce94f82012-09-04 20:08:34 +000062DEF_HELPER_3(cpsr_write, void, env, i32, i32)
Peter Maydell235ea1f2016-02-23 15:36:43 +000063DEF_HELPER_2(cpsr_write_eret, void, env, i32)
Blue Swirl9ef39272012-09-04 20:19:15 +000064DEF_HELPER_1(cpsr_read, i32, env)
pbrook6ddbc6e2008-03-31 03:46:33 +000065
pbrooka7812ae2008-11-17 14:43:54 +000066DEF_HELPER_3(v7m_msr, void, env, i32, i32)
67DEF_HELPER_2(v7m_mrs, i32, env, i32)
pbrook8984bd22008-03-31 03:47:48 +000068
Peter Maydellfb602cb2017-09-07 13:54:54 +010069DEF_HELPER_2(v7m_bxns, void, env, i32)
Peter Maydell3e3fa232017-10-09 14:48:33 +010070DEF_HELPER_2(v7m_blxns, void, env, i32)
Peter Maydellfb602cb2017-09-07 13:54:54 +010071
Peter Maydell5158de22017-12-13 17:59:24 +000072DEF_HELPER_3(v7m_tt, i32, env, i32, i32)
73
Peter Maydelle33cf0f2019-04-29 17:36:02 +010074DEF_HELPER_1(v7m_preserve_fp_state, void, env)
75
Peter Maydell019076b2019-04-29 17:36:03 +010076DEF_HELPER_2(v7m_vlstm, void, env, i32)
Peter Maydell956fe142019-04-29 17:36:03 +010077DEF_HELPER_2(v7m_vlldm, void, env, i32)
Peter Maydell019076b2019-04-29 17:36:03 +010078
Peter Maydell55203182018-10-08 14:55:04 +010079DEF_HELPER_2(v8m_stackcheck, void, env, i32)
80
Peter Maydell8e228c92021-08-16 19:03:05 +010081DEF_HELPER_FLAGS_2(check_bxj_trap, TCG_CALL_NO_WG, void, env, i32)
82
Richard Henderson3b07a932023-01-06 11:44:51 -080083DEF_HELPER_4(access_check_cp_reg, cptr, env, i32, i32, i32)
84DEF_HELPER_FLAGS_2(lookup_cp_reg, TCG_CALL_NO_RWG_SE, cptr, env, i32)
Richard Henderson9cd0c0d2023-08-31 16:24:40 -070085DEF_HELPER_FLAGS_2(tidcp_el0, TCG_CALL_NO_WG, void, env, i32)
Richard Henderson27920d32023-08-31 16:24:39 -070086DEF_HELPER_FLAGS_2(tidcp_el1, TCG_CALL_NO_WG, void, env, i32)
Richard Henderson3b07a932023-01-06 11:44:51 -080087DEF_HELPER_3(set_cp_reg, void, env, cptr, i32)
88DEF_HELPER_2(get_cp_reg, i32, env, cptr)
89DEF_HELPER_3(set_cp_reg64, void, env, cptr, i64)
90DEF_HELPER_2(get_cp_reg64, i64, env, cptr)
Peter Maydell4b6a83f2012-06-20 11:57:06 +000091
pbrooka7812ae2008-11-17 14:43:54 +000092DEF_HELPER_2(get_r13_banked, i32, env, i32)
93DEF_HELPER_3(set_r13_banked, void, env, i32, i32)
pbrookb0109802008-03-31 03:47:03 +000094
Peter Maydell8bfd0552016-03-16 17:05:58 +000095DEF_HELPER_3(mrs_banked, i32, env, i32, i32)
96DEF_HELPER_4(msr_banked, void, env, i32, i32, i32)
97
Blue Swirl9ef39272012-09-04 20:19:15 +000098DEF_HELPER_2(get_user_reg, i32, env, i32)
Blue Swirl1ce94f82012-09-04 20:08:34 +000099DEF_HELPER_3(set_user_reg, void, env, i32, i32)
pbrookb0109802008-03-31 03:47:03 +0000100
Peter Maydell19717e92020-03-03 17:49:49 +0000101DEF_HELPER_FLAGS_1(rebuild_hflags_m32_newel, TCG_CALL_NO_RWG, void, env)
Richard Henderson14f3c582019-10-23 11:00:48 -0400102DEF_HELPER_FLAGS_2(rebuild_hflags_m32, TCG_CALL_NO_RWG, void, env, int)
Alex Bennéef80741d2019-12-12 11:47:34 +0000103DEF_HELPER_FLAGS_1(rebuild_hflags_a32_newel, TCG_CALL_NO_RWG, void, env)
Richard Henderson14f3c582019-10-23 11:00:48 -0400104DEF_HELPER_FLAGS_2(rebuild_hflags_a32, TCG_CALL_NO_RWG, void, env, int)
105DEF_HELPER_FLAGS_2(rebuild_hflags_a64, TCG_CALL_NO_RWG, void, env, int)
106
Richard Hendersonc15294c2020-06-25 20:31:13 -0700107DEF_HELPER_FLAGS_5(probe_access, TCG_CALL_NO_WG, void, env, tl, i32, i32, i32)
108
pbrooka7812ae2008-11-17 14:43:54 +0000109DEF_HELPER_1(vfp_get_fpscr, i32, env)
110DEF_HELPER_2(vfp_set_fpscr, void, env, i32)
pbrook4373f3c2008-03-31 03:47:19 +0000111
Peter Maydell120a0eb2020-08-28 19:33:12 +0100112DEF_HELPER_3(vfp_addh, f16, f16, f16, ptr)
Peter Maydellae1857e2011-05-25 14:51:48 +0000113DEF_HELPER_3(vfp_adds, f32, f32, f32, ptr)
114DEF_HELPER_3(vfp_addd, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100115DEF_HELPER_3(vfp_subh, f16, f16, f16, ptr)
Peter Maydellae1857e2011-05-25 14:51:48 +0000116DEF_HELPER_3(vfp_subs, f32, f32, f32, ptr)
117DEF_HELPER_3(vfp_subd, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100118DEF_HELPER_3(vfp_mulh, f16, f16, f16, ptr)
Peter Maydellae1857e2011-05-25 14:51:48 +0000119DEF_HELPER_3(vfp_muls, f32, f32, f32, ptr)
120DEF_HELPER_3(vfp_muld, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100121DEF_HELPER_3(vfp_divh, f16, f16, f16, ptr)
Peter Maydellae1857e2011-05-25 14:51:48 +0000122DEF_HELPER_3(vfp_divs, f32, f32, f32, ptr)
123DEF_HELPER_3(vfp_divd, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100124DEF_HELPER_3(vfp_maxh, f16, f16, f16, ptr)
Peter Maydellf71a2ae2014-01-04 22:15:49 +0000125DEF_HELPER_3(vfp_maxs, f32, f32, f32, ptr)
126DEF_HELPER_3(vfp_maxd, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100127DEF_HELPER_3(vfp_minh, f16, f16, f16, ptr)
Peter Maydellf71a2ae2014-01-04 22:15:49 +0000128DEF_HELPER_3(vfp_mins, f32, f32, f32, ptr)
129DEF_HELPER_3(vfp_mind, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100130DEF_HELPER_3(vfp_maxnumh, f16, f16, f16, ptr)
Peter Maydellf71a2ae2014-01-04 22:15:49 +0000131DEF_HELPER_3(vfp_maxnums, f32, f32, f32, ptr)
132DEF_HELPER_3(vfp_maxnumd, f64, f64, f64, ptr)
Peter Maydell120a0eb2020-08-28 19:33:12 +0100133DEF_HELPER_3(vfp_minnumh, f16, f16, f16, ptr)
Peter Maydellf71a2ae2014-01-04 22:15:49 +0000134DEF_HELPER_3(vfp_minnums, f32, f32, f32, ptr)
135DEF_HELPER_3(vfp_minnumd, f64, f64, f64, ptr)
Richard Hendersoncf866d82024-12-11 10:29:52 -0600136DEF_HELPER_2(vfp_sqrth, f16, f16, ptr)
137DEF_HELPER_2(vfp_sqrts, f32, f32, ptr)
138DEF_HELPER_2(vfp_sqrtd, f64, f64, ptr)
Peter Maydell1b88b052020-08-28 19:33:19 +0100139DEF_HELPER_3(vfp_cmph, void, f16, f16, env)
pbrooka7812ae2008-11-17 14:43:54 +0000140DEF_HELPER_3(vfp_cmps, void, f32, f32, env)
141DEF_HELPER_3(vfp_cmpd, void, f64, f64, env)
Peter Maydell1b88b052020-08-28 19:33:19 +0100142DEF_HELPER_3(vfp_cmpeh, void, f16, f16, env)
pbrooka7812ae2008-11-17 14:43:54 +0000143DEF_HELPER_3(vfp_cmpes, void, f32, f32, env)
144DEF_HELPER_3(vfp_cmped, void, f64, f64, env)
pbrook4373f3c2008-03-31 03:47:19 +0000145
pbrooka7812ae2008-11-17 14:43:54 +0000146DEF_HELPER_2(vfp_fcvtds, f64, f32, env)
147DEF_HELPER_2(vfp_fcvtsd, f32, f64, env)
Richard Henderson3a98ac42021-05-25 15:58:08 -0700148DEF_HELPER_FLAGS_2(bfcvt, TCG_CALL_NO_RWG, i32, f32, ptr)
Richard Hendersond29b17c2021-05-25 15:58:09 -0700149DEF_HELPER_FLAGS_2(bfcvt_pair, TCG_CALL_NO_RWG, i32, i64, ptr)
pbrook4373f3c2008-03-31 03:47:19 +0000150
Alex Bennée93193192018-03-01 11:05:54 +0000151DEF_HELPER_2(vfp_uitoh, f16, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100152DEF_HELPER_2(vfp_uitos, f32, i32, ptr)
153DEF_HELPER_2(vfp_uitod, f64, i32, ptr)
Alex Bennée93193192018-03-01 11:05:54 +0000154DEF_HELPER_2(vfp_sitoh, f16, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100155DEF_HELPER_2(vfp_sitos, f32, i32, ptr)
156DEF_HELPER_2(vfp_sitod, f64, i32, ptr)
pbrook4373f3c2008-03-31 03:47:19 +0000157
Alex Bennée93193192018-03-01 11:05:54 +0000158DEF_HELPER_2(vfp_touih, i32, f16, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100159DEF_HELPER_2(vfp_touis, i32, f32, ptr)
160DEF_HELPER_2(vfp_touid, i32, f64, ptr)
Alex Bennée93193192018-03-01 11:05:54 +0000161DEF_HELPER_2(vfp_touizh, i32, f16, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100162DEF_HELPER_2(vfp_touizs, i32, f32, ptr)
163DEF_HELPER_2(vfp_touizd, i32, f64, ptr)
Richard Hendersondf4de1a2018-06-29 15:11:10 +0100164DEF_HELPER_2(vfp_tosih, s32, f16, ptr)
165DEF_HELPER_2(vfp_tosis, s32, f32, ptr)
166DEF_HELPER_2(vfp_tosid, s32, f64, ptr)
167DEF_HELPER_2(vfp_tosizh, s32, f16, ptr)
168DEF_HELPER_2(vfp_tosizs, s32, f32, ptr)
169DEF_HELPER_2(vfp_tosizd, s32, f64, ptr)
pbrook4373f3c2008-03-31 03:47:19 +0000170
Peter Maydell414ba272020-08-28 19:33:23 +0100171DEF_HELPER_3(vfp_toshh_round_to_zero, i32, f16, i32, ptr)
172DEF_HELPER_3(vfp_toslh_round_to_zero, i32, f16, i32, ptr)
173DEF_HELPER_3(vfp_touhh_round_to_zero, i32, f16, i32, ptr)
174DEF_HELPER_3(vfp_toulh_round_to_zero, i32, f16, i32, ptr)
Will Newton16d5b3c2014-01-07 17:19:13 +0000175DEF_HELPER_3(vfp_toshs_round_to_zero, i32, f32, i32, ptr)
176DEF_HELPER_3(vfp_tosls_round_to_zero, i32, f32, i32, ptr)
177DEF_HELPER_3(vfp_touhs_round_to_zero, i32, f32, i32, ptr)
178DEF_HELPER_3(vfp_touls_round_to_zero, i32, f32, i32, ptr)
179DEF_HELPER_3(vfp_toshd_round_to_zero, i64, f64, i32, ptr)
180DEF_HELPER_3(vfp_tosld_round_to_zero, i64, f64, i32, ptr)
181DEF_HELPER_3(vfp_touhd_round_to_zero, i64, f64, i32, ptr)
182DEF_HELPER_3(vfp_tould_round_to_zero, i64, f64, i32, ptr)
Richard Henderson88808a022018-05-10 18:10:58 +0100183DEF_HELPER_3(vfp_touhh, i32, f16, i32, ptr)
184DEF_HELPER_3(vfp_toshh, i32, f16, i32, ptr)
Richard Henderson564a0632018-05-15 14:58:43 +0100185DEF_HELPER_3(vfp_toulh, i32, f16, i32, ptr)
186DEF_HELPER_3(vfp_toslh, i32, f16, i32, ptr)
187DEF_HELPER_3(vfp_touqh, i64, f16, i32, ptr)
188DEF_HELPER_3(vfp_tosqh, i64, f16, i32, ptr)
Will Newton3c6a0742014-01-07 17:19:14 +0000189DEF_HELPER_3(vfp_toshs, i32, f32, i32, ptr)
190DEF_HELPER_3(vfp_tosls, i32, f32, i32, ptr)
191DEF_HELPER_3(vfp_tosqs, i64, f32, i32, ptr)
192DEF_HELPER_3(vfp_touhs, i32, f32, i32, ptr)
193DEF_HELPER_3(vfp_touls, i32, f32, i32, ptr)
194DEF_HELPER_3(vfp_touqs, i64, f32, i32, ptr)
195DEF_HELPER_3(vfp_toshd, i64, f64, i32, ptr)
196DEF_HELPER_3(vfp_tosld, i64, f64, i32, ptr)
197DEF_HELPER_3(vfp_tosqd, i64, f64, i32, ptr)
198DEF_HELPER_3(vfp_touhd, i64, f64, i32, ptr)
199DEF_HELPER_3(vfp_tould, i64, f64, i32, ptr)
200DEF_HELPER_3(vfp_touqd, i64, f64, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100201DEF_HELPER_3(vfp_shtos, f32, i32, i32, ptr)
202DEF_HELPER_3(vfp_sltos, f32, i32, i32, ptr)
Will Newton3c6a0742014-01-07 17:19:14 +0000203DEF_HELPER_3(vfp_sqtos, f32, i64, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100204DEF_HELPER_3(vfp_uhtos, f32, i32, i32, ptr)
205DEF_HELPER_3(vfp_ultos, f32, i32, i32, ptr)
Will Newton3c6a0742014-01-07 17:19:14 +0000206DEF_HELPER_3(vfp_uqtos, f32, i64, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100207DEF_HELPER_3(vfp_shtod, f64, i64, i32, ptr)
208DEF_HELPER_3(vfp_sltod, f64, i64, i32, ptr)
Will Newton3c6a0742014-01-07 17:19:14 +0000209DEF_HELPER_3(vfp_sqtod, f64, i64, i32, ptr)
Peter Maydell5500b062011-05-19 14:46:19 +0100210DEF_HELPER_3(vfp_uhtod, f64, i64, i32, ptr)
211DEF_HELPER_3(vfp_ultod, f64, i64, i32, ptr)
Will Newton3c6a0742014-01-07 17:19:14 +0000212DEF_HELPER_3(vfp_uqtod, f64, i64, i32, ptr)
Peter Maydell414ba272020-08-28 19:33:23 +0100213DEF_HELPER_3(vfp_shtoh, f16, i32, i32, ptr)
214DEF_HELPER_3(vfp_uhtoh, f16, i32, i32, ptr)
Alex Bennée93193192018-03-01 11:05:54 +0000215DEF_HELPER_3(vfp_sltoh, f16, i32, i32, ptr)
216DEF_HELPER_3(vfp_ultoh, f16, i32, i32, ptr)
Richard Henderson564a0632018-05-15 14:58:43 +0100217DEF_HELPER_3(vfp_sqtoh, f16, i64, i32, ptr)
218DEF_HELPER_3(vfp_uqtoh, f16, i64, i32, ptr)
pbrook4373f3c2008-03-31 03:47:19 +0000219
Peter Maydell61db12d2020-10-13 11:35:32 +0100220DEF_HELPER_3(vfp_shtos_round_to_nearest, f32, i32, i32, ptr)
221DEF_HELPER_3(vfp_sltos_round_to_nearest, f32, i32, i32, ptr)
222DEF_HELPER_3(vfp_uhtos_round_to_nearest, f32, i32, i32, ptr)
223DEF_HELPER_3(vfp_ultos_round_to_nearest, f32, i32, i32, ptr)
224DEF_HELPER_3(vfp_shtod_round_to_nearest, f64, i64, i32, ptr)
225DEF_HELPER_3(vfp_sltod_round_to_nearest, f64, i64, i32, ptr)
226DEF_HELPER_3(vfp_uhtod_round_to_nearest, f64, i64, i32, ptr)
227DEF_HELPER_3(vfp_ultod_round_to_nearest, f64, i64, i32, ptr)
228DEF_HELPER_3(vfp_shtoh_round_to_nearest, f16, i32, i32, ptr)
229DEF_HELPER_3(vfp_uhtoh_round_to_nearest, f16, i32, i32, ptr)
230DEF_HELPER_3(vfp_sltoh_round_to_nearest, f16, i32, i32, ptr)
231DEF_HELPER_3(vfp_ultoh_round_to_nearest, f16, i32, i32, ptr)
232
Alex Bennée9b049912018-03-01 11:05:47 +0000233DEF_HELPER_FLAGS_2(set_rmode, TCG_CALL_NO_RWG, i32, i32, ptr)
Alexander Graf52a1f6a2014-01-07 17:19:14 +0000234
Alex Bennée486624f2018-05-07 13:17:16 +0100235DEF_HELPER_FLAGS_3(vfp_fcvt_f16_to_f32, TCG_CALL_NO_RWG, f32, f16, ptr, i32)
236DEF_HELPER_FLAGS_3(vfp_fcvt_f32_to_f16, TCG_CALL_NO_RWG, f16, f32, ptr, i32)
237DEF_HELPER_FLAGS_3(vfp_fcvt_f16_to_f64, TCG_CALL_NO_RWG, f64, f16, ptr, i32)
238DEF_HELPER_FLAGS_3(vfp_fcvt_f64_to_f16, TCG_CALL_NO_RWG, f16, f64, ptr, i32)
Paul Brook60011492009-11-19 16:45:20 +0000239
Peter Maydellda97f522011-10-19 16:14:07 +0000240DEF_HELPER_4(vfp_muladdd, f64, f64, f64, f64, ptr)
241DEF_HELPER_4(vfp_muladds, f32, f32, f32, f32, ptr)
Peter Maydell9886fe22020-08-28 19:33:15 +0100242DEF_HELPER_4(vfp_muladdh, f16, f16, f16, f16, ptr)
Peter Maydellda97f522011-10-19 16:14:07 +0000243
Alex Bennée5eb70732018-03-01 11:05:54 +0000244DEF_HELPER_FLAGS_2(recpe_f16, TCG_CALL_NO_RWG, f16, f16, ptr)
Alex Bennéeb6d44432014-03-17 16:31:52 +0000245DEF_HELPER_FLAGS_2(recpe_f32, TCG_CALL_NO_RWG, f32, f32, ptr)
246DEF_HELPER_FLAGS_2(recpe_f64, TCG_CALL_NO_RWG, f64, f64, ptr)
Alex Bennéed719cbc2018-03-01 11:05:55 +0000247DEF_HELPER_FLAGS_2(rsqrte_f16, TCG_CALL_NO_RWG, f16, f16, ptr)
Alex Bennéec2fb4182014-03-17 16:31:53 +0000248DEF_HELPER_FLAGS_2(rsqrte_f32, TCG_CALL_NO_RWG, f32, f32, ptr)
249DEF_HELPER_FLAGS_2(rsqrte_f64, TCG_CALL_NO_RWG, f64, f64, ptr)
Richard Hendersonfe6fb4b2020-05-13 09:32:40 -0700250DEF_HELPER_FLAGS_1(recpe_u32, TCG_CALL_NO_RWG, i32, i32)
251DEF_HELPER_FLAGS_1(rsqrte_u32, TCG_CALL_NO_RWG, i32, i32)
Richard Henderson604cef32020-11-05 09:11:26 -0800252DEF_HELPER_FLAGS_4(neon_tbl, TCG_CALL_NO_RWG, i64, env, i32, i64, i64)
pbrook4373f3c2008-03-31 03:47:19 +0000253
Blue Swirl9ef39272012-09-04 20:19:15 +0000254DEF_HELPER_3(shl_cc, i32, env, i32, i32)
255DEF_HELPER_3(shr_cc, i32, env, i32, i32)
256DEF_HELPER_3(sar_cc, i32, env, i32, i32)
257DEF_HELPER_3(ror_cc, i32, env, i32, i32)
pbrook8984bd22008-03-31 03:47:48 +0000258
Peter Maydell0a6f4b42020-08-28 19:33:27 +0100259DEF_HELPER_FLAGS_2(rinth_exact, TCG_CALL_NO_RWG, f16, f16, ptr)
Peter Maydelld9b08482014-01-07 17:19:14 +0000260DEF_HELPER_FLAGS_2(rints_exact, TCG_CALL_NO_RWG, f32, f32, ptr)
261DEF_HELPER_FLAGS_2(rintd_exact, TCG_CALL_NO_RWG, f64, f64, ptr)
Peter Maydell0a6f4b42020-08-28 19:33:27 +0100262DEF_HELPER_FLAGS_2(rinth, TCG_CALL_NO_RWG, f16, f16, ptr)
Peter Maydelld9b08482014-01-07 17:19:14 +0000263DEF_HELPER_FLAGS_2(rints, TCG_CALL_NO_RWG, f32, f32, ptr)
264DEF_HELPER_FLAGS_2(rintd, TCG_CALL_NO_RWG, f64, f64, ptr)
265
Richard Henderson6c1f6f22019-02-21 18:17:46 +0000266DEF_HELPER_FLAGS_2(vjcvt, TCG_CALL_NO_RWG, i32, f64, env)
267DEF_HELPER_FLAGS_2(fjcvtzs, TCG_CALL_NO_RWG, i64, f64, ptr)
268
Marc Zyngier9ca1d772019-12-01 12:20:16 +0000269DEF_HELPER_FLAGS_3(check_hcr_el2_trap, TCG_CALL_NO_WG, void, env, i32, i32)
270
pbrookad694712008-03-31 03:48:30 +0000271/* neon_helper.c */
pbrooka7812ae2008-11-17 14:43:54 +0000272DEF_HELPER_2(neon_pmin_u8, i32, i32, i32)
273DEF_HELPER_2(neon_pmin_s8, i32, i32, i32)
274DEF_HELPER_2(neon_pmin_u16, i32, i32, i32)
275DEF_HELPER_2(neon_pmin_s16, i32, i32, i32)
276DEF_HELPER_2(neon_pmax_u8, i32, i32, i32)
277DEF_HELPER_2(neon_pmax_s8, i32, i32, i32)
278DEF_HELPER_2(neon_pmax_u16, i32, i32, i32)
279DEF_HELPER_2(neon_pmax_s16, i32, i32, i32)
pbrookad694712008-03-31 03:48:30 +0000280
pbrooka7812ae2008-11-17 14:43:54 +0000281DEF_HELPER_2(neon_shl_u16, i32, i32, i32)
282DEF_HELPER_2(neon_shl_s16, i32, i32, i32)
pbrooka7812ae2008-11-17 14:43:54 +0000283DEF_HELPER_2(neon_rshl_u8, i32, i32, i32)
284DEF_HELPER_2(neon_rshl_s8, i32, i32, i32)
285DEF_HELPER_2(neon_rshl_u16, i32, i32, i32)
286DEF_HELPER_2(neon_rshl_s16, i32, i32, i32)
287DEF_HELPER_2(neon_rshl_u32, i32, i32, i32)
288DEF_HELPER_2(neon_rshl_s32, i32, i32, i32)
289DEF_HELPER_2(neon_rshl_u64, i64, i64, i64)
290DEF_HELPER_2(neon_rshl_s64, i64, i64, i64)
Peter Maydell02da0b22011-05-25 13:31:02 +0000291DEF_HELPER_3(neon_qshl_u8, i32, env, i32, i32)
292DEF_HELPER_3(neon_qshl_s8, i32, env, i32, i32)
293DEF_HELPER_3(neon_qshl_u16, i32, env, i32, i32)
294DEF_HELPER_3(neon_qshl_s16, i32, env, i32, i32)
295DEF_HELPER_3(neon_qshl_u32, i32, env, i32, i32)
296DEF_HELPER_3(neon_qshl_s32, i32, env, i32, i32)
297DEF_HELPER_3(neon_qshl_u64, i64, env, i64, i64)
298DEF_HELPER_3(neon_qshl_s64, i64, env, i64, i64)
Richard Hendersonf5daeec2013-09-14 15:38:30 -0700299DEF_HELPER_3(neon_qshlu_s8, i32, env, i32, i32)
300DEF_HELPER_3(neon_qshlu_s16, i32, env, i32, i32)
301DEF_HELPER_3(neon_qshlu_s32, i32, env, i32, i32)
302DEF_HELPER_3(neon_qshlu_s64, i64, env, i64, i64)
Peter Maydell02da0b22011-05-25 13:31:02 +0000303DEF_HELPER_3(neon_qrshl_u8, i32, env, i32, i32)
304DEF_HELPER_3(neon_qrshl_s8, i32, env, i32, i32)
305DEF_HELPER_3(neon_qrshl_u16, i32, env, i32, i32)
306DEF_HELPER_3(neon_qrshl_s16, i32, env, i32, i32)
307DEF_HELPER_3(neon_qrshl_u32, i32, env, i32, i32)
308DEF_HELPER_3(neon_qrshl_s32, i32, env, i32, i32)
309DEF_HELPER_3(neon_qrshl_u64, i64, env, i64, i64)
310DEF_HELPER_3(neon_qrshl_s64, i64, env, i64, i64)
Richard Hendersone72a6872024-05-28 13:30:23 -0700311DEF_HELPER_FLAGS_5(neon_sqshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
312DEF_HELPER_FLAGS_5(neon_sqshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
313DEF_HELPER_FLAGS_5(neon_sqshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
314DEF_HELPER_FLAGS_5(neon_sqshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
315DEF_HELPER_FLAGS_5(neon_uqshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
316DEF_HELPER_FLAGS_5(neon_uqshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
317DEF_HELPER_FLAGS_5(neon_uqshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
318DEF_HELPER_FLAGS_5(neon_uqshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersoncef9d542024-05-28 13:30:25 -0700319DEF_HELPER_FLAGS_5(neon_sqrshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
320DEF_HELPER_FLAGS_5(neon_sqrshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
321DEF_HELPER_FLAGS_5(neon_sqrshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
322DEF_HELPER_FLAGS_5(neon_sqrshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
323DEF_HELPER_FLAGS_5(neon_uqrshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
324DEF_HELPER_FLAGS_5(neon_uqrshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
325DEF_HELPER_FLAGS_5(neon_uqrshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
326DEF_HELPER_FLAGS_5(neon_uqrshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersonef2b80e2024-09-11 19:41:10 -0700327DEF_HELPER_FLAGS_4(neon_sqshli_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
328DEF_HELPER_FLAGS_4(neon_sqshli_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
329DEF_HELPER_FLAGS_4(neon_sqshli_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
330DEF_HELPER_FLAGS_4(neon_sqshli_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
331DEF_HELPER_FLAGS_4(neon_uqshli_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
332DEF_HELPER_FLAGS_4(neon_uqshli_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
333DEF_HELPER_FLAGS_4(neon_uqshli_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
334DEF_HELPER_FLAGS_4(neon_uqshli_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
335DEF_HELPER_FLAGS_4(neon_sqshlui_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
336DEF_HELPER_FLAGS_4(neon_sqshlui_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
337DEF_HELPER_FLAGS_4(neon_sqshlui_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
338DEF_HELPER_FLAGS_4(neon_sqshlui_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
pbrookad694712008-03-31 03:48:30 +0000339
Richard Henderson940392c2024-05-28 13:30:21 -0700340DEF_HELPER_FLAGS_4(gvec_srshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
341DEF_HELPER_FLAGS_4(gvec_srshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
342DEF_HELPER_FLAGS_4(gvec_srshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
343DEF_HELPER_FLAGS_4(gvec_srshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
344
345DEF_HELPER_FLAGS_4(gvec_urshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
346DEF_HELPER_FLAGS_4(gvec_urshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
347DEF_HELPER_FLAGS_4(gvec_urshl_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
348DEF_HELPER_FLAGS_4(gvec_urshl_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
349
pbrooka7812ae2008-11-17 14:43:54 +0000350DEF_HELPER_2(neon_add_u8, i32, i32, i32)
351DEF_HELPER_2(neon_add_u16, i32, i32, i32)
pbrooka7812ae2008-11-17 14:43:54 +0000352DEF_HELPER_2(neon_sub_u8, i32, i32, i32)
353DEF_HELPER_2(neon_sub_u16, i32, i32, i32)
354DEF_HELPER_2(neon_mul_u8, i32, i32, i32)
355DEF_HELPER_2(neon_mul_u16, i32, i32, i32)
pbrookad694712008-03-31 03:48:30 +0000356
pbrooka7812ae2008-11-17 14:43:54 +0000357DEF_HELPER_2(neon_tst_u8, i32, i32, i32)
358DEF_HELPER_2(neon_tst_u16, i32, i32, i32)
359DEF_HELPER_2(neon_tst_u32, i32, i32, i32)
pbrookad694712008-03-31 03:48:30 +0000360
pbrooka7812ae2008-11-17 14:43:54 +0000361DEF_HELPER_1(neon_clz_u8, i32, i32)
362DEF_HELPER_1(neon_clz_u16, i32, i32)
363DEF_HELPER_1(neon_cls_s8, i32, i32)
364DEF_HELPER_1(neon_cls_s16, i32, i32)
365DEF_HELPER_1(neon_cls_s32, i32, i32)
Richard Henderson4694d572024-12-11 10:30:06 -0600366DEF_HELPER_FLAGS_3(gvec_cnt_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
367DEF_HELPER_FLAGS_3(gvec_rbit_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
pbrookad694712008-03-31 03:48:30 +0000368
Peter Maydell02da0b22011-05-25 13:31:02 +0000369DEF_HELPER_3(neon_qdmulh_s16, i32, env, i32, i32)
370DEF_HELPER_3(neon_qrdmulh_s16, i32, env, i32, i32)
Richard Hendersond9061ec2018-03-02 10:45:41 +0000371DEF_HELPER_4(neon_qrdmlah_s16, i32, env, i32, i32, i32)
372DEF_HELPER_4(neon_qrdmlsh_s16, i32, env, i32, i32, i32)
Peter Maydell02da0b22011-05-25 13:31:02 +0000373DEF_HELPER_3(neon_qdmulh_s32, i32, env, i32, i32)
374DEF_HELPER_3(neon_qrdmulh_s32, i32, env, i32, i32)
Richard Hendersond9061ec2018-03-02 10:45:41 +0000375DEF_HELPER_4(neon_qrdmlah_s32, i32, env, s32, s32, s32)
376DEF_HELPER_4(neon_qrdmlsh_s32, i32, env, s32, s32, s32)
pbrookad694712008-03-31 03:48:30 +0000377
Richard Henderson3e683f02024-09-11 19:41:11 -0700378DEF_HELPER_1(neon_narrow_u8, i64, i64)
379DEF_HELPER_1(neon_narrow_u16, i64, i64)
380DEF_HELPER_2(neon_unarrow_sat8, i64, env, i64)
381DEF_HELPER_2(neon_narrow_sat_u8, i64, env, i64)
382DEF_HELPER_2(neon_narrow_sat_s8, i64, env, i64)
383DEF_HELPER_2(neon_unarrow_sat16, i64, env, i64)
384DEF_HELPER_2(neon_narrow_sat_u16, i64, env, i64)
385DEF_HELPER_2(neon_narrow_sat_s16, i64, env, i64)
386DEF_HELPER_2(neon_unarrow_sat32, i64, env, i64)
387DEF_HELPER_2(neon_narrow_sat_u32, i64, env, i64)
388DEF_HELPER_2(neon_narrow_sat_s32, i64, env, i64)
pbrooka7812ae2008-11-17 14:43:54 +0000389DEF_HELPER_1(neon_narrow_high_u8, i32, i64)
390DEF_HELPER_1(neon_narrow_high_u16, i32, i64)
391DEF_HELPER_1(neon_narrow_round_high_u8, i32, i64)
392DEF_HELPER_1(neon_narrow_round_high_u16, i32, i64)
393DEF_HELPER_1(neon_widen_u8, i64, i32)
394DEF_HELPER_1(neon_widen_s8, i64, i32)
395DEF_HELPER_1(neon_widen_u16, i64, i32)
396DEF_HELPER_1(neon_widen_s16, i64, i32)
pbrookad694712008-03-31 03:48:30 +0000397
Richard Hendersone90cf922024-12-11 10:30:11 -0600398DEF_HELPER_FLAGS_1(neon_addlp_s8, TCG_CALL_NO_RWG_SE, i64, i64)
399DEF_HELPER_FLAGS_1(neon_addlp_s16, TCG_CALL_NO_RWG_SE, i64, i64)
Peter Maydell02da0b22011-05-25 13:31:02 +0000400DEF_HELPER_3(neon_addl_saturate_s32, i64, env, i64, i64)
401DEF_HELPER_3(neon_addl_saturate_s64, i64, env, i64, i64)
pbrooka7812ae2008-11-17 14:43:54 +0000402DEF_HELPER_2(neon_abdl_u16, i64, i32, i32)
403DEF_HELPER_2(neon_abdl_s16, i64, i32, i32)
404DEF_HELPER_2(neon_abdl_u32, i64, i32, i32)
405DEF_HELPER_2(neon_abdl_s32, i64, i32, i32)
406DEF_HELPER_2(neon_abdl_u64, i64, i32, i32)
407DEF_HELPER_2(neon_abdl_s64, i64, i32, i32)
408DEF_HELPER_2(neon_mull_u8, i64, i32, i32)
409DEF_HELPER_2(neon_mull_s8, i64, i32, i32)
410DEF_HELPER_2(neon_mull_u16, i64, i32, i32)
411DEF_HELPER_2(neon_mull_s16, i64, i32, i32)
pbrookad694712008-03-31 03:48:30 +0000412
pbrooka7812ae2008-11-17 14:43:54 +0000413DEF_HELPER_1(neon_negl_u16, i64, i64)
414DEF_HELPER_1(neon_negl_u32, i64, i64)
pbrookad694712008-03-31 03:48:30 +0000415
Alex Bennée0a79bc82014-03-18 23:10:06 +0000416DEF_HELPER_FLAGS_2(neon_qabs_s8, TCG_CALL_NO_RWG, i32, env, i32)
417DEF_HELPER_FLAGS_2(neon_qabs_s16, TCG_CALL_NO_RWG, i32, env, i32)
418DEF_HELPER_FLAGS_2(neon_qabs_s32, TCG_CALL_NO_RWG, i32, env, i32)
419DEF_HELPER_FLAGS_2(neon_qabs_s64, TCG_CALL_NO_RWG, i64, env, i64)
420DEF_HELPER_FLAGS_2(neon_qneg_s8, TCG_CALL_NO_RWG, i32, env, i32)
421DEF_HELPER_FLAGS_2(neon_qneg_s16, TCG_CALL_NO_RWG, i32, env, i32)
422DEF_HELPER_FLAGS_2(neon_qneg_s32, TCG_CALL_NO_RWG, i32, env, i32)
423DEF_HELPER_FLAGS_2(neon_qneg_s64, TCG_CALL_NO_RWG, i64, env, i64)
pbrookad694712008-03-31 03:48:30 +0000424
Peter Maydellaa47cfd2011-05-25 13:49:19 +0000425DEF_HELPER_3(neon_ceq_f32, i32, i32, i32, ptr)
426DEF_HELPER_3(neon_cge_f32, i32, i32, i32, ptr)
427DEF_HELPER_3(neon_cgt_f32, i32, i32, i32, ptr)
428DEF_HELPER_3(neon_acge_f32, i32, i32, i32, ptr)
429DEF_HELPER_3(neon_acgt_f32, i32, i32, i32, ptr)
Peter Maydell057d5f62014-02-20 10:35:50 +0000430DEF_HELPER_3(neon_acge_f64, i64, i64, i64, ptr)
431DEF_HELPER_3(neon_acgt_f64, i64, i64, i64, ptr)
pbrookad694712008-03-31 03:48:30 +0000432
pbrooke6771372008-03-31 03:49:05 +0000433/* iwmmxt_helper.c */
pbrooka7812ae2008-11-17 14:43:54 +0000434DEF_HELPER_2(iwmmxt_maddsq, i64, i64, i64)
435DEF_HELPER_2(iwmmxt_madduq, i64, i64, i64)
436DEF_HELPER_2(iwmmxt_sadb, i64, i64, i64)
437DEF_HELPER_2(iwmmxt_sadw, i64, i64, i64)
438DEF_HELPER_2(iwmmxt_mulslw, i64, i64, i64)
439DEF_HELPER_2(iwmmxt_mulshw, i64, i64, i64)
440DEF_HELPER_2(iwmmxt_mululw, i64, i64, i64)
441DEF_HELPER_2(iwmmxt_muluhw, i64, i64, i64)
442DEF_HELPER_2(iwmmxt_macsw, i64, i64, i64)
443DEF_HELPER_2(iwmmxt_macuw, i64, i64, i64)
444DEF_HELPER_1(iwmmxt_setpsr_nz, i32, i64)
pbrooke6771372008-03-31 03:49:05 +0000445
Peter Maydell477955b2011-05-25 13:22:31 +0000446#define DEF_IWMMXT_HELPER_SIZE_ENV(name) \
447DEF_HELPER_3(iwmmxt_##name##b, i64, env, i64, i64) \
448DEF_HELPER_3(iwmmxt_##name##w, i64, env, i64, i64) \
449DEF_HELPER_3(iwmmxt_##name##l, i64, env, i64, i64) \
pbrooke6771372008-03-31 03:49:05 +0000450
Peter Maydell477955b2011-05-25 13:22:31 +0000451DEF_IWMMXT_HELPER_SIZE_ENV(unpackl)
452DEF_IWMMXT_HELPER_SIZE_ENV(unpackh)
pbrooke6771372008-03-31 03:49:05 +0000453
Peter Maydell477955b2011-05-25 13:22:31 +0000454DEF_HELPER_2(iwmmxt_unpacklub, i64, env, i64)
455DEF_HELPER_2(iwmmxt_unpackluw, i64, env, i64)
456DEF_HELPER_2(iwmmxt_unpacklul, i64, env, i64)
457DEF_HELPER_2(iwmmxt_unpackhub, i64, env, i64)
458DEF_HELPER_2(iwmmxt_unpackhuw, i64, env, i64)
459DEF_HELPER_2(iwmmxt_unpackhul, i64, env, i64)
460DEF_HELPER_2(iwmmxt_unpacklsb, i64, env, i64)
461DEF_HELPER_2(iwmmxt_unpacklsw, i64, env, i64)
462DEF_HELPER_2(iwmmxt_unpacklsl, i64, env, i64)
463DEF_HELPER_2(iwmmxt_unpackhsb, i64, env, i64)
464DEF_HELPER_2(iwmmxt_unpackhsw, i64, env, i64)
465DEF_HELPER_2(iwmmxt_unpackhsl, i64, env, i64)
pbrooke6771372008-03-31 03:49:05 +0000466
Peter Maydell477955b2011-05-25 13:22:31 +0000467DEF_IWMMXT_HELPER_SIZE_ENV(cmpeq)
468DEF_IWMMXT_HELPER_SIZE_ENV(cmpgtu)
469DEF_IWMMXT_HELPER_SIZE_ENV(cmpgts)
pbrooke6771372008-03-31 03:49:05 +0000470
Peter Maydell477955b2011-05-25 13:22:31 +0000471DEF_IWMMXT_HELPER_SIZE_ENV(mins)
472DEF_IWMMXT_HELPER_SIZE_ENV(minu)
473DEF_IWMMXT_HELPER_SIZE_ENV(maxs)
474DEF_IWMMXT_HELPER_SIZE_ENV(maxu)
pbrooke6771372008-03-31 03:49:05 +0000475
Peter Maydell477955b2011-05-25 13:22:31 +0000476DEF_IWMMXT_HELPER_SIZE_ENV(subn)
477DEF_IWMMXT_HELPER_SIZE_ENV(addn)
478DEF_IWMMXT_HELPER_SIZE_ENV(subu)
479DEF_IWMMXT_HELPER_SIZE_ENV(addu)
480DEF_IWMMXT_HELPER_SIZE_ENV(subs)
481DEF_IWMMXT_HELPER_SIZE_ENV(adds)
pbrooke6771372008-03-31 03:49:05 +0000482
Peter Maydell477955b2011-05-25 13:22:31 +0000483DEF_HELPER_3(iwmmxt_avgb0, i64, env, i64, i64)
484DEF_HELPER_3(iwmmxt_avgb1, i64, env, i64, i64)
485DEF_HELPER_3(iwmmxt_avgw0, i64, env, i64, i64)
486DEF_HELPER_3(iwmmxt_avgw1, i64, env, i64, i64)
pbrooke6771372008-03-31 03:49:05 +0000487
pbrooka7812ae2008-11-17 14:43:54 +0000488DEF_HELPER_3(iwmmxt_align, i64, i64, i64, i32)
489DEF_HELPER_4(iwmmxt_insr, i64, i64, i32, i32, i32)
pbrooke6771372008-03-31 03:49:05 +0000490
pbrooka7812ae2008-11-17 14:43:54 +0000491DEF_HELPER_1(iwmmxt_bcstb, i64, i32)
492DEF_HELPER_1(iwmmxt_bcstw, i64, i32)
493DEF_HELPER_1(iwmmxt_bcstl, i64, i32)
pbrooke6771372008-03-31 03:49:05 +0000494
pbrooka7812ae2008-11-17 14:43:54 +0000495DEF_HELPER_1(iwmmxt_addcb, i64, i64)
496DEF_HELPER_1(iwmmxt_addcw, i64, i64)
497DEF_HELPER_1(iwmmxt_addcl, i64, i64)
pbrooke6771372008-03-31 03:49:05 +0000498
pbrooka7812ae2008-11-17 14:43:54 +0000499DEF_HELPER_1(iwmmxt_msbb, i32, i64)
500DEF_HELPER_1(iwmmxt_msbw, i32, i64)
501DEF_HELPER_1(iwmmxt_msbl, i32, i64)
pbrooke6771372008-03-31 03:49:05 +0000502
Peter Maydell477955b2011-05-25 13:22:31 +0000503DEF_HELPER_3(iwmmxt_srlw, i64, env, i64, i32)
504DEF_HELPER_3(iwmmxt_srll, i64, env, i64, i32)
505DEF_HELPER_3(iwmmxt_srlq, i64, env, i64, i32)
506DEF_HELPER_3(iwmmxt_sllw, i64, env, i64, i32)
507DEF_HELPER_3(iwmmxt_slll, i64, env, i64, i32)
508DEF_HELPER_3(iwmmxt_sllq, i64, env, i64, i32)
509DEF_HELPER_3(iwmmxt_sraw, i64, env, i64, i32)
510DEF_HELPER_3(iwmmxt_sral, i64, env, i64, i32)
511DEF_HELPER_3(iwmmxt_sraq, i64, env, i64, i32)
512DEF_HELPER_3(iwmmxt_rorw, i64, env, i64, i32)
513DEF_HELPER_3(iwmmxt_rorl, i64, env, i64, i32)
514DEF_HELPER_3(iwmmxt_rorq, i64, env, i64, i32)
515DEF_HELPER_3(iwmmxt_shufh, i64, env, i64, i32)
pbrooke6771372008-03-31 03:49:05 +0000516
Peter Maydell477955b2011-05-25 13:22:31 +0000517DEF_HELPER_3(iwmmxt_packuw, i64, env, i64, i64)
518DEF_HELPER_3(iwmmxt_packul, i64, env, i64, i64)
519DEF_HELPER_3(iwmmxt_packuq, i64, env, i64, i64)
520DEF_HELPER_3(iwmmxt_packsw, i64, env, i64, i64)
521DEF_HELPER_3(iwmmxt_packsl, i64, env, i64, i64)
522DEF_HELPER_3(iwmmxt_packsq, i64, env, i64, i64)
pbrooke6771372008-03-31 03:49:05 +0000523
pbrooka7812ae2008-11-17 14:43:54 +0000524DEF_HELPER_3(iwmmxt_muladdsl, i64, i64, i32, i32)
525DEF_HELPER_3(iwmmxt_muladdsw, i64, i64, i32, i32)
526DEF_HELPER_3(iwmmxt_muladdswl, i64, i64, i32, i32)
pbrooke6771372008-03-31 03:49:05 +0000527
Richard Hendersonb13708b2018-01-25 11:45:28 +0000528DEF_HELPER_FLAGS_2(neon_unzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
529DEF_HELPER_FLAGS_2(neon_unzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
530DEF_HELPER_FLAGS_2(neon_qunzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
531DEF_HELPER_FLAGS_2(neon_qunzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
532DEF_HELPER_FLAGS_2(neon_qunzip32, TCG_CALL_NO_RWG, void, ptr, ptr)
533DEF_HELPER_FLAGS_2(neon_zip8, TCG_CALL_NO_RWG, void, ptr, ptr)
534DEF_HELPER_FLAGS_2(neon_zip16, TCG_CALL_NO_RWG, void, ptr, ptr)
535DEF_HELPER_FLAGS_2(neon_qzip8, TCG_CALL_NO_RWG, void, ptr, ptr)
536DEF_HELPER_FLAGS_2(neon_qzip16, TCG_CALL_NO_RWG, void, ptr, ptr)
537DEF_HELPER_FLAGS_2(neon_qzip32, TCG_CALL_NO_RWG, void, ptr, ptr)
Peter Maydell02acedf2011-02-14 10:22:48 +0000538
Richard Hendersona04b68e2020-05-14 14:28:26 -0700539DEF_HELPER_FLAGS_4(crypto_aese, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Henderson0f239082023-06-01 22:42:43 -0700540DEF_HELPER_FLAGS_4(crypto_aesd, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Henderson1a66ac62018-01-25 11:45:28 +0000541DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
Richard Henderson0f239082023-06-01 22:42:43 -0700542DEF_HELPER_FLAGS_3(crypto_aesimc, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
Ard Biesheuvel9d935502013-12-17 19:42:25 +0000543
Richard Hendersonafc8b7d2020-05-14 14:28:30 -0700544DEF_HELPER_FLAGS_4(crypto_sha1su0, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
545DEF_HELPER_FLAGS_4(crypto_sha1c, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
546DEF_HELPER_FLAGS_4(crypto_sha1p, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
547DEF_HELPER_FLAGS_4(crypto_sha1m, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersoneffa9922020-05-14 14:28:29 -0700548DEF_HELPER_FLAGS_3(crypto_sha1h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
549DEF_HELPER_FLAGS_3(crypto_sha1su1, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
Ard Biesheuvelf1ecb912014-06-09 15:43:23 +0100550
Richard Hendersoneffa9922020-05-14 14:28:29 -0700551DEF_HELPER_FLAGS_4(crypto_sha256h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
552DEF_HELPER_FLAGS_4(crypto_sha256h2, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
553DEF_HELPER_FLAGS_3(crypto_sha256su0, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
554DEF_HELPER_FLAGS_4(crypto_sha256su1, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Ard Biesheuvelf1ecb912014-06-09 15:43:23 +0100555
Richard Hendersonaaffebd2020-05-14 14:28:28 -0700556DEF_HELPER_FLAGS_4(crypto_sha512h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
557DEF_HELPER_FLAGS_4(crypto_sha512h2, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
558DEF_HELPER_FLAGS_3(crypto_sha512su0, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
559DEF_HELPER_FLAGS_4(crypto_sha512su1, TCG_CALL_NO_RWG,
560 void, ptr, ptr, ptr, i32)
Ard Biesheuvel90b827d2018-02-09 10:40:28 +0000561
Richard Henderson43fa36c2020-05-14 14:28:31 -0700562DEF_HELPER_FLAGS_4(crypto_sm3tt1a, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
563DEF_HELPER_FLAGS_4(crypto_sm3tt1b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
564DEF_HELPER_FLAGS_4(crypto_sm3tt2a, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
565DEF_HELPER_FLAGS_4(crypto_sm3tt2b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersonaaffebd2020-05-14 14:28:28 -0700566DEF_HELPER_FLAGS_4(crypto_sm3partw1, TCG_CALL_NO_RWG,
567 void, ptr, ptr, ptr, i32)
568DEF_HELPER_FLAGS_4(crypto_sm3partw2, TCG_CALL_NO_RWG,
569 void, ptr, ptr, ptr, i32)
Ard Biesheuvel80d6f4c2018-02-09 10:40:28 +0000570
Richard Hendersona04b68e2020-05-14 14:28:26 -0700571DEF_HELPER_FLAGS_4(crypto_sm4e, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
572DEF_HELPER_FLAGS_4(crypto_sm4ekey, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Ard Biesheuvelb6577bc2018-02-09 10:40:28 +0000573
Richard Henderson17388602020-05-14 14:28:27 -0700574DEF_HELPER_FLAGS_4(crypto_rax1, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
575
Will Newtoneb0ecd52014-02-26 17:20:07 +0000576DEF_HELPER_FLAGS_3(crc32, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
577DEF_HELPER_FLAGS_3(crc32c, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
578
Richard Hendersone7186d82018-03-02 10:45:42 +0000579DEF_HELPER_FLAGS_5(gvec_qrdmlah_s16, TCG_CALL_NO_RWG,
580 void, ptr, ptr, ptr, ptr, i32)
581DEF_HELPER_FLAGS_5(gvec_qrdmlsh_s16, TCG_CALL_NO_RWG,
582 void, ptr, ptr, ptr, ptr, i32)
583DEF_HELPER_FLAGS_5(gvec_qrdmlah_s32, TCG_CALL_NO_RWG,
584 void, ptr, ptr, ptr, ptr, i32)
585DEF_HELPER_FLAGS_5(gvec_qrdmlsh_s32, TCG_CALL_NO_RWG,
586 void, ptr, ptr, ptr, ptr, i32)
587
Richard Hendersonab3ddf32021-05-24 18:03:01 -0700588DEF_HELPER_FLAGS_5(sve2_sqrdmlah_b, TCG_CALL_NO_RWG,
589 void, ptr, ptr, ptr, ptr, i32)
590DEF_HELPER_FLAGS_5(sve2_sqrdmlsh_b, TCG_CALL_NO_RWG,
591 void, ptr, ptr, ptr, ptr, i32)
592DEF_HELPER_FLAGS_5(sve2_sqrdmlah_h, TCG_CALL_NO_RWG,
593 void, ptr, ptr, ptr, ptr, i32)
594DEF_HELPER_FLAGS_5(sve2_sqrdmlsh_h, TCG_CALL_NO_RWG,
595 void, ptr, ptr, ptr, ptr, i32)
596DEF_HELPER_FLAGS_5(sve2_sqrdmlah_s, TCG_CALL_NO_RWG,
597 void, ptr, ptr, ptr, ptr, i32)
598DEF_HELPER_FLAGS_5(sve2_sqrdmlsh_s, TCG_CALL_NO_RWG,
599 void, ptr, ptr, ptr, ptr, i32)
600DEF_HELPER_FLAGS_5(sve2_sqrdmlah_d, TCG_CALL_NO_RWG,
601 void, ptr, ptr, ptr, ptr, i32)
602DEF_HELPER_FLAGS_5(sve2_sqrdmlsh_d, TCG_CALL_NO_RWG,
603 void, ptr, ptr, ptr, ptr, i32)
604
Richard Hendersonbc2bd692021-05-24 18:03:15 -0700605DEF_HELPER_FLAGS_5(gvec_sdot_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
606DEF_HELPER_FLAGS_5(gvec_udot_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
607DEF_HELPER_FLAGS_5(gvec_sdot_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
608DEF_HELPER_FLAGS_5(gvec_udot_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson6a98cb22021-05-24 18:03:33 -0700609DEF_HELPER_FLAGS_5(gvec_usdot_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersond730eca2018-06-29 15:11:13 +0100610
Richard Hendersonbc2bd692021-05-24 18:03:15 -0700611DEF_HELPER_FLAGS_5(gvec_sdot_idx_b, TCG_CALL_NO_RWG,
612 void, ptr, ptr, ptr, ptr, i32)
613DEF_HELPER_FLAGS_5(gvec_udot_idx_b, TCG_CALL_NO_RWG,
614 void, ptr, ptr, ptr, ptr, i32)
615DEF_HELPER_FLAGS_5(gvec_sdot_idx_h, TCG_CALL_NO_RWG,
616 void, ptr, ptr, ptr, ptr, i32)
617DEF_HELPER_FLAGS_5(gvec_udot_idx_h, TCG_CALL_NO_RWG,
618 void, ptr, ptr, ptr, ptr, i32)
Richard Henderson28670392021-05-24 18:03:32 -0700619DEF_HELPER_FLAGS_5(gvec_sudot_idx_b, TCG_CALL_NO_RWG,
620 void, ptr, ptr, ptr, ptr, i32)
621DEF_HELPER_FLAGS_5(gvec_usdot_idx_b, TCG_CALL_NO_RWG,
622 void, ptr, ptr, ptr, ptr, i32)
Richard Henderson16fcfdc2018-06-29 15:11:15 +0100623
Richard Henderson1695cd62018-03-02 10:45:43 +0000624DEF_HELPER_FLAGS_5(gvec_fcaddh, TCG_CALL_NO_RWG,
625 void, ptr, ptr, ptr, ptr, i32)
626DEF_HELPER_FLAGS_5(gvec_fcadds, TCG_CALL_NO_RWG,
627 void, ptr, ptr, ptr, ptr, i32)
628DEF_HELPER_FLAGS_5(gvec_fcaddd, TCG_CALL_NO_RWG,
629 void, ptr, ptr, ptr, ptr, i32)
630
Richard Henderson636ddeb2021-05-24 18:03:16 -0700631DEF_HELPER_FLAGS_6(gvec_fcmlah, TCG_CALL_NO_RWG,
632 void, ptr, ptr, ptr, ptr, ptr, i32)
633DEF_HELPER_FLAGS_6(gvec_fcmlah_idx, TCG_CALL_NO_RWG,
634 void, ptr, ptr, ptr, ptr, ptr, i32)
635DEF_HELPER_FLAGS_6(gvec_fcmlas, TCG_CALL_NO_RWG,
636 void, ptr, ptr, ptr, ptr, ptr, i32)
637DEF_HELPER_FLAGS_6(gvec_fcmlas_idx, TCG_CALL_NO_RWG,
638 void, ptr, ptr, ptr, ptr, ptr, i32)
639DEF_HELPER_FLAGS_6(gvec_fcmlad, TCG_CALL_NO_RWG,
640 void, ptr, ptr, ptr, ptr, ptr, i32)
Richard Hendersond17b7cd2018-03-02 10:45:44 +0000641
Peter Maydell7782a9a2020-08-28 19:33:45 +0100642DEF_HELPER_FLAGS_4(gvec_sstoh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
643DEF_HELPER_FLAGS_4(gvec_sitos, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
644DEF_HELPER_FLAGS_4(gvec_ustoh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
645DEF_HELPER_FLAGS_4(gvec_uitos, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
646DEF_HELPER_FLAGS_4(gvec_tosszh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
647DEF_HELPER_FLAGS_4(gvec_tosizs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
648DEF_HELPER_FLAGS_4(gvec_touszh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
649DEF_HELPER_FLAGS_4(gvec_touizs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
650
Peter Maydell7b959c52020-08-28 19:33:46 +0100651DEF_HELPER_FLAGS_4(gvec_vcvt_sf, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
652DEF_HELPER_FLAGS_4(gvec_vcvt_uf, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersonc2e13382024-12-11 10:30:28 -0600653DEF_HELPER_FLAGS_4(gvec_vcvt_rz_fs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
654DEF_HELPER_FLAGS_4(gvec_vcvt_rz_fu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Peter Maydell7b959c52020-08-28 19:33:46 +0100655
Peter Maydell24018cf2020-08-28 19:33:47 +0100656DEF_HELPER_FLAGS_4(gvec_vcvt_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
657DEF_HELPER_FLAGS_4(gvec_vcvt_uh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersonc2e13382024-12-11 10:30:28 -0600658DEF_HELPER_FLAGS_4(gvec_vcvt_rz_hs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
659DEF_HELPER_FLAGS_4(gvec_vcvt_rz_hu, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Peter Maydell24018cf2020-08-28 19:33:47 +0100660
Richard Henderson53b94862024-12-11 10:30:29 -0600661DEF_HELPER_FLAGS_4(gvec_vcvt_sd, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
662DEF_HELPER_FLAGS_4(gvec_vcvt_ud, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
663
Peter Maydellca88a6e2020-08-28 19:33:48 +0100664DEF_HELPER_FLAGS_4(gvec_vcvt_rm_ss, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
665DEF_HELPER_FLAGS_4(gvec_vcvt_rm_us, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
666DEF_HELPER_FLAGS_4(gvec_vcvt_rm_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
667DEF_HELPER_FLAGS_4(gvec_vcvt_rm_uh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
668
Peter Maydell18725912020-08-28 19:33:49 +0100669DEF_HELPER_FLAGS_4(gvec_vrint_rm_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
670DEF_HELPER_FLAGS_4(gvec_vrint_rm_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
671
Peter Maydell23afcdd2020-08-28 19:33:50 +0100672DEF_HELPER_FLAGS_4(gvec_vrintx_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
673DEF_HELPER_FLAGS_4(gvec_vrintx_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
674
Richard Henderson3887c032018-06-29 15:11:09 +0100675DEF_HELPER_FLAGS_4(gvec_frecpe_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
676DEF_HELPER_FLAGS_4(gvec_frecpe_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
677DEF_HELPER_FLAGS_4(gvec_frecpe_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
678
679DEF_HELPER_FLAGS_4(gvec_frsqrte_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
680DEF_HELPER_FLAGS_4(gvec_frsqrte_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
681DEF_HELPER_FLAGS_4(gvec_frsqrte_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
682
Peter Maydell635187a2020-08-28 19:33:41 +0100683DEF_HELPER_FLAGS_4(gvec_fcgt0_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
684DEF_HELPER_FLAGS_4(gvec_fcgt0_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
685
686DEF_HELPER_FLAGS_4(gvec_fcge0_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
687DEF_HELPER_FLAGS_4(gvec_fcge0_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
688
689DEF_HELPER_FLAGS_4(gvec_fceq0_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
690DEF_HELPER_FLAGS_4(gvec_fceq0_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
691
692DEF_HELPER_FLAGS_4(gvec_fcle0_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
693DEF_HELPER_FLAGS_4(gvec_fcle0_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
694
695DEF_HELPER_FLAGS_4(gvec_fclt0_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
696DEF_HELPER_FLAGS_4(gvec_fclt0_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
697
Richard Henderson29b80462018-06-15 14:57:15 +0100698DEF_HELPER_FLAGS_5(gvec_fadd_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
699DEF_HELPER_FLAGS_5(gvec_fadd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
700DEF_HELPER_FLAGS_5(gvec_fadd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
701
702DEF_HELPER_FLAGS_5(gvec_fsub_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
703DEF_HELPER_FLAGS_5(gvec_fsub_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
704DEF_HELPER_FLAGS_5(gvec_fsub_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
705
706DEF_HELPER_FLAGS_5(gvec_fmul_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
707DEF_HELPER_FLAGS_5(gvec_fmul_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
708DEF_HELPER_FLAGS_5(gvec_fmul_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
709
Peter Maydelle4a6d4a2020-08-28 19:33:32 +0100710DEF_HELPER_FLAGS_5(gvec_fabd_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydella26a3522020-05-12 17:38:58 +0100711DEF_HELPER_FLAGS_5(gvec_fabd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson43454732024-05-24 16:20:40 -0700712DEF_HELPER_FLAGS_5(gvec_fabd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydella26a3522020-05-12 17:38:58 +0100713
Peter Maydellad505db2020-08-28 19:33:35 +0100714DEF_HELPER_FLAGS_5(gvec_fceq_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
715DEF_HELPER_FLAGS_5(gvec_fceq_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson4fe068f2024-05-24 16:20:39 -0700716DEF_HELPER_FLAGS_5(gvec_fceq_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellad505db2020-08-28 19:33:35 +0100717
718DEF_HELPER_FLAGS_5(gvec_fcge_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
719DEF_HELPER_FLAGS_5(gvec_fcge_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson4fe068f2024-05-24 16:20:39 -0700720DEF_HELPER_FLAGS_5(gvec_fcge_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellad505db2020-08-28 19:33:35 +0100721
722DEF_HELPER_FLAGS_5(gvec_fcgt_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
723DEF_HELPER_FLAGS_5(gvec_fcgt_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson4fe068f2024-05-24 16:20:39 -0700724DEF_HELPER_FLAGS_5(gvec_fcgt_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellad505db2020-08-28 19:33:35 +0100725
Peter Maydellbb2741d2020-08-28 19:33:36 +0100726DEF_HELPER_FLAGS_5(gvec_facge_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
727DEF_HELPER_FLAGS_5(gvec_facge_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson4fe068f2024-05-24 16:20:39 -0700728DEF_HELPER_FLAGS_5(gvec_facge_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellbb2741d2020-08-28 19:33:36 +0100729
730DEF_HELPER_FLAGS_5(gvec_facgt_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
731DEF_HELPER_FLAGS_5(gvec_facgt_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson4fe068f2024-05-24 16:20:39 -0700732DEF_HELPER_FLAGS_5(gvec_facgt_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellbb2741d2020-08-28 19:33:36 +0100733
Peter Maydelle43268c2020-08-28 19:33:37 +0100734DEF_HELPER_FLAGS_5(gvec_fmax_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
735DEF_HELPER_FLAGS_5(gvec_fmax_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersona1e250f2024-05-24 16:20:34 -0700736DEF_HELPER_FLAGS_5(gvec_fmax_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydelle43268c2020-08-28 19:33:37 +0100737
738DEF_HELPER_FLAGS_5(gvec_fmin_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
739DEF_HELPER_FLAGS_5(gvec_fmin_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersona1e250f2024-05-24 16:20:34 -0700740DEF_HELPER_FLAGS_5(gvec_fmin_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydelle43268c2020-08-28 19:33:37 +0100741
Peter Maydelle22705b2020-08-28 19:33:38 +0100742DEF_HELPER_FLAGS_5(gvec_fmaxnum_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
743DEF_HELPER_FLAGS_5(gvec_fmaxnum_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersona1e250f2024-05-24 16:20:34 -0700744DEF_HELPER_FLAGS_5(gvec_fmaxnum_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydelle22705b2020-08-28 19:33:38 +0100745
746DEF_HELPER_FLAGS_5(gvec_fminnum_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
747DEF_HELPER_FLAGS_5(gvec_fminnum_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Hendersona1e250f2024-05-24 16:20:34 -0700748DEF_HELPER_FLAGS_5(gvec_fminnum_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydelle22705b2020-08-28 19:33:38 +0100749
Peter Maydellac8c62c2020-08-28 19:33:42 +0100750DEF_HELPER_FLAGS_5(gvec_recps_nf_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
751DEF_HELPER_FLAGS_5(gvec_recps_nf_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
752
Peter Maydell40fde722020-08-28 19:33:43 +0100753DEF_HELPER_FLAGS_5(gvec_rsqrts_nf_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
754DEF_HELPER_FLAGS_5(gvec_rsqrts_nf_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
755
Peter Maydelle5adc702020-08-28 19:33:39 +0100756DEF_HELPER_FLAGS_5(gvec_fmla_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
757DEF_HELPER_FLAGS_5(gvec_fmla_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
758
759DEF_HELPER_FLAGS_5(gvec_fmls_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
760DEF_HELPER_FLAGS_5(gvec_fmls_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
761
Peter Maydellcf722d72020-08-28 19:33:40 +0100762DEF_HELPER_FLAGS_5(gvec_vfma_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
763DEF_HELPER_FLAGS_5(gvec_vfma_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson2d558ef2024-05-24 16:20:38 -0700764DEF_HELPER_FLAGS_5(gvec_vfma_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellcf722d72020-08-28 19:33:40 +0100765
766DEF_HELPER_FLAGS_5(gvec_vfms_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
767DEF_HELPER_FLAGS_5(gvec_vfms_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Richard Henderson2d558ef2024-05-24 16:20:38 -0700768DEF_HELPER_FLAGS_5(gvec_vfms_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
Peter Maydellcf722d72020-08-28 19:33:40 +0100769
Richard Henderson29b80462018-06-15 14:57:15 +0100770DEF_HELPER_FLAGS_5(gvec_ftsmul_h, TCG_CALL_NO_RWG,
771 void, ptr, ptr, ptr, ptr, i32)
772DEF_HELPER_FLAGS_5(gvec_ftsmul_s, TCG_CALL_NO_RWG,
773 void, ptr, ptr, ptr, ptr, i32)
774DEF_HELPER_FLAGS_5(gvec_ftsmul_d, TCG_CALL_NO_RWG,
775 void, ptr, ptr, ptr, ptr, i32)
776
Richard Hendersonca40a6e2018-06-29 15:11:08 +0100777DEF_HELPER_FLAGS_5(gvec_fmul_idx_h, TCG_CALL_NO_RWG,
778 void, ptr, ptr, ptr, ptr, i32)
779DEF_HELPER_FLAGS_5(gvec_fmul_idx_s, TCG_CALL_NO_RWG,
780 void, ptr, ptr, ptr, ptr, i32)
781DEF_HELPER_FLAGS_5(gvec_fmul_idx_d, TCG_CALL_NO_RWG,
782 void, ptr, ptr, ptr, ptr, i32)
783
Peter Maydellc50d8d12020-08-28 19:33:52 +0100784DEF_HELPER_FLAGS_5(gvec_fmla_nf_idx_h, TCG_CALL_NO_RWG,
785 void, ptr, ptr, ptr, ptr, i32)
786DEF_HELPER_FLAGS_5(gvec_fmla_nf_idx_s, TCG_CALL_NO_RWG,
787 void, ptr, ptr, ptr, ptr, i32)
788
789DEF_HELPER_FLAGS_5(gvec_fmls_nf_idx_h, TCG_CALL_NO_RWG,
790 void, ptr, ptr, ptr, ptr, i32)
791DEF_HELPER_FLAGS_5(gvec_fmls_nf_idx_s, TCG_CALL_NO_RWG,
792 void, ptr, ptr, ptr, ptr, i32)
793
Richard Hendersonca40a6e2018-06-29 15:11:08 +0100794DEF_HELPER_FLAGS_6(gvec_fmla_idx_h, TCG_CALL_NO_RWG,
795 void, ptr, ptr, ptr, ptr, ptr, i32)
796DEF_HELPER_FLAGS_6(gvec_fmla_idx_s, TCG_CALL_NO_RWG,
797 void, ptr, ptr, ptr, ptr, ptr, i32)
798DEF_HELPER_FLAGS_6(gvec_fmla_idx_d, TCG_CALL_NO_RWG,
799 void, ptr, ptr, ptr, ptr, ptr, i32)
800
Richard Henderson89e68b52019-02-15 09:56:41 +0000801DEF_HELPER_FLAGS_5(gvec_uqadd_b, TCG_CALL_NO_RWG,
802 void, ptr, ptr, ptr, ptr, i32)
803DEF_HELPER_FLAGS_5(gvec_uqadd_h, TCG_CALL_NO_RWG,
804 void, ptr, ptr, ptr, ptr, i32)
805DEF_HELPER_FLAGS_5(gvec_uqadd_s, TCG_CALL_NO_RWG,
806 void, ptr, ptr, ptr, ptr, i32)
807DEF_HELPER_FLAGS_5(gvec_uqadd_d, TCG_CALL_NO_RWG,
808 void, ptr, ptr, ptr, ptr, i32)
809DEF_HELPER_FLAGS_5(gvec_sqadd_b, TCG_CALL_NO_RWG,
810 void, ptr, ptr, ptr, ptr, i32)
811DEF_HELPER_FLAGS_5(gvec_sqadd_h, TCG_CALL_NO_RWG,
812 void, ptr, ptr, ptr, ptr, i32)
813DEF_HELPER_FLAGS_5(gvec_sqadd_s, TCG_CALL_NO_RWG,
814 void, ptr, ptr, ptr, ptr, i32)
815DEF_HELPER_FLAGS_5(gvec_sqadd_d, TCG_CALL_NO_RWG,
816 void, ptr, ptr, ptr, ptr, i32)
817DEF_HELPER_FLAGS_5(gvec_uqsub_b, TCG_CALL_NO_RWG,
818 void, ptr, ptr, ptr, ptr, i32)
819DEF_HELPER_FLAGS_5(gvec_uqsub_h, TCG_CALL_NO_RWG,
820 void, ptr, ptr, ptr, ptr, i32)
821DEF_HELPER_FLAGS_5(gvec_uqsub_s, TCG_CALL_NO_RWG,
822 void, ptr, ptr, ptr, ptr, i32)
823DEF_HELPER_FLAGS_5(gvec_uqsub_d, TCG_CALL_NO_RWG,
824 void, ptr, ptr, ptr, ptr, i32)
825DEF_HELPER_FLAGS_5(gvec_sqsub_b, TCG_CALL_NO_RWG,
826 void, ptr, ptr, ptr, ptr, i32)
827DEF_HELPER_FLAGS_5(gvec_sqsub_h, TCG_CALL_NO_RWG,
828 void, ptr, ptr, ptr, ptr, i32)
829DEF_HELPER_FLAGS_5(gvec_sqsub_s, TCG_CALL_NO_RWG,
830 void, ptr, ptr, ptr, ptr, i32)
831DEF_HELPER_FLAGS_5(gvec_sqsub_d, TCG_CALL_NO_RWG,
832 void, ptr, ptr, ptr, ptr, i32)
Richard Henderson8f6343a2024-05-28 13:30:15 -0700833DEF_HELPER_FLAGS_5(gvec_usqadd_b, TCG_CALL_NO_RWG,
834 void, ptr, ptr, ptr, ptr, i32)
835DEF_HELPER_FLAGS_5(gvec_usqadd_h, TCG_CALL_NO_RWG,
836 void, ptr, ptr, ptr, ptr, i32)
837DEF_HELPER_FLAGS_5(gvec_usqadd_s, TCG_CALL_NO_RWG,
838 void, ptr, ptr, ptr, ptr, i32)
839DEF_HELPER_FLAGS_5(gvec_usqadd_d, TCG_CALL_NO_RWG,
840 void, ptr, ptr, ptr, ptr, i32)
841DEF_HELPER_FLAGS_5(gvec_suqadd_b, TCG_CALL_NO_RWG,
842 void, ptr, ptr, ptr, ptr, i32)
843DEF_HELPER_FLAGS_5(gvec_suqadd_h, TCG_CALL_NO_RWG,
844 void, ptr, ptr, ptr, ptr, i32)
845DEF_HELPER_FLAGS_5(gvec_suqadd_s, TCG_CALL_NO_RWG,
846 void, ptr, ptr, ptr, ptr, i32)
847DEF_HELPER_FLAGS_5(gvec_suqadd_d, TCG_CALL_NO_RWG,
848 void, ptr, ptr, ptr, ptr, i32)
Richard Henderson89e68b52019-02-15 09:56:41 +0000849
Richard Hendersona4e943a2019-02-28 10:55:16 +0000850DEF_HELPER_FLAGS_5(gvec_fmlal_a32, TCG_CALL_NO_RWG,
851 void, ptr, ptr, ptr, ptr, i32)
852DEF_HELPER_FLAGS_5(gvec_fmlal_a64, TCG_CALL_NO_RWG,
853 void, ptr, ptr, ptr, ptr, i32)
854DEF_HELPER_FLAGS_5(gvec_fmlal_idx_a32, TCG_CALL_NO_RWG,
855 void, ptr, ptr, ptr, ptr, i32)
856DEF_HELPER_FLAGS_5(gvec_fmlal_idx_a64, TCG_CALL_NO_RWG,
857 void, ptr, ptr, ptr, ptr, i32)
858
Richard Henderson6bea2562019-03-01 12:05:01 -0800859DEF_HELPER_FLAGS_2(frint32_s, TCG_CALL_NO_RWG, f32, f32, ptr)
860DEF_HELPER_FLAGS_2(frint64_s, TCG_CALL_NO_RWG, f32, f32, ptr)
861DEF_HELPER_FLAGS_2(frint32_d, TCG_CALL_NO_RWG, f64, f64, ptr)
862DEF_HELPER_FLAGS_2(frint64_d, TCG_CALL_NO_RWG, f64, f64, ptr)
863
Richard Henderson6b375d32020-04-18 09:28:08 -0700864DEF_HELPER_FLAGS_3(gvec_ceq0_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
865DEF_HELPER_FLAGS_3(gvec_ceq0_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
866DEF_HELPER_FLAGS_3(gvec_clt0_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
867DEF_HELPER_FLAGS_3(gvec_clt0_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
868DEF_HELPER_FLAGS_3(gvec_cle0_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
869DEF_HELPER_FLAGS_3(gvec_cle0_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
870DEF_HELPER_FLAGS_3(gvec_cgt0_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
871DEF_HELPER_FLAGS_3(gvec_cgt0_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
872DEF_HELPER_FLAGS_3(gvec_cge0_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
873DEF_HELPER_FLAGS_3(gvec_cge0_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
874
Richard Henderson5dad1ba2021-05-24 18:02:28 -0700875DEF_HELPER_FLAGS_4(gvec_smulh_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
876DEF_HELPER_FLAGS_4(gvec_smulh_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
877DEF_HELPER_FLAGS_4(gvec_smulh_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
878DEF_HELPER_FLAGS_4(gvec_smulh_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
879
880DEF_HELPER_FLAGS_4(gvec_umulh_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
881DEF_HELPER_FLAGS_4(gvec_umulh_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
882DEF_HELPER_FLAGS_4(gvec_umulh_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
883DEF_HELPER_FLAGS_4(gvec_umulh_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
884
Richard Henderson87b74e82020-02-16 13:42:29 -0800885DEF_HELPER_FLAGS_4(gvec_sshl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
886DEF_HELPER_FLAGS_4(gvec_sshl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
887DEF_HELPER_FLAGS_4(gvec_ushl_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
888DEF_HELPER_FLAGS_4(gvec_ushl_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
889
Richard Hendersona21bb782020-02-16 13:42:30 -0800890DEF_HELPER_FLAGS_4(gvec_pmul_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersonb9ed5102020-02-16 13:42:31 -0800891DEF_HELPER_FLAGS_4(gvec_pmull_q, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
Richard Hendersona21bb782020-02-16 13:42:30 -0800892
Richard Hendersone7e96fc2020-02-16 13:42:32 -0800893DEF_HELPER_FLAGS_4(neon_pmull_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
894
Richard Henderson631e5652020-05-13 09:32:30 -0700895DEF_HELPER_FLAGS_3(gvec_ssra_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
896DEF_HELPER_FLAGS_3(gvec_ssra_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
897DEF_HELPER_FLAGS_3(gvec_ssra_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
898DEF_HELPER_FLAGS_3(gvec_ssra_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
899
900DEF_HELPER_FLAGS_3(gvec_usra_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
901DEF_HELPER_FLAGS_3(gvec_usra_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
902DEF_HELPER_FLAGS_3(gvec_usra_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
903DEF_HELPER_FLAGS_3(gvec_usra_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
904
Richard Henderson6ccd48d2020-05-13 09:32:31 -0700905DEF_HELPER_FLAGS_3(gvec_srshr_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
906DEF_HELPER_FLAGS_3(gvec_srshr_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
907DEF_HELPER_FLAGS_3(gvec_srshr_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
908DEF_HELPER_FLAGS_3(gvec_srshr_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
909
910DEF_HELPER_FLAGS_3(gvec_urshr_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
911DEF_HELPER_FLAGS_3(gvec_urshr_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
912DEF_HELPER_FLAGS_3(gvec_urshr_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
913DEF_HELPER_FLAGS_3(gvec_urshr_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
914
915DEF_HELPER_FLAGS_3(gvec_srsra_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
916DEF_HELPER_FLAGS_3(gvec_srsra_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
917DEF_HELPER_FLAGS_3(gvec_srsra_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
918DEF_HELPER_FLAGS_3(gvec_srsra_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
919
920DEF_HELPER_FLAGS_3(gvec_ursra_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
921DEF_HELPER_FLAGS_3(gvec_ursra_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
922DEF_HELPER_FLAGS_3(gvec_ursra_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
923DEF_HELPER_FLAGS_3(gvec_ursra_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
924
Richard Henderson893ab052020-05-13 09:32:32 -0700925DEF_HELPER_FLAGS_3(gvec_sri_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
926DEF_HELPER_FLAGS_3(gvec_sri_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
927DEF_HELPER_FLAGS_3(gvec_sri_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
928DEF_HELPER_FLAGS_3(gvec_sri_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
929
930DEF_HELPER_FLAGS_3(gvec_sli_b, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
931DEF_HELPER_FLAGS_3(gvec_sli_h, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
932DEF_HELPER_FLAGS_3(gvec_sli_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
933DEF_HELPER_FLAGS_3(gvec_sli_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
934
Richard Henderson50c160d2020-05-13 09:32:44 -0700935DEF_HELPER_FLAGS_4(gvec_sabd_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
936DEF_HELPER_FLAGS_4(gvec_sabd_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
937DEF_HELPER_FLAGS_4(gvec_sabd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
938DEF_HELPER_FLAGS_4(gvec_sabd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
939
940DEF_HELPER_FLAGS_4(gvec_uabd_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
941DEF_HELPER_FLAGS_4(gvec_uabd_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
942DEF_HELPER_FLAGS_4(gvec_uabd_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
943DEF_HELPER_FLAGS_4(gvec_uabd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
944
Richard Hendersoncfdb2c02020-05-13 09:32:45 -0700945DEF_HELPER_FLAGS_4(gvec_saba_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
946DEF_HELPER_FLAGS_4(gvec_saba_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
947DEF_HELPER_FLAGS_4(gvec_saba_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
948DEF_HELPER_FLAGS_4(gvec_saba_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
949
950DEF_HELPER_FLAGS_4(gvec_uaba_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
951DEF_HELPER_FLAGS_4(gvec_uaba_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
952DEF_HELPER_FLAGS_4(gvec_uaba_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
953DEF_HELPER_FLAGS_4(gvec_uaba_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
954
Richard Henderson2e5a2652020-08-28 10:02:50 +0100955DEF_HELPER_FLAGS_4(gvec_mul_idx_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
956DEF_HELPER_FLAGS_4(gvec_mul_idx_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
957DEF_HELPER_FLAGS_4(gvec_mul_idx_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
958
Richard Henderson36074402020-08-28 10:02:50 +0100959DEF_HELPER_FLAGS_5(gvec_mla_idx_h, TCG_CALL_NO_RWG,
960 void, ptr, ptr, ptr, ptr, i32)
961DEF_HELPER_FLAGS_5(gvec_mla_idx_s, TCG_CALL_NO_RWG,
962 void, ptr, ptr, ptr, ptr, i32)
963DEF_HELPER_FLAGS_5(gvec_mla_idx_d, TCG_CALL_NO_RWG,
964 void, ptr, ptr, ptr, ptr, i32)
965
966DEF_HELPER_FLAGS_5(gvec_mls_idx_h, TCG_CALL_NO_RWG,
967 void, ptr, ptr, ptr, ptr, i32)
968DEF_HELPER_FLAGS_5(gvec_mls_idx_s, TCG_CALL_NO_RWG,
969 void, ptr, ptr, ptr, ptr, i32)
970DEF_HELPER_FLAGS_5(gvec_mls_idx_d, TCG_CALL_NO_RWG,
971 void, ptr, ptr, ptr, ptr, i32)
972
Richard Hendersoned788492020-08-28 10:02:50 +0100973DEF_HELPER_FLAGS_5(neon_sqdmulh_h, TCG_CALL_NO_RWG,
974 void, ptr, ptr, ptr, ptr, i32)
975DEF_HELPER_FLAGS_5(neon_sqdmulh_s, TCG_CALL_NO_RWG,
976 void, ptr, ptr, ptr, ptr, i32)
977
978DEF_HELPER_FLAGS_5(neon_sqrdmulh_h, TCG_CALL_NO_RWG,
979 void, ptr, ptr, ptr, ptr, i32)
980DEF_HELPER_FLAGS_5(neon_sqrdmulh_s, TCG_CALL_NO_RWG,
981 void, ptr, ptr, ptr, ptr, i32)
982
Richard Hendersonf80701c2024-05-28 13:30:42 -0700983DEF_HELPER_FLAGS_5(neon_sqdmulh_idx_h, TCG_CALL_NO_RWG,
984 void, ptr, ptr, ptr, ptr, i32)
985DEF_HELPER_FLAGS_5(neon_sqdmulh_idx_s, TCG_CALL_NO_RWG,
986 void, ptr, ptr, ptr, ptr, i32)
987
988DEF_HELPER_FLAGS_5(neon_sqrdmulh_idx_h, TCG_CALL_NO_RWG,
989 void, ptr, ptr, ptr, ptr, i32)
990DEF_HELPER_FLAGS_5(neon_sqrdmulh_idx_s, TCG_CALL_NO_RWG,
991 void, ptr, ptr, ptr, ptr, i32)
992
Richard Hendersonf698e452024-06-25 11:35:27 -0700993DEF_HELPER_FLAGS_5(neon_sqrdmlah_idx_h, TCG_CALL_NO_RWG,
994 void, ptr, ptr, ptr, ptr, i32)
995DEF_HELPER_FLAGS_5(neon_sqrdmlah_idx_s, TCG_CALL_NO_RWG,
996 void, ptr, ptr, ptr, ptr, i32)
997
998DEF_HELPER_FLAGS_5(neon_sqrdmlsh_idx_h, TCG_CALL_NO_RWG,
999 void, ptr, ptr, ptr, ptr, i32)
1000DEF_HELPER_FLAGS_5(neon_sqrdmlsh_idx_s, TCG_CALL_NO_RWG,
1001 void, ptr, ptr, ptr, ptr, i32)
1002
Richard Henderson169d7c52021-05-24 18:03:24 -07001003DEF_HELPER_FLAGS_4(sve2_sqdmulh_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1004DEF_HELPER_FLAGS_4(sve2_sqdmulh_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1005DEF_HELPER_FLAGS_4(sve2_sqdmulh_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1006DEF_HELPER_FLAGS_4(sve2_sqdmulh_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1007
1008DEF_HELPER_FLAGS_4(sve2_sqrdmulh_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1009DEF_HELPER_FLAGS_4(sve2_sqrdmulh_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1010DEF_HELPER_FLAGS_4(sve2_sqrdmulh_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1011DEF_HELPER_FLAGS_4(sve2_sqrdmulh_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1012
Richard Henderson1aee2d72021-05-24 18:03:25 -07001013DEF_HELPER_FLAGS_4(sve2_sqdmulh_idx_h, TCG_CALL_NO_RWG,
1014 void, ptr, ptr, ptr, i32)
1015DEF_HELPER_FLAGS_4(sve2_sqdmulh_idx_s, TCG_CALL_NO_RWG,
1016 void, ptr, ptr, ptr, i32)
1017DEF_HELPER_FLAGS_4(sve2_sqdmulh_idx_d, TCG_CALL_NO_RWG,
1018 void, ptr, ptr, ptr, i32)
1019
1020DEF_HELPER_FLAGS_4(sve2_sqrdmulh_idx_h, TCG_CALL_NO_RWG,
1021 void, ptr, ptr, ptr, i32)
1022DEF_HELPER_FLAGS_4(sve2_sqrdmulh_idx_s, TCG_CALL_NO_RWG,
1023 void, ptr, ptr, ptr, i32)
1024DEF_HELPER_FLAGS_4(sve2_sqrdmulh_idx_d, TCG_CALL_NO_RWG,
1025 void, ptr, ptr, ptr, i32)
1026
Stephen Long50d102b2021-05-24 18:03:48 -07001027DEF_HELPER_FLAGS_6(sve2_fmlal_zzzw_s, TCG_CALL_NO_RWG,
1028 void, ptr, ptr, ptr, ptr, ptr, i32)
1029DEF_HELPER_FLAGS_6(sve2_fmlal_zzxw_s, TCG_CALL_NO_RWG,
1030 void, ptr, ptr, ptr, ptr, ptr, i32)
1031
Richard Hendersone6eba6e2021-05-24 18:03:09 -07001032DEF_HELPER_FLAGS_4(gvec_xar_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1033
Richard Henderson2323c5f2021-05-24 18:03:56 -07001034DEF_HELPER_FLAGS_5(gvec_smmla_b, TCG_CALL_NO_RWG,
1035 void, ptr, ptr, ptr, ptr, i32)
1036DEF_HELPER_FLAGS_5(gvec_ummla_b, TCG_CALL_NO_RWG,
1037 void, ptr, ptr, ptr, ptr, i32)
1038DEF_HELPER_FLAGS_5(gvec_usmmla_b, TCG_CALL_NO_RWG,
1039 void, ptr, ptr, ptr, ptr, i32)
1040
Peter Maydell75a67842024-09-03 17:22:14 +01001041DEF_HELPER_FLAGS_6(gvec_bfdot, TCG_CALL_NO_RWG,
1042 void, ptr, ptr, ptr, ptr, env, i32)
Peter Maydellc8d644b2024-09-03 17:22:15 +01001043DEF_HELPER_FLAGS_6(gvec_bfdot_idx, TCG_CALL_NO_RWG,
1044 void, ptr, ptr, ptr, ptr, env, i32)
Richard Hendersoncb8657f2021-05-25 15:58:11 -07001045
Peter Maydell2da2d7d2024-09-03 17:22:15 +01001046DEF_HELPER_FLAGS_6(gvec_bfmmla, TCG_CALL_NO_RWG,
1047 void, ptr, ptr, ptr, ptr, env, i32)
Richard Henderson81266a12021-05-25 15:58:13 -07001048
Richard Henderson56938872021-05-25 15:58:14 -07001049DEF_HELPER_FLAGS_6(gvec_bfmlal, TCG_CALL_NO_RWG,
1050 void, ptr, ptr, ptr, ptr, ptr, i32)
Richard Henderson458d0ab2021-05-25 15:58:15 -07001051DEF_HELPER_FLAGS_6(gvec_bfmlal_idx, TCG_CALL_NO_RWG,
1052 void, ptr, ptr, ptr, ptr, ptr, i32)
Richard Henderson56938872021-05-25 15:58:14 -07001053
Richard Henderson6b5a3bd2022-07-08 20:45:25 +05301054DEF_HELPER_FLAGS_5(gvec_sclamp_b, TCG_CALL_NO_RWG,
1055 void, ptr, ptr, ptr, ptr, i32)
1056DEF_HELPER_FLAGS_5(gvec_sclamp_h, TCG_CALL_NO_RWG,
1057 void, ptr, ptr, ptr, ptr, i32)
1058DEF_HELPER_FLAGS_5(gvec_sclamp_s, TCG_CALL_NO_RWG,
1059 void, ptr, ptr, ptr, ptr, i32)
1060DEF_HELPER_FLAGS_5(gvec_sclamp_d, TCG_CALL_NO_RWG,
1061 void, ptr, ptr, ptr, ptr, i32)
1062
1063DEF_HELPER_FLAGS_5(gvec_uclamp_b, TCG_CALL_NO_RWG,
1064 void, ptr, ptr, ptr, ptr, i32)
1065DEF_HELPER_FLAGS_5(gvec_uclamp_h, TCG_CALL_NO_RWG,
1066 void, ptr, ptr, ptr, ptr, i32)
1067DEF_HELPER_FLAGS_5(gvec_uclamp_s, TCG_CALL_NO_RWG,
1068 void, ptr, ptr, ptr, ptr, i32)
1069DEF_HELPER_FLAGS_5(gvec_uclamp_d, TCG_CALL_NO_RWG,
1070 void, ptr, ptr, ptr, ptr, i32)
1071
Richard Henderson57801ca2024-05-24 16:20:42 -07001072DEF_HELPER_FLAGS_5(gvec_faddp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1073DEF_HELPER_FLAGS_5(gvec_faddp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1074DEF_HELPER_FLAGS_5(gvec_faddp_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1075
Richard Hendersona13f9fb2024-05-24 16:20:43 -07001076DEF_HELPER_FLAGS_5(gvec_fmaxp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1077DEF_HELPER_FLAGS_5(gvec_fmaxp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1078DEF_HELPER_FLAGS_5(gvec_fmaxp_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1079
1080DEF_HELPER_FLAGS_5(gvec_fminp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1081DEF_HELPER_FLAGS_5(gvec_fminp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1082DEF_HELPER_FLAGS_5(gvec_fminp_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1083
1084DEF_HELPER_FLAGS_5(gvec_fmaxnump_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1085DEF_HELPER_FLAGS_5(gvec_fmaxnump_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1086DEF_HELPER_FLAGS_5(gvec_fmaxnump_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1087
1088DEF_HELPER_FLAGS_5(gvec_fminnump_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1089DEF_HELPER_FLAGS_5(gvec_fminnump_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1090DEF_HELPER_FLAGS_5(gvec_fminnump_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
1091
Richard Hendersona7e4eec2024-05-24 16:20:45 -07001092DEF_HELPER_FLAGS_4(gvec_addp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1093DEF_HELPER_FLAGS_4(gvec_addp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1094DEF_HELPER_FLAGS_4(gvec_addp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1095DEF_HELPER_FLAGS_4(gvec_addp_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1096
Richard Henderson28b54512024-05-24 16:20:47 -07001097DEF_HELPER_FLAGS_4(gvec_smaxp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1098DEF_HELPER_FLAGS_4(gvec_smaxp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1099DEF_HELPER_FLAGS_4(gvec_smaxp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1100
1101DEF_HELPER_FLAGS_4(gvec_sminp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1102DEF_HELPER_FLAGS_4(gvec_sminp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1103DEF_HELPER_FLAGS_4(gvec_sminp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1104
1105DEF_HELPER_FLAGS_4(gvec_umaxp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1106DEF_HELPER_FLAGS_4(gvec_umaxp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1107DEF_HELPER_FLAGS_4(gvec_umaxp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1108
1109DEF_HELPER_FLAGS_4(gvec_uminp_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1110DEF_HELPER_FLAGS_4(gvec_uminp_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1111DEF_HELPER_FLAGS_4(gvec_uminp_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
1112
Alexander Grafd3e35a12013-12-17 19:42:32 +00001113#ifdef TARGET_AARCH64
Richard Henderson67ce09b2023-05-12 15:43:37 +01001114#include "tcg/helper-a64.h"
1115#include "tcg/helper-sve.h"
1116#include "tcg/helper-sme.h"
Alexander Grafd3e35a12013-12-17 19:42:32 +00001117#endif
Peter Maydell507b6a52021-06-17 13:15:45 +01001118
Richard Henderson67ce09b2023-05-12 15:43:37 +01001119#include "tcg/helper-mve.h"