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