2 * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, see <http://www.gnu.org/licenses/>.
19 #include "helper_protos_generated.h.inc"
21 DEF_HELPER_FLAGS_2(raise_exception
, TCG_CALL_NO_RETURN
, noreturn
, env
, i32
)
22 DEF_HELPER_1(debug_start_packet
, void, env
)
23 DEF_HELPER_FLAGS_3(debug_check_store_width
, TCG_CALL_NO_WG
, void, env
, int, int)
24 DEF_HELPER_FLAGS_5(debug_commit_end
, TCG_CALL_NO_WG
, void, env
, i32
, int, int, int)
25 DEF_HELPER_2(commit_store
, void, env
, int)
26 DEF_HELPER_3(gather_store
, void, env
, i32
, int)
27 DEF_HELPER_1(commit_hvx_stores
, void, env
)
28 DEF_HELPER_FLAGS_4(fcircadd
, TCG_CALL_NO_RWG_SE
, s32
, s32
, s32
, s32
, s32
)
29 DEF_HELPER_FLAGS_1(fbrev
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
30 DEF_HELPER_3(sfrecipa
, i64
, env
, f32
, f32
)
31 DEF_HELPER_2(sfinvsqrta
, i64
, env
, f32
)
32 DEF_HELPER_5(vacsh_val
, s64
, env
, s64
, s64
, s64
, i32
)
33 DEF_HELPER_FLAGS_4(vacsh_pred
, TCG_CALL_NO_RWG_SE
, s32
, env
, s64
, s64
, s64
)
34 DEF_HELPER_FLAGS_2(cabacdecbin_val
, TCG_CALL_NO_RWG_SE
, s64
, s64
, s64
)
35 DEF_HELPER_FLAGS_2(cabacdecbin_pred
, TCG_CALL_NO_RWG_SE
, s32
, s64
, s64
)
38 DEF_HELPER_2(conv_sf2df
, f64
, env
, f32
)
39 DEF_HELPER_2(conv_df2sf
, f32
, env
, f64
)
40 DEF_HELPER_2(conv_uw2sf
, f32
, env
, s32
)
41 DEF_HELPER_2(conv_uw2df
, f64
, env
, s32
)
42 DEF_HELPER_2(conv_w2sf
, f32
, env
, s32
)
43 DEF_HELPER_2(conv_w2df
, f64
, env
, s32
)
44 DEF_HELPER_2(conv_ud2sf
, f32
, env
, s64
)
45 DEF_HELPER_2(conv_ud2df
, f64
, env
, s64
)
46 DEF_HELPER_2(conv_d2sf
, f32
, env
, s64
)
47 DEF_HELPER_2(conv_d2df
, f64
, env
, s64
)
48 DEF_HELPER_2(conv_sf2uw
, i32
, env
, f32
)
49 DEF_HELPER_2(conv_sf2w
, s32
, env
, f32
)
50 DEF_HELPER_2(conv_sf2ud
, i64
, env
, f32
)
51 DEF_HELPER_2(conv_sf2d
, s64
, env
, f32
)
52 DEF_HELPER_2(conv_df2uw
, i32
, env
, f64
)
53 DEF_HELPER_2(conv_df2w
, s32
, env
, f64
)
54 DEF_HELPER_2(conv_df2ud
, i64
, env
, f64
)
55 DEF_HELPER_2(conv_df2d
, s64
, env
, f64
)
56 DEF_HELPER_2(conv_sf2uw_chop
, i32
, env
, f32
)
57 DEF_HELPER_2(conv_sf2w_chop
, s32
, env
, f32
)
58 DEF_HELPER_2(conv_sf2ud_chop
, i64
, env
, f32
)
59 DEF_HELPER_2(conv_sf2d_chop
, s64
, env
, f32
)
60 DEF_HELPER_2(conv_df2uw_chop
, i32
, env
, f64
)
61 DEF_HELPER_2(conv_df2w_chop
, s32
, env
, f64
)
62 DEF_HELPER_2(conv_df2ud_chop
, i64
, env
, f64
)
63 DEF_HELPER_2(conv_df2d_chop
, s64
, env
, f64
)
64 DEF_HELPER_3(sfadd
, f32
, env
, f32
, f32
)
65 DEF_HELPER_3(sfsub
, f32
, env
, f32
, f32
)
66 DEF_HELPER_3(sfcmpeq
, s32
, env
, f32
, f32
)
67 DEF_HELPER_3(sfcmpgt
, s32
, env
, f32
, f32
)
68 DEF_HELPER_3(sfcmpge
, s32
, env
, f32
, f32
)
69 DEF_HELPER_3(sfcmpuo
, s32
, env
, f32
, f32
)
70 DEF_HELPER_3(sfmax
, f32
, env
, f32
, f32
)
71 DEF_HELPER_3(sfmin
, f32
, env
, f32
, f32
)
72 DEF_HELPER_3(sfclass
, s32
, env
, f32
, s32
)
73 DEF_HELPER_3(sffixupn
, f32
, env
, f32
, f32
)
74 DEF_HELPER_3(sffixupd
, f32
, env
, f32
, f32
)
75 DEF_HELPER_2(sffixupr
, f32
, env
, f32
)
77 DEF_HELPER_3(dfadd
, f64
, env
, f64
, f64
)
78 DEF_HELPER_3(dfsub
, f64
, env
, f64
, f64
)
79 DEF_HELPER_3(dfmax
, f64
, env
, f64
, f64
)
80 DEF_HELPER_3(dfmin
, f64
, env
, f64
, f64
)
81 DEF_HELPER_3(dfcmpeq
, s32
, env
, f64
, f64
)
82 DEF_HELPER_3(dfcmpgt
, s32
, env
, f64
, f64
)
83 DEF_HELPER_3(dfcmpge
, s32
, env
, f64
, f64
)
84 DEF_HELPER_3(dfcmpuo
, s32
, env
, f64
, f64
)
85 DEF_HELPER_3(dfclass
, s32
, env
, f64
, s32
)
87 DEF_HELPER_3(sfmpy
, f32
, env
, f32
, f32
)
88 DEF_HELPER_4(sffma
, f32
, env
, f32
, f32
, f32
)
89 DEF_HELPER_5(sffma_sc
, f32
, env
, f32
, f32
, f32
, f32
)
90 DEF_HELPER_4(sffms
, f32
, env
, f32
, f32
, f32
)
91 DEF_HELPER_4(sffma_lib
, f32
, env
, f32
, f32
, f32
)
92 DEF_HELPER_4(sffms_lib
, f32
, env
, f32
, f32
, f32
)
94 DEF_HELPER_3(dfmpyfix
, f64
, env
, f64
, f64
)
95 DEF_HELPER_4(dfmpyhh
, f64
, env
, f64
, f64
, f64
)
97 /* Histogram instructions */
98 DEF_HELPER_1(vhist
, void, env
)
99 DEF_HELPER_1(vhistq
, void, env
)
100 DEF_HELPER_1(vwhist256
, void, env
)
101 DEF_HELPER_1(vwhist256q
, void, env
)
102 DEF_HELPER_1(vwhist256_sat
, void, env
)
103 DEF_HELPER_1(vwhist256q_sat
, void, env
)
104 DEF_HELPER_1(vwhist128
, void, env
)
105 DEF_HELPER_1(vwhist128q
, void, env
)
106 DEF_HELPER_2(vwhist128m
, void, env
, s32
)
107 DEF_HELPER_2(vwhist128qm
, void, env
, s32
)
109 DEF_HELPER_4(probe_noshuf_load
, void, env
, i32
, int, int)
110 DEF_HELPER_2(probe_pkt_scalar_store_s0
, void, env
, int)
111 DEF_HELPER_2(probe_hvx_stores
, void, env
, int)
112 DEF_HELPER_2(probe_pkt_scalar_hvx_stores
, void, env
, int)