Lines Matching +full:- +full:- +full:-

24 #include "accel/tcg/cpu-ldst.h"
26 #include "exec/helper-proto.h"
35 #define DF_MAX_INT(df) (int64_t)((1LL << (DF_BITS(df) - 1)) - 1)
36 #define M_MAX_INT(m) (int64_t)((1LL << ((m) - 1)) - 1)
38 #define DF_MIN_INT(df) (int64_t)(-(1LL << (DF_BITS(df) - 1)))
39 #define M_MIN_INT(m) (int64_t)(-(1LL << ((m) - 1)))
41 #define DF_MAX_UINT(df) (uint64_t)(-1ULL >> (64 - DF_BITS(df)))
42 #define M_MAX_UINT(m) (uint64_t)(-1ULL >> (64 - (m)))
46 ((((int64_t)x) << (64 - DF_BITS(df))) >> (64 - DF_BITS(df)))
48 /* Element-by-element access macros */
55 * ---------
57 * +---------------+----------------------------------------------------------+
70 * +---------------+----------------------------------------------------------+
85 n = n - c; in msa_nlzc_df()
91 return n - x; in msa_nlzc_df()
101 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nloc_b()
102 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nloc_b()
104 pwd->b[0] = msa_nloc_df(DF_BYTE, pws->b[0]); in helper_msa_nloc_b()
105 pwd->b[1] = msa_nloc_df(DF_BYTE, pws->b[1]); in helper_msa_nloc_b()
106 pwd->b[2] = msa_nloc_df(DF_BYTE, pws->b[2]); in helper_msa_nloc_b()
107 pwd->b[3] = msa_nloc_df(DF_BYTE, pws->b[3]); in helper_msa_nloc_b()
108 pwd->b[4] = msa_nloc_df(DF_BYTE, pws->b[4]); in helper_msa_nloc_b()
109 pwd->b[5] = msa_nloc_df(DF_BYTE, pws->b[5]); in helper_msa_nloc_b()
110 pwd->b[6] = msa_nloc_df(DF_BYTE, pws->b[6]); in helper_msa_nloc_b()
111 pwd->b[7] = msa_nloc_df(DF_BYTE, pws->b[7]); in helper_msa_nloc_b()
112 pwd->b[8] = msa_nloc_df(DF_BYTE, pws->b[8]); in helper_msa_nloc_b()
113 pwd->b[9] = msa_nloc_df(DF_BYTE, pws->b[9]); in helper_msa_nloc_b()
114 pwd->b[10] = msa_nloc_df(DF_BYTE, pws->b[10]); in helper_msa_nloc_b()
115 pwd->b[11] = msa_nloc_df(DF_BYTE, pws->b[11]); in helper_msa_nloc_b()
116 pwd->b[12] = msa_nloc_df(DF_BYTE, pws->b[12]); in helper_msa_nloc_b()
117 pwd->b[13] = msa_nloc_df(DF_BYTE, pws->b[13]); in helper_msa_nloc_b()
118 pwd->b[14] = msa_nloc_df(DF_BYTE, pws->b[14]); in helper_msa_nloc_b()
119 pwd->b[15] = msa_nloc_df(DF_BYTE, pws->b[15]); in helper_msa_nloc_b()
124 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nloc_h()
125 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nloc_h()
127 pwd->h[0] = msa_nloc_df(DF_HALF, pws->h[0]); in helper_msa_nloc_h()
128 pwd->h[1] = msa_nloc_df(DF_HALF, pws->h[1]); in helper_msa_nloc_h()
129 pwd->h[2] = msa_nloc_df(DF_HALF, pws->h[2]); in helper_msa_nloc_h()
130 pwd->h[3] = msa_nloc_df(DF_HALF, pws->h[3]); in helper_msa_nloc_h()
131 pwd->h[4] = msa_nloc_df(DF_HALF, pws->h[4]); in helper_msa_nloc_h()
132 pwd->h[5] = msa_nloc_df(DF_HALF, pws->h[5]); in helper_msa_nloc_h()
133 pwd->h[6] = msa_nloc_df(DF_HALF, pws->h[6]); in helper_msa_nloc_h()
134 pwd->h[7] = msa_nloc_df(DF_HALF, pws->h[7]); in helper_msa_nloc_h()
139 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nloc_w()
140 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nloc_w()
142 pwd->w[0] = msa_nloc_df(DF_WORD, pws->w[0]); in helper_msa_nloc_w()
143 pwd->w[1] = msa_nloc_df(DF_WORD, pws->w[1]); in helper_msa_nloc_w()
144 pwd->w[2] = msa_nloc_df(DF_WORD, pws->w[2]); in helper_msa_nloc_w()
145 pwd->w[3] = msa_nloc_df(DF_WORD, pws->w[3]); in helper_msa_nloc_w()
150 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nloc_d()
151 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nloc_d()
153 pwd->d[0] = msa_nloc_df(DF_DOUBLE, pws->d[0]); in helper_msa_nloc_d()
154 pwd->d[1] = msa_nloc_df(DF_DOUBLE, pws->d[1]); in helper_msa_nloc_d()
159 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nlzc_b()
160 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nlzc_b()
162 pwd->b[0] = msa_nlzc_df(DF_BYTE, pws->b[0]); in helper_msa_nlzc_b()
163 pwd->b[1] = msa_nlzc_df(DF_BYTE, pws->b[1]); in helper_msa_nlzc_b()
164 pwd->b[2] = msa_nlzc_df(DF_BYTE, pws->b[2]); in helper_msa_nlzc_b()
165 pwd->b[3] = msa_nlzc_df(DF_BYTE, pws->b[3]); in helper_msa_nlzc_b()
166 pwd->b[4] = msa_nlzc_df(DF_BYTE, pws->b[4]); in helper_msa_nlzc_b()
167 pwd->b[5] = msa_nlzc_df(DF_BYTE, pws->b[5]); in helper_msa_nlzc_b()
168 pwd->b[6] = msa_nlzc_df(DF_BYTE, pws->b[6]); in helper_msa_nlzc_b()
169 pwd->b[7] = msa_nlzc_df(DF_BYTE, pws->b[7]); in helper_msa_nlzc_b()
170 pwd->b[8] = msa_nlzc_df(DF_BYTE, pws->b[8]); in helper_msa_nlzc_b()
171 pwd->b[9] = msa_nlzc_df(DF_BYTE, pws->b[9]); in helper_msa_nlzc_b()
172 pwd->b[10] = msa_nlzc_df(DF_BYTE, pws->b[10]); in helper_msa_nlzc_b()
173 pwd->b[11] = msa_nlzc_df(DF_BYTE, pws->b[11]); in helper_msa_nlzc_b()
174 pwd->b[12] = msa_nlzc_df(DF_BYTE, pws->b[12]); in helper_msa_nlzc_b()
175 pwd->b[13] = msa_nlzc_df(DF_BYTE, pws->b[13]); in helper_msa_nlzc_b()
176 pwd->b[14] = msa_nlzc_df(DF_BYTE, pws->b[14]); in helper_msa_nlzc_b()
177 pwd->b[15] = msa_nlzc_df(DF_BYTE, pws->b[15]); in helper_msa_nlzc_b()
182 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nlzc_h()
183 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nlzc_h()
185 pwd->h[0] = msa_nlzc_df(DF_HALF, pws->h[0]); in helper_msa_nlzc_h()
186 pwd->h[1] = msa_nlzc_df(DF_HALF, pws->h[1]); in helper_msa_nlzc_h()
187 pwd->h[2] = msa_nlzc_df(DF_HALF, pws->h[2]); in helper_msa_nlzc_h()
188 pwd->h[3] = msa_nlzc_df(DF_HALF, pws->h[3]); in helper_msa_nlzc_h()
189 pwd->h[4] = msa_nlzc_df(DF_HALF, pws->h[4]); in helper_msa_nlzc_h()
190 pwd->h[5] = msa_nlzc_df(DF_HALF, pws->h[5]); in helper_msa_nlzc_h()
191 pwd->h[6] = msa_nlzc_df(DF_HALF, pws->h[6]); in helper_msa_nlzc_h()
192 pwd->h[7] = msa_nlzc_df(DF_HALF, pws->h[7]); in helper_msa_nlzc_h()
197 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nlzc_w()
198 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nlzc_w()
200 pwd->w[0] = msa_nlzc_df(DF_WORD, pws->w[0]); in helper_msa_nlzc_w()
201 pwd->w[1] = msa_nlzc_df(DF_WORD, pws->w[1]); in helper_msa_nlzc_w()
202 pwd->w[2] = msa_nlzc_df(DF_WORD, pws->w[2]); in helper_msa_nlzc_w()
203 pwd->w[3] = msa_nlzc_df(DF_WORD, pws->w[3]); in helper_msa_nlzc_w()
208 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nlzc_d()
209 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nlzc_d()
211 pwd->d[0] = msa_nlzc_df(DF_DOUBLE, pws->d[0]); in helper_msa_nlzc_d()
212 pwd->d[1] = msa_nlzc_df(DF_DOUBLE, pws->d[1]); in helper_msa_nlzc_d()
233 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pcnt_b()
234 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pcnt_b()
236 pwd->b[0] = msa_pcnt_df(DF_BYTE, pws->b[0]); in helper_msa_pcnt_b()
237 pwd->b[1] = msa_pcnt_df(DF_BYTE, pws->b[1]); in helper_msa_pcnt_b()
238 pwd->b[2] = msa_pcnt_df(DF_BYTE, pws->b[2]); in helper_msa_pcnt_b()
239 pwd->b[3] = msa_pcnt_df(DF_BYTE, pws->b[3]); in helper_msa_pcnt_b()
240 pwd->b[4] = msa_pcnt_df(DF_BYTE, pws->b[4]); in helper_msa_pcnt_b()
241 pwd->b[5] = msa_pcnt_df(DF_BYTE, pws->b[5]); in helper_msa_pcnt_b()
242 pwd->b[6] = msa_pcnt_df(DF_BYTE, pws->b[6]); in helper_msa_pcnt_b()
243 pwd->b[7] = msa_pcnt_df(DF_BYTE, pws->b[7]); in helper_msa_pcnt_b()
244 pwd->b[8] = msa_pcnt_df(DF_BYTE, pws->b[8]); in helper_msa_pcnt_b()
245 pwd->b[9] = msa_pcnt_df(DF_BYTE, pws->b[9]); in helper_msa_pcnt_b()
246 pwd->b[10] = msa_pcnt_df(DF_BYTE, pws->b[10]); in helper_msa_pcnt_b()
247 pwd->b[11] = msa_pcnt_df(DF_BYTE, pws->b[11]); in helper_msa_pcnt_b()
248 pwd->b[12] = msa_pcnt_df(DF_BYTE, pws->b[12]); in helper_msa_pcnt_b()
249 pwd->b[13] = msa_pcnt_df(DF_BYTE, pws->b[13]); in helper_msa_pcnt_b()
250 pwd->b[14] = msa_pcnt_df(DF_BYTE, pws->b[14]); in helper_msa_pcnt_b()
251 pwd->b[15] = msa_pcnt_df(DF_BYTE, pws->b[15]); in helper_msa_pcnt_b()
256 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pcnt_h()
257 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pcnt_h()
259 pwd->h[0] = msa_pcnt_df(DF_HALF, pws->h[0]); in helper_msa_pcnt_h()
260 pwd->h[1] = msa_pcnt_df(DF_HALF, pws->h[1]); in helper_msa_pcnt_h()
261 pwd->h[2] = msa_pcnt_df(DF_HALF, pws->h[2]); in helper_msa_pcnt_h()
262 pwd->h[3] = msa_pcnt_df(DF_HALF, pws->h[3]); in helper_msa_pcnt_h()
263 pwd->h[4] = msa_pcnt_df(DF_HALF, pws->h[4]); in helper_msa_pcnt_h()
264 pwd->h[5] = msa_pcnt_df(DF_HALF, pws->h[5]); in helper_msa_pcnt_h()
265 pwd->h[6] = msa_pcnt_df(DF_HALF, pws->h[6]); in helper_msa_pcnt_h()
266 pwd->h[7] = msa_pcnt_df(DF_HALF, pws->h[7]); in helper_msa_pcnt_h()
271 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pcnt_w()
272 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pcnt_w()
274 pwd->w[0] = msa_pcnt_df(DF_WORD, pws->w[0]); in helper_msa_pcnt_w()
275 pwd->w[1] = msa_pcnt_df(DF_WORD, pws->w[1]); in helper_msa_pcnt_w()
276 pwd->w[2] = msa_pcnt_df(DF_WORD, pws->w[2]); in helper_msa_pcnt_w()
277 pwd->w[3] = msa_pcnt_df(DF_WORD, pws->w[3]); in helper_msa_pcnt_w()
282 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pcnt_d()
283 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pcnt_d()
285 pwd->d[0] = msa_pcnt_df(DF_DOUBLE, pws->d[0]); in helper_msa_pcnt_d()
286 pwd->d[1] = msa_pcnt_df(DF_DOUBLE, pws->d[1]); in helper_msa_pcnt_d()
292 * --------
294 * +---------------+----------------------------------------------------------+
306 * +---------------+----------------------------------------------------------+
318 int32_t sh_a = DF_BITS(df) - sh_d; in msa_binsl_df()
330 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsl_b()
331 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsl_b()
332 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsl_b()
334 pwd->b[0] = msa_binsl_df(DF_BYTE, pwd->b[0], pws->b[0], pwt->b[0]); in helper_msa_binsl_b()
335 pwd->b[1] = msa_binsl_df(DF_BYTE, pwd->b[1], pws->b[1], pwt->b[1]); in helper_msa_binsl_b()
336 pwd->b[2] = msa_binsl_df(DF_BYTE, pwd->b[2], pws->b[2], pwt->b[2]); in helper_msa_binsl_b()
337 pwd->b[3] = msa_binsl_df(DF_BYTE, pwd->b[3], pws->b[3], pwt->b[3]); in helper_msa_binsl_b()
338 pwd->b[4] = msa_binsl_df(DF_BYTE, pwd->b[4], pws->b[4], pwt->b[4]); in helper_msa_binsl_b()
339 pwd->b[5] = msa_binsl_df(DF_BYTE, pwd->b[5], pws->b[5], pwt->b[5]); in helper_msa_binsl_b()
340 pwd->b[6] = msa_binsl_df(DF_BYTE, pwd->b[6], pws->b[6], pwt->b[6]); in helper_msa_binsl_b()
341 pwd->b[7] = msa_binsl_df(DF_BYTE, pwd->b[7], pws->b[7], pwt->b[7]); in helper_msa_binsl_b()
342 pwd->b[8] = msa_binsl_df(DF_BYTE, pwd->b[8], pws->b[8], pwt->b[8]); in helper_msa_binsl_b()
343 pwd->b[9] = msa_binsl_df(DF_BYTE, pwd->b[9], pws->b[9], pwt->b[9]); in helper_msa_binsl_b()
344 pwd->b[10] = msa_binsl_df(DF_BYTE, pwd->b[10], pws->b[10], pwt->b[10]); in helper_msa_binsl_b()
345 pwd->b[11] = msa_binsl_df(DF_BYTE, pwd->b[11], pws->b[11], pwt->b[11]); in helper_msa_binsl_b()
346 pwd->b[12] = msa_binsl_df(DF_BYTE, pwd->b[12], pws->b[12], pwt->b[12]); in helper_msa_binsl_b()
347 pwd->b[13] = msa_binsl_df(DF_BYTE, pwd->b[13], pws->b[13], pwt->b[13]); in helper_msa_binsl_b()
348 pwd->b[14] = msa_binsl_df(DF_BYTE, pwd->b[14], pws->b[14], pwt->b[14]); in helper_msa_binsl_b()
349 pwd->b[15] = msa_binsl_df(DF_BYTE, pwd->b[15], pws->b[15], pwt->b[15]); in helper_msa_binsl_b()
355 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsl_h()
356 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsl_h()
357 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsl_h()
359 pwd->h[0] = msa_binsl_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_binsl_h()
360 pwd->h[1] = msa_binsl_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_binsl_h()
361 pwd->h[2] = msa_binsl_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_binsl_h()
362 pwd->h[3] = msa_binsl_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_binsl_h()
363 pwd->h[4] = msa_binsl_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_binsl_h()
364 pwd->h[5] = msa_binsl_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_binsl_h()
365 pwd->h[6] = msa_binsl_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_binsl_h()
366 pwd->h[7] = msa_binsl_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_binsl_h()
372 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsl_w()
373 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsl_w()
374 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsl_w()
376 pwd->w[0] = msa_binsl_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_binsl_w()
377 pwd->w[1] = msa_binsl_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_binsl_w()
378 pwd->w[2] = msa_binsl_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_binsl_w()
379 pwd->w[3] = msa_binsl_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_binsl_w()
385 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsl_d()
386 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsl_d()
387 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsl_d()
389 pwd->d[0] = msa_binsl_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_binsl_d()
390 pwd->d[1] = msa_binsl_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_binsl_d()
399 int32_t sh_a = DF_BITS(df) - sh_d; in msa_binsr_df()
411 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsr_b()
412 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsr_b()
413 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsr_b()
415 pwd->b[0] = msa_binsr_df(DF_BYTE, pwd->b[0], pws->b[0], pwt->b[0]); in helper_msa_binsr_b()
416 pwd->b[1] = msa_binsr_df(DF_BYTE, pwd->b[1], pws->b[1], pwt->b[1]); in helper_msa_binsr_b()
417 pwd->b[2] = msa_binsr_df(DF_BYTE, pwd->b[2], pws->b[2], pwt->b[2]); in helper_msa_binsr_b()
418 pwd->b[3] = msa_binsr_df(DF_BYTE, pwd->b[3], pws->b[3], pwt->b[3]); in helper_msa_binsr_b()
419 pwd->b[4] = msa_binsr_df(DF_BYTE, pwd->b[4], pws->b[4], pwt->b[4]); in helper_msa_binsr_b()
420 pwd->b[5] = msa_binsr_df(DF_BYTE, pwd->b[5], pws->b[5], pwt->b[5]); in helper_msa_binsr_b()
421 pwd->b[6] = msa_binsr_df(DF_BYTE, pwd->b[6], pws->b[6], pwt->b[6]); in helper_msa_binsr_b()
422 pwd->b[7] = msa_binsr_df(DF_BYTE, pwd->b[7], pws->b[7], pwt->b[7]); in helper_msa_binsr_b()
423 pwd->b[8] = msa_binsr_df(DF_BYTE, pwd->b[8], pws->b[8], pwt->b[8]); in helper_msa_binsr_b()
424 pwd->b[9] = msa_binsr_df(DF_BYTE, pwd->b[9], pws->b[9], pwt->b[9]); in helper_msa_binsr_b()
425 pwd->b[10] = msa_binsr_df(DF_BYTE, pwd->b[10], pws->b[10], pwt->b[10]); in helper_msa_binsr_b()
426 pwd->b[11] = msa_binsr_df(DF_BYTE, pwd->b[11], pws->b[11], pwt->b[11]); in helper_msa_binsr_b()
427 pwd->b[12] = msa_binsr_df(DF_BYTE, pwd->b[12], pws->b[12], pwt->b[12]); in helper_msa_binsr_b()
428 pwd->b[13] = msa_binsr_df(DF_BYTE, pwd->b[13], pws->b[13], pwt->b[13]); in helper_msa_binsr_b()
429 pwd->b[14] = msa_binsr_df(DF_BYTE, pwd->b[14], pws->b[14], pwt->b[14]); in helper_msa_binsr_b()
430 pwd->b[15] = msa_binsr_df(DF_BYTE, pwd->b[15], pws->b[15], pwt->b[15]); in helper_msa_binsr_b()
436 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsr_h()
437 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsr_h()
438 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsr_h()
440 pwd->h[0] = msa_binsr_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_binsr_h()
441 pwd->h[1] = msa_binsr_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_binsr_h()
442 pwd->h[2] = msa_binsr_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_binsr_h()
443 pwd->h[3] = msa_binsr_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_binsr_h()
444 pwd->h[4] = msa_binsr_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_binsr_h()
445 pwd->h[5] = msa_binsr_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_binsr_h()
446 pwd->h[6] = msa_binsr_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_binsr_h()
447 pwd->h[7] = msa_binsr_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_binsr_h()
453 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsr_w()
454 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsr_w()
455 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsr_w()
457 pwd->w[0] = msa_binsr_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_binsr_w()
458 pwd->w[1] = msa_binsr_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_binsr_w()
459 pwd->w[2] = msa_binsr_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_binsr_w()
460 pwd->w[3] = msa_binsr_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_binsr_w()
466 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_binsr_d()
467 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_binsr_d()
468 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_binsr_d()
470 pwd->d[0] = msa_binsr_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_binsr_d()
471 pwd->d[1] = msa_binsr_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_binsr_d()
476 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bmnz_v()
477 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bmnz_v()
478 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bmnz_v()
480 pwd->d[0] = UNSIGNED( \ in helper_msa_bmnz_v()
481 ((pwd->d[0] & (~pwt->d[0])) | (pws->d[0] & pwt->d[0])), DF_DOUBLE); in helper_msa_bmnz_v()
482 pwd->d[1] = UNSIGNED( \ in helper_msa_bmnz_v()
483 ((pwd->d[1] & (~pwt->d[1])) | (pws->d[1] & pwt->d[1])), DF_DOUBLE); in helper_msa_bmnz_v()
488 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bmz_v()
489 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bmz_v()
490 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bmz_v()
492 pwd->d[0] = UNSIGNED( \ in helper_msa_bmz_v()
493 ((pwd->d[0] & pwt->d[0]) | (pws->d[0] & (~pwt->d[0]))), DF_DOUBLE); in helper_msa_bmz_v()
494 pwd->d[1] = UNSIGNED( \ in helper_msa_bmz_v()
495 ((pwd->d[1] & pwt->d[1]) | (pws->d[1] & (~pwt->d[1]))), DF_DOUBLE); in helper_msa_bmz_v()
500 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bsel_v()
501 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bsel_v()
502 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bsel_v()
504 pwd->d[0] = UNSIGNED( \ in helper_msa_bsel_v()
505 (pws->d[0] & (~pwd->d[0])) | (pwt->d[0] & pwd->d[0]), DF_DOUBLE); in helper_msa_bsel_v()
506 pwd->d[1] = UNSIGNED( \ in helper_msa_bsel_v()
507 (pws->d[1] & (~pwd->d[1])) | (pwt->d[1] & pwd->d[1]), DF_DOUBLE); in helper_msa_bsel_v()
513 * -------
515 * +---------------+----------------------------------------------------------+
528 * +---------------+----------------------------------------------------------+
539 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bclr_b()
540 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bclr_b()
541 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bclr_b()
543 pwd->b[0] = msa_bclr_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_bclr_b()
544 pwd->b[1] = msa_bclr_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_bclr_b()
545 pwd->b[2] = msa_bclr_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_bclr_b()
546 pwd->b[3] = msa_bclr_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_bclr_b()
547 pwd->b[4] = msa_bclr_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_bclr_b()
548 pwd->b[5] = msa_bclr_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_bclr_b()
549 pwd->b[6] = msa_bclr_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_bclr_b()
550 pwd->b[7] = msa_bclr_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_bclr_b()
551 pwd->b[8] = msa_bclr_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_bclr_b()
552 pwd->b[9] = msa_bclr_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_bclr_b()
553 pwd->b[10] = msa_bclr_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_bclr_b()
554 pwd->b[11] = msa_bclr_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_bclr_b()
555 pwd->b[12] = msa_bclr_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_bclr_b()
556 pwd->b[13] = msa_bclr_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_bclr_b()
557 pwd->b[14] = msa_bclr_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_bclr_b()
558 pwd->b[15] = msa_bclr_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_bclr_b()
563 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bclr_h()
564 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bclr_h()
565 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bclr_h()
567 pwd->h[0] = msa_bclr_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_bclr_h()
568 pwd->h[1] = msa_bclr_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_bclr_h()
569 pwd->h[2] = msa_bclr_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_bclr_h()
570 pwd->h[3] = msa_bclr_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_bclr_h()
571 pwd->h[4] = msa_bclr_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_bclr_h()
572 pwd->h[5] = msa_bclr_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_bclr_h()
573 pwd->h[6] = msa_bclr_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_bclr_h()
574 pwd->h[7] = msa_bclr_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_bclr_h()
579 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bclr_w()
580 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bclr_w()
581 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bclr_w()
583 pwd->w[0] = msa_bclr_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_bclr_w()
584 pwd->w[1] = msa_bclr_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_bclr_w()
585 pwd->w[2] = msa_bclr_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_bclr_w()
586 pwd->w[3] = msa_bclr_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_bclr_w()
591 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bclr_d()
592 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bclr_d()
593 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bclr_d()
595 pwd->d[0] = msa_bclr_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_bclr_d()
596 pwd->d[1] = msa_bclr_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_bclr_d()
607 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bneg_b()
608 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bneg_b()
609 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bneg_b()
611 pwd->b[0] = msa_bneg_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_bneg_b()
612 pwd->b[1] = msa_bneg_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_bneg_b()
613 pwd->b[2] = msa_bneg_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_bneg_b()
614 pwd->b[3] = msa_bneg_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_bneg_b()
615 pwd->b[4] = msa_bneg_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_bneg_b()
616 pwd->b[5] = msa_bneg_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_bneg_b()
617 pwd->b[6] = msa_bneg_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_bneg_b()
618 pwd->b[7] = msa_bneg_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_bneg_b()
619 pwd->b[8] = msa_bneg_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_bneg_b()
620 pwd->b[9] = msa_bneg_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_bneg_b()
621 pwd->b[10] = msa_bneg_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_bneg_b()
622 pwd->b[11] = msa_bneg_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_bneg_b()
623 pwd->b[12] = msa_bneg_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_bneg_b()
624 pwd->b[13] = msa_bneg_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_bneg_b()
625 pwd->b[14] = msa_bneg_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_bneg_b()
626 pwd->b[15] = msa_bneg_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_bneg_b()
631 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bneg_h()
632 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bneg_h()
633 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bneg_h()
635 pwd->h[0] = msa_bneg_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_bneg_h()
636 pwd->h[1] = msa_bneg_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_bneg_h()
637 pwd->h[2] = msa_bneg_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_bneg_h()
638 pwd->h[3] = msa_bneg_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_bneg_h()
639 pwd->h[4] = msa_bneg_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_bneg_h()
640 pwd->h[5] = msa_bneg_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_bneg_h()
641 pwd->h[6] = msa_bneg_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_bneg_h()
642 pwd->h[7] = msa_bneg_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_bneg_h()
647 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bneg_w()
648 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bneg_w()
649 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bneg_w()
651 pwd->w[0] = msa_bneg_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_bneg_w()
652 pwd->w[1] = msa_bneg_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_bneg_w()
653 pwd->w[2] = msa_bneg_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_bneg_w()
654 pwd->w[3] = msa_bneg_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_bneg_w()
659 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bneg_d()
660 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bneg_d()
661 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bneg_d()
663 pwd->d[0] = msa_bneg_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_bneg_d()
664 pwd->d[1] = msa_bneg_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_bneg_d()
676 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bset_b()
677 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bset_b()
678 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bset_b()
680 pwd->b[0] = msa_bset_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_bset_b()
681 pwd->b[1] = msa_bset_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_bset_b()
682 pwd->b[2] = msa_bset_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_bset_b()
683 pwd->b[3] = msa_bset_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_bset_b()
684 pwd->b[4] = msa_bset_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_bset_b()
685 pwd->b[5] = msa_bset_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_bset_b()
686 pwd->b[6] = msa_bset_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_bset_b()
687 pwd->b[7] = msa_bset_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_bset_b()
688 pwd->b[8] = msa_bset_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_bset_b()
689 pwd->b[9] = msa_bset_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_bset_b()
690 pwd->b[10] = msa_bset_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_bset_b()
691 pwd->b[11] = msa_bset_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_bset_b()
692 pwd->b[12] = msa_bset_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_bset_b()
693 pwd->b[13] = msa_bset_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_bset_b()
694 pwd->b[14] = msa_bset_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_bset_b()
695 pwd->b[15] = msa_bset_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_bset_b()
700 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bset_h()
701 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bset_h()
702 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bset_h()
704 pwd->h[0] = msa_bset_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_bset_h()
705 pwd->h[1] = msa_bset_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_bset_h()
706 pwd->h[2] = msa_bset_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_bset_h()
707 pwd->h[3] = msa_bset_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_bset_h()
708 pwd->h[4] = msa_bset_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_bset_h()
709 pwd->h[5] = msa_bset_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_bset_h()
710 pwd->h[6] = msa_bset_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_bset_h()
711 pwd->h[7] = msa_bset_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_bset_h()
716 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bset_w()
717 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bset_w()
718 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bset_w()
720 pwd->w[0] = msa_bset_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_bset_w()
721 pwd->w[1] = msa_bset_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_bset_w()
722 pwd->w[2] = msa_bset_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_bset_w()
723 pwd->w[3] = msa_bset_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_bset_w()
728 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_bset_d()
729 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_bset_d()
730 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_bset_d()
732 pwd->d[0] = msa_bset_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_bset_d()
733 pwd->d[1] = msa_bset_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_bset_d()
739 * --------------
741 * +---------------+----------------------------------------------------------+
742 * | MADD_Q.H | Vector Fixed-Point Multiply and Add (halfword) |
743 * | MADD_Q.W | Vector Fixed-Point Multiply and Add (word) |
744 * | MADDR_Q.H | Vector Fixed-Point Multiply and Add Rounded (halfword) |
745 * | MADDR_Q.W | Vector Fixed-Point Multiply and Add Rounded (word) |
746 * | MSUB_Q.H | Vector Fixed-Point Multiply and Subtr. (halfword) |
747 * | MSUB_Q.W | Vector Fixed-Point Multiply and Subtr. (word) |
748 * | MSUBR_Q.H | Vector Fixed-Point Multiply and Subtr. Rounded (halfword)|
749 * | MSUBR_Q.W | Vector Fixed-Point Multiply and Subtr. Rounded (word) |
750 * | MUL_Q.H | Vector Fixed-Point Multiply (halfword) |
751 * | MUL_Q.W | Vector Fixed-Point Multiply (word) |
752 * | MULR_Q.H | Vector Fixed-Point Multiply Rounded (halfword) |
753 * | MULR_Q.W | Vector Fixed-Point Multiply Rounded (word) |
754 * +---------------+----------------------------------------------------------+
762 * -------------
764 * +---------------+----------------------------------------------------------+
765 * | FMAX_A.W | Vector Floating-Point Maximum (Absolute) (word) |
766 * | FMAX_A.D | Vector Floating-Point Maximum (Absolute) (doubleword) |
767 * | FMAX.W | Vector Floating-Point Maximum (word) |
768 * | FMAX.D | Vector Floating-Point Maximum (doubleword) |
769 * | FMIN_A.W | Vector Floating-Point Minimum (Absolute) (word) |
770 * | FMIN_A.D | Vector Floating-Point Minimum (Absolute) (doubleword) |
771 * | FMIN.W | Vector Floating-Point Minimum (word) |
772 * | FMIN.D | Vector Floating-Point Minimum (doubleword) |
773 * +---------------+----------------------------------------------------------+
781 * -------
783 * +---------------+----------------------------------------------------------+
810 * +---------------+----------------------------------------------------------+
816 uint64_t abs_arg1 = arg1 >= 0 ? arg1 : -arg1; in msa_add_a_df()
817 uint64_t abs_arg2 = arg2 >= 0 ? arg2 : -arg2; in msa_add_a_df()
824 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_add_a_b()
825 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_add_a_b()
826 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_add_a_b()
828 pwd->b[0] = msa_add_a_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_add_a_b()
829 pwd->b[1] = msa_add_a_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_add_a_b()
830 pwd->b[2] = msa_add_a_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_add_a_b()
831 pwd->b[3] = msa_add_a_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_add_a_b()
832 pwd->b[4] = msa_add_a_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_add_a_b()
833 pwd->b[5] = msa_add_a_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_add_a_b()
834 pwd->b[6] = msa_add_a_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_add_a_b()
835 pwd->b[7] = msa_add_a_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_add_a_b()
836 pwd->b[8] = msa_add_a_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_add_a_b()
837 pwd->b[9] = msa_add_a_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_add_a_b()
838 pwd->b[10] = msa_add_a_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_add_a_b()
839 pwd->b[11] = msa_add_a_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_add_a_b()
840 pwd->b[12] = msa_add_a_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_add_a_b()
841 pwd->b[13] = msa_add_a_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_add_a_b()
842 pwd->b[14] = msa_add_a_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_add_a_b()
843 pwd->b[15] = msa_add_a_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_add_a_b()
849 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_add_a_h()
850 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_add_a_h()
851 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_add_a_h()
853 pwd->h[0] = msa_add_a_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_add_a_h()
854 pwd->h[1] = msa_add_a_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_add_a_h()
855 pwd->h[2] = msa_add_a_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_add_a_h()
856 pwd->h[3] = msa_add_a_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_add_a_h()
857 pwd->h[4] = msa_add_a_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_add_a_h()
858 pwd->h[5] = msa_add_a_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_add_a_h()
859 pwd->h[6] = msa_add_a_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_add_a_h()
860 pwd->h[7] = msa_add_a_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_add_a_h()
866 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_add_a_w()
867 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_add_a_w()
868 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_add_a_w()
870 pwd->w[0] = msa_add_a_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_add_a_w()
871 pwd->w[1] = msa_add_a_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_add_a_w()
872 pwd->w[2] = msa_add_a_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_add_a_w()
873 pwd->w[3] = msa_add_a_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_add_a_w()
879 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_add_a_d()
880 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_add_a_d()
881 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_add_a_d()
883 pwd->d[0] = msa_add_a_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_add_a_d()
884 pwd->d[1] = msa_add_a_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_add_a_d()
891 uint64_t abs_arg1 = arg1 >= 0 ? arg1 : -arg1; in msa_adds_a_df()
892 uint64_t abs_arg2 = arg2 >= 0 ? arg2 : -arg2; in msa_adds_a_df()
896 return (abs_arg1 < max_int - abs_arg2) ? abs_arg1 + abs_arg2 : max_int; in msa_adds_a_df()
903 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_a_b()
904 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_a_b()
905 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_a_b()
907 pwd->b[0] = msa_adds_a_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_adds_a_b()
908 pwd->b[1] = msa_adds_a_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_adds_a_b()
909 pwd->b[2] = msa_adds_a_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_adds_a_b()
910 pwd->b[3] = msa_adds_a_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_adds_a_b()
911 pwd->b[4] = msa_adds_a_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_adds_a_b()
912 pwd->b[5] = msa_adds_a_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_adds_a_b()
913 pwd->b[6] = msa_adds_a_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_adds_a_b()
914 pwd->b[7] = msa_adds_a_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_adds_a_b()
915 pwd->b[8] = msa_adds_a_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_adds_a_b()
916 pwd->b[9] = msa_adds_a_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_adds_a_b()
917 pwd->b[10] = msa_adds_a_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_adds_a_b()
918 pwd->b[11] = msa_adds_a_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_adds_a_b()
919 pwd->b[12] = msa_adds_a_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_adds_a_b()
920 pwd->b[13] = msa_adds_a_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_adds_a_b()
921 pwd->b[14] = msa_adds_a_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_adds_a_b()
922 pwd->b[15] = msa_adds_a_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_adds_a_b()
928 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_a_h()
929 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_a_h()
930 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_a_h()
932 pwd->h[0] = msa_adds_a_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_adds_a_h()
933 pwd->h[1] = msa_adds_a_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_adds_a_h()
934 pwd->h[2] = msa_adds_a_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_adds_a_h()
935 pwd->h[3] = msa_adds_a_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_adds_a_h()
936 pwd->h[4] = msa_adds_a_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_adds_a_h()
937 pwd->h[5] = msa_adds_a_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_adds_a_h()
938 pwd->h[6] = msa_adds_a_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_adds_a_h()
939 pwd->h[7] = msa_adds_a_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_adds_a_h()
945 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_a_w()
946 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_a_w()
947 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_a_w()
949 pwd->w[0] = msa_adds_a_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_adds_a_w()
950 pwd->w[1] = msa_adds_a_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_adds_a_w()
951 pwd->w[2] = msa_adds_a_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_adds_a_w()
952 pwd->w[3] = msa_adds_a_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_adds_a_w()
958 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_a_d()
959 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_a_d()
960 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_a_d()
962 pwd->d[0] = msa_adds_a_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_adds_a_d()
963 pwd->d[1] = msa_adds_a_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_adds_a_d()
972 return (min_int - arg1 < arg2) ? arg1 + arg2 : min_int; in msa_adds_s_df()
974 return (arg2 < max_int - arg1) ? arg1 + arg2 : max_int; in msa_adds_s_df()
981 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_s_b()
982 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_s_b()
983 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_s_b()
985 pwd->b[0] = msa_adds_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_adds_s_b()
986 pwd->b[1] = msa_adds_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_adds_s_b()
987 pwd->b[2] = msa_adds_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_adds_s_b()
988 pwd->b[3] = msa_adds_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_adds_s_b()
989 pwd->b[4] = msa_adds_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_adds_s_b()
990 pwd->b[5] = msa_adds_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_adds_s_b()
991 pwd->b[6] = msa_adds_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_adds_s_b()
992 pwd->b[7] = msa_adds_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_adds_s_b()
993 pwd->b[8] = msa_adds_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_adds_s_b()
994 pwd->b[9] = msa_adds_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_adds_s_b()
995 pwd->b[10] = msa_adds_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_adds_s_b()
996 pwd->b[11] = msa_adds_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_adds_s_b()
997 pwd->b[12] = msa_adds_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_adds_s_b()
998 pwd->b[13] = msa_adds_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_adds_s_b()
999 pwd->b[14] = msa_adds_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_adds_s_b()
1000 pwd->b[15] = msa_adds_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_adds_s_b()
1006 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_s_h()
1007 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_s_h()
1008 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_s_h()
1010 pwd->h[0] = msa_adds_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_adds_s_h()
1011 pwd->h[1] = msa_adds_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_adds_s_h()
1012 pwd->h[2] = msa_adds_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_adds_s_h()
1013 pwd->h[3] = msa_adds_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_adds_s_h()
1014 pwd->h[4] = msa_adds_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_adds_s_h()
1015 pwd->h[5] = msa_adds_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_adds_s_h()
1016 pwd->h[6] = msa_adds_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_adds_s_h()
1017 pwd->h[7] = msa_adds_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_adds_s_h()
1023 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_s_w()
1024 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_s_w()
1025 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_s_w()
1027 pwd->w[0] = msa_adds_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_adds_s_w()
1028 pwd->w[1] = msa_adds_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_adds_s_w()
1029 pwd->w[2] = msa_adds_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_adds_s_w()
1030 pwd->w[3] = msa_adds_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_adds_s_w()
1036 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_s_d()
1037 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_s_d()
1038 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_s_d()
1040 pwd->d[0] = msa_adds_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_adds_s_d()
1041 pwd->d[1] = msa_adds_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_adds_s_d()
1050 return (u_arg1 < max_uint - u_arg2) ? u_arg1 + u_arg2 : max_uint; in msa_adds_u_df()
1056 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_u_b()
1057 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_u_b()
1058 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_u_b()
1060 pwd->b[0] = msa_adds_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_adds_u_b()
1061 pwd->b[1] = msa_adds_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_adds_u_b()
1062 pwd->b[2] = msa_adds_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_adds_u_b()
1063 pwd->b[3] = msa_adds_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_adds_u_b()
1064 pwd->b[4] = msa_adds_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_adds_u_b()
1065 pwd->b[5] = msa_adds_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_adds_u_b()
1066 pwd->b[6] = msa_adds_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_adds_u_b()
1067 pwd->b[7] = msa_adds_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_adds_u_b()
1068 pwd->b[8] = msa_adds_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_adds_u_b()
1069 pwd->b[9] = msa_adds_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_adds_u_b()
1070 pwd->b[10] = msa_adds_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_adds_u_b()
1071 pwd->b[11] = msa_adds_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_adds_u_b()
1072 pwd->b[12] = msa_adds_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_adds_u_b()
1073 pwd->b[13] = msa_adds_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_adds_u_b()
1074 pwd->b[14] = msa_adds_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_adds_u_b()
1075 pwd->b[15] = msa_adds_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_adds_u_b()
1081 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_u_h()
1082 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_u_h()
1083 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_u_h()
1085 pwd->h[0] = msa_adds_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_adds_u_h()
1086 pwd->h[1] = msa_adds_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_adds_u_h()
1087 pwd->h[2] = msa_adds_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_adds_u_h()
1088 pwd->h[3] = msa_adds_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_adds_u_h()
1089 pwd->h[4] = msa_adds_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_adds_u_h()
1090 pwd->h[5] = msa_adds_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_adds_u_h()
1091 pwd->h[6] = msa_adds_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_adds_u_h()
1092 pwd->h[7] = msa_adds_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_adds_u_h()
1098 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_u_w()
1099 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_u_w()
1100 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_u_w()
1102 pwd->w[0] = msa_adds_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_adds_u_w()
1103 pwd->w[1] = msa_adds_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_adds_u_w()
1104 pwd->w[2] = msa_adds_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_adds_u_w()
1105 pwd->w[3] = msa_adds_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_adds_u_w()
1111 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_adds_u_d()
1112 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_adds_u_d()
1113 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_adds_u_d()
1115 pwd->d[0] = msa_adds_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_adds_u_d()
1116 pwd->d[1] = msa_adds_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_adds_u_d()
1128 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_addv_b()
1129 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_addv_b()
1130 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_addv_b()
1132 pwd->b[0] = msa_addv_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_addv_b()
1133 pwd->b[1] = msa_addv_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_addv_b()
1134 pwd->b[2] = msa_addv_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_addv_b()
1135 pwd->b[3] = msa_addv_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_addv_b()
1136 pwd->b[4] = msa_addv_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_addv_b()
1137 pwd->b[5] = msa_addv_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_addv_b()
1138 pwd->b[6] = msa_addv_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_addv_b()
1139 pwd->b[7] = msa_addv_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_addv_b()
1140 pwd->b[8] = msa_addv_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_addv_b()
1141 pwd->b[9] = msa_addv_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_addv_b()
1142 pwd->b[10] = msa_addv_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_addv_b()
1143 pwd->b[11] = msa_addv_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_addv_b()
1144 pwd->b[12] = msa_addv_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_addv_b()
1145 pwd->b[13] = msa_addv_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_addv_b()
1146 pwd->b[14] = msa_addv_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_addv_b()
1147 pwd->b[15] = msa_addv_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_addv_b()
1153 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_addv_h()
1154 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_addv_h()
1155 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_addv_h()
1157 pwd->h[0] = msa_addv_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_addv_h()
1158 pwd->h[1] = msa_addv_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_addv_h()
1159 pwd->h[2] = msa_addv_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_addv_h()
1160 pwd->h[3] = msa_addv_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_addv_h()
1161 pwd->h[4] = msa_addv_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_addv_h()
1162 pwd->h[5] = msa_addv_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_addv_h()
1163 pwd->h[6] = msa_addv_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_addv_h()
1164 pwd->h[7] = msa_addv_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_addv_h()
1170 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_addv_w()
1171 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_addv_w()
1172 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_addv_w()
1174 pwd->w[0] = msa_addv_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_addv_w()
1175 pwd->w[1] = msa_addv_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_addv_w()
1176 pwd->w[2] = msa_addv_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_addv_w()
1177 pwd->w[3] = msa_addv_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_addv_w()
1183 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_addv_d()
1184 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_addv_d()
1185 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_addv_d()
1187 pwd->d[0] = msa_addv_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_addv_d()
1188 pwd->d[1] = msa_addv_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_addv_d()
1193 ((((int64_t)(a)) << (64 - DF_BITS(df) / 2)) >> (64 - DF_BITS(df) / 2))
1196 ((((uint64_t)(a)) << (64 - DF_BITS(df) / 2)) >> (64 - DF_BITS(df) / 2))
1199 ((((int64_t)(a)) << (64 - DF_BITS(df))) >> (64 - DF_BITS(df) / 2))
1202 ((((uint64_t)(a)) << (64 - DF_BITS(df))) >> (64 - DF_BITS(df) / 2))
1213 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_s_h()
1214 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_s_h()
1215 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_s_h()
1217 pwd->h[0] = msa_hadd_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_hadd_s_h()
1218 pwd->h[1] = msa_hadd_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_hadd_s_h()
1219 pwd->h[2] = msa_hadd_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_hadd_s_h()
1220 pwd->h[3] = msa_hadd_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_hadd_s_h()
1221 pwd->h[4] = msa_hadd_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_hadd_s_h()
1222 pwd->h[5] = msa_hadd_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_hadd_s_h()
1223 pwd->h[6] = msa_hadd_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_hadd_s_h()
1224 pwd->h[7] = msa_hadd_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_hadd_s_h()
1230 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_s_w()
1231 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_s_w()
1232 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_s_w()
1234 pwd->w[0] = msa_hadd_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_hadd_s_w()
1235 pwd->w[1] = msa_hadd_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_hadd_s_w()
1236 pwd->w[2] = msa_hadd_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_hadd_s_w()
1237 pwd->w[3] = msa_hadd_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_hadd_s_w()
1243 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_s_d()
1244 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_s_d()
1245 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_s_d()
1247 pwd->d[0] = msa_hadd_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_hadd_s_d()
1248 pwd->d[1] = msa_hadd_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_hadd_s_d()
1260 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_u_h()
1261 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_u_h()
1262 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_u_h()
1264 pwd->h[0] = msa_hadd_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_hadd_u_h()
1265 pwd->h[1] = msa_hadd_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_hadd_u_h()
1266 pwd->h[2] = msa_hadd_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_hadd_u_h()
1267 pwd->h[3] = msa_hadd_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_hadd_u_h()
1268 pwd->h[4] = msa_hadd_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_hadd_u_h()
1269 pwd->h[5] = msa_hadd_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_hadd_u_h()
1270 pwd->h[6] = msa_hadd_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_hadd_u_h()
1271 pwd->h[7] = msa_hadd_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_hadd_u_h()
1277 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_u_w()
1278 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_u_w()
1279 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_u_w()
1281 pwd->w[0] = msa_hadd_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_hadd_u_w()
1282 pwd->w[1] = msa_hadd_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_hadd_u_w()
1283 pwd->w[2] = msa_hadd_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_hadd_u_w()
1284 pwd->w[3] = msa_hadd_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_hadd_u_w()
1290 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hadd_u_d()
1291 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hadd_u_d()
1292 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hadd_u_d()
1294 pwd->d[0] = msa_hadd_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_hadd_u_d()
1295 pwd->d[1] = msa_hadd_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_hadd_u_d()
1301 * -----------
1303 * +---------------+----------------------------------------------------------+
1320 * +---------------+----------------------------------------------------------+
1332 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_s_b()
1333 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_s_b()
1334 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_s_b()
1336 pwd->b[0] = msa_ave_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_ave_s_b()
1337 pwd->b[1] = msa_ave_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_ave_s_b()
1338 pwd->b[2] = msa_ave_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_ave_s_b()
1339 pwd->b[3] = msa_ave_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_ave_s_b()
1340 pwd->b[4] = msa_ave_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_ave_s_b()
1341 pwd->b[5] = msa_ave_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_ave_s_b()
1342 pwd->b[6] = msa_ave_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_ave_s_b()
1343 pwd->b[7] = msa_ave_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_ave_s_b()
1344 pwd->b[8] = msa_ave_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_ave_s_b()
1345 pwd->b[9] = msa_ave_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_ave_s_b()
1346 pwd->b[10] = msa_ave_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_ave_s_b()
1347 pwd->b[11] = msa_ave_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_ave_s_b()
1348 pwd->b[12] = msa_ave_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_ave_s_b()
1349 pwd->b[13] = msa_ave_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_ave_s_b()
1350 pwd->b[14] = msa_ave_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_ave_s_b()
1351 pwd->b[15] = msa_ave_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_ave_s_b()
1357 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_s_h()
1358 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_s_h()
1359 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_s_h()
1361 pwd->h[0] = msa_ave_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_ave_s_h()
1362 pwd->h[1] = msa_ave_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_ave_s_h()
1363 pwd->h[2] = msa_ave_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_ave_s_h()
1364 pwd->h[3] = msa_ave_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_ave_s_h()
1365 pwd->h[4] = msa_ave_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_ave_s_h()
1366 pwd->h[5] = msa_ave_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_ave_s_h()
1367 pwd->h[6] = msa_ave_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_ave_s_h()
1368 pwd->h[7] = msa_ave_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_ave_s_h()
1374 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_s_w()
1375 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_s_w()
1376 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_s_w()
1378 pwd->w[0] = msa_ave_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_ave_s_w()
1379 pwd->w[1] = msa_ave_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_ave_s_w()
1380 pwd->w[2] = msa_ave_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_ave_s_w()
1381 pwd->w[3] = msa_ave_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_ave_s_w()
1387 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_s_d()
1388 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_s_d()
1389 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_s_d()
1391 pwd->d[0] = msa_ave_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_ave_s_d()
1392 pwd->d[1] = msa_ave_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_ave_s_d()
1406 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_u_b()
1407 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_u_b()
1408 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_u_b()
1410 pwd->b[0] = msa_ave_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_ave_u_b()
1411 pwd->b[1] = msa_ave_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_ave_u_b()
1412 pwd->b[2] = msa_ave_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_ave_u_b()
1413 pwd->b[3] = msa_ave_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_ave_u_b()
1414 pwd->b[4] = msa_ave_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_ave_u_b()
1415 pwd->b[5] = msa_ave_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_ave_u_b()
1416 pwd->b[6] = msa_ave_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_ave_u_b()
1417 pwd->b[7] = msa_ave_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_ave_u_b()
1418 pwd->b[8] = msa_ave_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_ave_u_b()
1419 pwd->b[9] = msa_ave_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_ave_u_b()
1420 pwd->b[10] = msa_ave_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_ave_u_b()
1421 pwd->b[11] = msa_ave_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_ave_u_b()
1422 pwd->b[12] = msa_ave_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_ave_u_b()
1423 pwd->b[13] = msa_ave_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_ave_u_b()
1424 pwd->b[14] = msa_ave_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_ave_u_b()
1425 pwd->b[15] = msa_ave_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_ave_u_b()
1431 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_u_h()
1432 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_u_h()
1433 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_u_h()
1435 pwd->h[0] = msa_ave_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_ave_u_h()
1436 pwd->h[1] = msa_ave_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_ave_u_h()
1437 pwd->h[2] = msa_ave_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_ave_u_h()
1438 pwd->h[3] = msa_ave_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_ave_u_h()
1439 pwd->h[4] = msa_ave_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_ave_u_h()
1440 pwd->h[5] = msa_ave_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_ave_u_h()
1441 pwd->h[6] = msa_ave_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_ave_u_h()
1442 pwd->h[7] = msa_ave_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_ave_u_h()
1448 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_u_w()
1449 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_u_w()
1450 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_u_w()
1452 pwd->w[0] = msa_ave_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_ave_u_w()
1453 pwd->w[1] = msa_ave_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_ave_u_w()
1454 pwd->w[2] = msa_ave_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_ave_u_w()
1455 pwd->w[3] = msa_ave_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_ave_u_w()
1461 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ave_u_d()
1462 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ave_u_d()
1463 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ave_u_d()
1465 pwd->d[0] = msa_ave_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_ave_u_d()
1466 pwd->d[1] = msa_ave_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_ave_u_d()
1478 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_s_b()
1479 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_s_b()
1480 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_s_b()
1482 pwd->b[0] = msa_aver_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_aver_s_b()
1483 pwd->b[1] = msa_aver_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_aver_s_b()
1484 pwd->b[2] = msa_aver_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_aver_s_b()
1485 pwd->b[3] = msa_aver_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_aver_s_b()
1486 pwd->b[4] = msa_aver_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_aver_s_b()
1487 pwd->b[5] = msa_aver_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_aver_s_b()
1488 pwd->b[6] = msa_aver_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_aver_s_b()
1489 pwd->b[7] = msa_aver_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_aver_s_b()
1490 pwd->b[8] = msa_aver_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_aver_s_b()
1491 pwd->b[9] = msa_aver_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_aver_s_b()
1492 pwd->b[10] = msa_aver_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_aver_s_b()
1493 pwd->b[11] = msa_aver_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_aver_s_b()
1494 pwd->b[12] = msa_aver_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_aver_s_b()
1495 pwd->b[13] = msa_aver_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_aver_s_b()
1496 pwd->b[14] = msa_aver_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_aver_s_b()
1497 pwd->b[15] = msa_aver_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_aver_s_b()
1503 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_s_h()
1504 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_s_h()
1505 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_s_h()
1507 pwd->h[0] = msa_aver_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_aver_s_h()
1508 pwd->h[1] = msa_aver_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_aver_s_h()
1509 pwd->h[2] = msa_aver_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_aver_s_h()
1510 pwd->h[3] = msa_aver_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_aver_s_h()
1511 pwd->h[4] = msa_aver_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_aver_s_h()
1512 pwd->h[5] = msa_aver_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_aver_s_h()
1513 pwd->h[6] = msa_aver_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_aver_s_h()
1514 pwd->h[7] = msa_aver_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_aver_s_h()
1520 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_s_w()
1521 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_s_w()
1522 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_s_w()
1524 pwd->w[0] = msa_aver_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_aver_s_w()
1525 pwd->w[1] = msa_aver_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_aver_s_w()
1526 pwd->w[2] = msa_aver_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_aver_s_w()
1527 pwd->w[3] = msa_aver_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_aver_s_w()
1533 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_s_d()
1534 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_s_d()
1535 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_s_d()
1537 pwd->d[0] = msa_aver_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_aver_s_d()
1538 pwd->d[1] = msa_aver_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_aver_s_d()
1552 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_u_b()
1553 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_u_b()
1554 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_u_b()
1556 pwd->b[0] = msa_aver_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_aver_u_b()
1557 pwd->b[1] = msa_aver_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_aver_u_b()
1558 pwd->b[2] = msa_aver_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_aver_u_b()
1559 pwd->b[3] = msa_aver_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_aver_u_b()
1560 pwd->b[4] = msa_aver_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_aver_u_b()
1561 pwd->b[5] = msa_aver_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_aver_u_b()
1562 pwd->b[6] = msa_aver_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_aver_u_b()
1563 pwd->b[7] = msa_aver_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_aver_u_b()
1564 pwd->b[8] = msa_aver_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_aver_u_b()
1565 pwd->b[9] = msa_aver_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_aver_u_b()
1566 pwd->b[10] = msa_aver_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_aver_u_b()
1567 pwd->b[11] = msa_aver_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_aver_u_b()
1568 pwd->b[12] = msa_aver_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_aver_u_b()
1569 pwd->b[13] = msa_aver_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_aver_u_b()
1570 pwd->b[14] = msa_aver_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_aver_u_b()
1571 pwd->b[15] = msa_aver_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_aver_u_b()
1577 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_u_h()
1578 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_u_h()
1579 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_u_h()
1581 pwd->h[0] = msa_aver_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_aver_u_h()
1582 pwd->h[1] = msa_aver_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_aver_u_h()
1583 pwd->h[2] = msa_aver_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_aver_u_h()
1584 pwd->h[3] = msa_aver_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_aver_u_h()
1585 pwd->h[4] = msa_aver_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_aver_u_h()
1586 pwd->h[5] = msa_aver_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_aver_u_h()
1587 pwd->h[6] = msa_aver_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_aver_u_h()
1588 pwd->h[7] = msa_aver_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_aver_u_h()
1594 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_u_w()
1595 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_u_w()
1596 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_u_w()
1598 pwd->w[0] = msa_aver_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_aver_u_w()
1599 pwd->w[1] = msa_aver_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_aver_u_w()
1600 pwd->w[2] = msa_aver_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_aver_u_w()
1601 pwd->w[3] = msa_aver_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_aver_u_w()
1607 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_aver_u_d()
1608 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_aver_u_d()
1609 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_aver_u_d()
1611 pwd->d[0] = msa_aver_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_aver_u_d()
1612 pwd->d[1] = msa_aver_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_aver_u_d()
1618 * -----------
1620 * +---------------+----------------------------------------------------------+
1641 * +---------------+----------------------------------------------------------+
1646 return arg1 == arg2 ? -1 : 0; in msa_ceq_df()
1651 return arg1 == arg2 ? -1 : 0; in msa_ceq_b()
1656 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ceq_b()
1657 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ceq_b()
1658 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ceq_b()
1660 pwd->b[0] = msa_ceq_b(pws->b[0], pwt->b[0]); in helper_msa_ceq_b()
1661 pwd->b[1] = msa_ceq_b(pws->b[1], pwt->b[1]); in helper_msa_ceq_b()
1662 pwd->b[2] = msa_ceq_b(pws->b[2], pwt->b[2]); in helper_msa_ceq_b()
1663 pwd->b[3] = msa_ceq_b(pws->b[3], pwt->b[3]); in helper_msa_ceq_b()
1664 pwd->b[4] = msa_ceq_b(pws->b[4], pwt->b[4]); in helper_msa_ceq_b()
1665 pwd->b[5] = msa_ceq_b(pws->b[5], pwt->b[5]); in helper_msa_ceq_b()
1666 pwd->b[6] = msa_ceq_b(pws->b[6], pwt->b[6]); in helper_msa_ceq_b()
1667 pwd->b[7] = msa_ceq_b(pws->b[7], pwt->b[7]); in helper_msa_ceq_b()
1668 pwd->b[8] = msa_ceq_b(pws->b[8], pwt->b[8]); in helper_msa_ceq_b()
1669 pwd->b[9] = msa_ceq_b(pws->b[9], pwt->b[9]); in helper_msa_ceq_b()
1670 pwd->b[10] = msa_ceq_b(pws->b[10], pwt->b[10]); in helper_msa_ceq_b()
1671 pwd->b[11] = msa_ceq_b(pws->b[11], pwt->b[11]); in helper_msa_ceq_b()
1672 pwd->b[12] = msa_ceq_b(pws->b[12], pwt->b[12]); in helper_msa_ceq_b()
1673 pwd->b[13] = msa_ceq_b(pws->b[13], pwt->b[13]); in helper_msa_ceq_b()
1674 pwd->b[14] = msa_ceq_b(pws->b[14], pwt->b[14]); in helper_msa_ceq_b()
1675 pwd->b[15] = msa_ceq_b(pws->b[15], pwt->b[15]); in helper_msa_ceq_b()
1680 return arg1 == arg2 ? -1 : 0; in msa_ceq_h()
1685 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ceq_h()
1686 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ceq_h()
1687 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ceq_h()
1689 pwd->h[0] = msa_ceq_h(pws->h[0], pwt->h[0]); in helper_msa_ceq_h()
1690 pwd->h[1] = msa_ceq_h(pws->h[1], pwt->h[1]); in helper_msa_ceq_h()
1691 pwd->h[2] = msa_ceq_h(pws->h[2], pwt->h[2]); in helper_msa_ceq_h()
1692 pwd->h[3] = msa_ceq_h(pws->h[3], pwt->h[3]); in helper_msa_ceq_h()
1693 pwd->h[4] = msa_ceq_h(pws->h[4], pwt->h[4]); in helper_msa_ceq_h()
1694 pwd->h[5] = msa_ceq_h(pws->h[5], pwt->h[5]); in helper_msa_ceq_h()
1695 pwd->h[6] = msa_ceq_h(pws->h[6], pwt->h[6]); in helper_msa_ceq_h()
1696 pwd->h[7] = msa_ceq_h(pws->h[7], pwt->h[7]); in helper_msa_ceq_h()
1701 return arg1 == arg2 ? -1 : 0; in msa_ceq_w()
1706 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ceq_w()
1707 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ceq_w()
1708 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ceq_w()
1710 pwd->w[0] = msa_ceq_w(pws->w[0], pwt->w[0]); in helper_msa_ceq_w()
1711 pwd->w[1] = msa_ceq_w(pws->w[1], pwt->w[1]); in helper_msa_ceq_w()
1712 pwd->w[2] = msa_ceq_w(pws->w[2], pwt->w[2]); in helper_msa_ceq_w()
1713 pwd->w[3] = msa_ceq_w(pws->w[3], pwt->w[3]); in helper_msa_ceq_w()
1718 return arg1 == arg2 ? -1 : 0; in msa_ceq_d()
1723 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ceq_d()
1724 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ceq_d()
1725 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ceq_d()
1727 pwd->d[0] = msa_ceq_d(pws->d[0], pwt->d[0]); in helper_msa_ceq_d()
1728 pwd->d[1] = msa_ceq_d(pws->d[1], pwt->d[1]); in helper_msa_ceq_d()
1733 return arg1 <= arg2 ? -1 : 0; in msa_cle_s_df()
1739 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_s_b()
1740 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_s_b()
1741 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_s_b()
1743 pwd->b[0] = msa_cle_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_cle_s_b()
1744 pwd->b[1] = msa_cle_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_cle_s_b()
1745 pwd->b[2] = msa_cle_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_cle_s_b()
1746 pwd->b[3] = msa_cle_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_cle_s_b()
1747 pwd->b[4] = msa_cle_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_cle_s_b()
1748 pwd->b[5] = msa_cle_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_cle_s_b()
1749 pwd->b[6] = msa_cle_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_cle_s_b()
1750 pwd->b[7] = msa_cle_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_cle_s_b()
1751 pwd->b[8] = msa_cle_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_cle_s_b()
1752 pwd->b[9] = msa_cle_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_cle_s_b()
1753 pwd->b[10] = msa_cle_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_cle_s_b()
1754 pwd->b[11] = msa_cle_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_cle_s_b()
1755 pwd->b[12] = msa_cle_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_cle_s_b()
1756 pwd->b[13] = msa_cle_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_cle_s_b()
1757 pwd->b[14] = msa_cle_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_cle_s_b()
1758 pwd->b[15] = msa_cle_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_cle_s_b()
1764 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_s_h()
1765 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_s_h()
1766 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_s_h()
1768 pwd->h[0] = msa_cle_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_cle_s_h()
1769 pwd->h[1] = msa_cle_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_cle_s_h()
1770 pwd->h[2] = msa_cle_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_cle_s_h()
1771 pwd->h[3] = msa_cle_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_cle_s_h()
1772 pwd->h[4] = msa_cle_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_cle_s_h()
1773 pwd->h[5] = msa_cle_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_cle_s_h()
1774 pwd->h[6] = msa_cle_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_cle_s_h()
1775 pwd->h[7] = msa_cle_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_cle_s_h()
1781 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_s_w()
1782 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_s_w()
1783 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_s_w()
1785 pwd->w[0] = msa_cle_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_cle_s_w()
1786 pwd->w[1] = msa_cle_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_cle_s_w()
1787 pwd->w[2] = msa_cle_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_cle_s_w()
1788 pwd->w[3] = msa_cle_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_cle_s_w()
1794 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_s_d()
1795 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_s_d()
1796 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_s_d()
1798 pwd->d[0] = msa_cle_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_cle_s_d()
1799 pwd->d[1] = msa_cle_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_cle_s_d()
1806 return u_arg1 <= u_arg2 ? -1 : 0; in msa_cle_u_df()
1812 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_u_b()
1813 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_u_b()
1814 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_u_b()
1816 pwd->b[0] = msa_cle_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_cle_u_b()
1817 pwd->b[1] = msa_cle_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_cle_u_b()
1818 pwd->b[2] = msa_cle_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_cle_u_b()
1819 pwd->b[3] = msa_cle_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_cle_u_b()
1820 pwd->b[4] = msa_cle_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_cle_u_b()
1821 pwd->b[5] = msa_cle_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_cle_u_b()
1822 pwd->b[6] = msa_cle_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_cle_u_b()
1823 pwd->b[7] = msa_cle_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_cle_u_b()
1824 pwd->b[8] = msa_cle_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_cle_u_b()
1825 pwd->b[9] = msa_cle_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_cle_u_b()
1826 pwd->b[10] = msa_cle_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_cle_u_b()
1827 pwd->b[11] = msa_cle_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_cle_u_b()
1828 pwd->b[12] = msa_cle_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_cle_u_b()
1829 pwd->b[13] = msa_cle_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_cle_u_b()
1830 pwd->b[14] = msa_cle_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_cle_u_b()
1831 pwd->b[15] = msa_cle_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_cle_u_b()
1837 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_u_h()
1838 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_u_h()
1839 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_u_h()
1841 pwd->h[0] = msa_cle_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_cle_u_h()
1842 pwd->h[1] = msa_cle_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_cle_u_h()
1843 pwd->h[2] = msa_cle_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_cle_u_h()
1844 pwd->h[3] = msa_cle_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_cle_u_h()
1845 pwd->h[4] = msa_cle_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_cle_u_h()
1846 pwd->h[5] = msa_cle_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_cle_u_h()
1847 pwd->h[6] = msa_cle_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_cle_u_h()
1848 pwd->h[7] = msa_cle_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_cle_u_h()
1854 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_u_w()
1855 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_u_w()
1856 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_u_w()
1858 pwd->w[0] = msa_cle_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_cle_u_w()
1859 pwd->w[1] = msa_cle_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_cle_u_w()
1860 pwd->w[2] = msa_cle_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_cle_u_w()
1861 pwd->w[3] = msa_cle_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_cle_u_w()
1867 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_cle_u_d()
1868 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_cle_u_d()
1869 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_cle_u_d()
1871 pwd->d[0] = msa_cle_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_cle_u_d()
1872 pwd->d[1] = msa_cle_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_cle_u_d()
1877 return arg1 < arg2 ? -1 : 0; in msa_clt_s_df()
1882 return arg1 < arg2 ? -1 : 0; in msa_clt_s_b()
1888 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_s_b()
1889 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_s_b()
1890 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_s_b()
1892 pwd->b[0] = msa_clt_s_b(pws->b[0], pwt->b[0]); in helper_msa_clt_s_b()
1893 pwd->b[1] = msa_clt_s_b(pws->b[1], pwt->b[1]); in helper_msa_clt_s_b()
1894 pwd->b[2] = msa_clt_s_b(pws->b[2], pwt->b[2]); in helper_msa_clt_s_b()
1895 pwd->b[3] = msa_clt_s_b(pws->b[3], pwt->b[3]); in helper_msa_clt_s_b()
1896 pwd->b[4] = msa_clt_s_b(pws->b[4], pwt->b[4]); in helper_msa_clt_s_b()
1897 pwd->b[5] = msa_clt_s_b(pws->b[5], pwt->b[5]); in helper_msa_clt_s_b()
1898 pwd->b[6] = msa_clt_s_b(pws->b[6], pwt->b[6]); in helper_msa_clt_s_b()
1899 pwd->b[7] = msa_clt_s_b(pws->b[7], pwt->b[7]); in helper_msa_clt_s_b()
1900 pwd->b[8] = msa_clt_s_b(pws->b[8], pwt->b[8]); in helper_msa_clt_s_b()
1901 pwd->b[9] = msa_clt_s_b(pws->b[9], pwt->b[9]); in helper_msa_clt_s_b()
1902 pwd->b[10] = msa_clt_s_b(pws->b[10], pwt->b[10]); in helper_msa_clt_s_b()
1903 pwd->b[11] = msa_clt_s_b(pws->b[11], pwt->b[11]); in helper_msa_clt_s_b()
1904 pwd->b[12] = msa_clt_s_b(pws->b[12], pwt->b[12]); in helper_msa_clt_s_b()
1905 pwd->b[13] = msa_clt_s_b(pws->b[13], pwt->b[13]); in helper_msa_clt_s_b()
1906 pwd->b[14] = msa_clt_s_b(pws->b[14], pwt->b[14]); in helper_msa_clt_s_b()
1907 pwd->b[15] = msa_clt_s_b(pws->b[15], pwt->b[15]); in helper_msa_clt_s_b()
1912 return arg1 < arg2 ? -1 : 0; in msa_clt_s_h()
1918 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_s_h()
1919 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_s_h()
1920 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_s_h()
1922 pwd->h[0] = msa_clt_s_h(pws->h[0], pwt->h[0]); in helper_msa_clt_s_h()
1923 pwd->h[1] = msa_clt_s_h(pws->h[1], pwt->h[1]); in helper_msa_clt_s_h()
1924 pwd->h[2] = msa_clt_s_h(pws->h[2], pwt->h[2]); in helper_msa_clt_s_h()
1925 pwd->h[3] = msa_clt_s_h(pws->h[3], pwt->h[3]); in helper_msa_clt_s_h()
1926 pwd->h[4] = msa_clt_s_h(pws->h[4], pwt->h[4]); in helper_msa_clt_s_h()
1927 pwd->h[5] = msa_clt_s_h(pws->h[5], pwt->h[5]); in helper_msa_clt_s_h()
1928 pwd->h[6] = msa_clt_s_h(pws->h[6], pwt->h[6]); in helper_msa_clt_s_h()
1929 pwd->h[7] = msa_clt_s_h(pws->h[7], pwt->h[7]); in helper_msa_clt_s_h()
1934 return arg1 < arg2 ? -1 : 0; in msa_clt_s_w()
1940 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_s_w()
1941 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_s_w()
1942 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_s_w()
1944 pwd->w[0] = msa_clt_s_w(pws->w[0], pwt->w[0]); in helper_msa_clt_s_w()
1945 pwd->w[1] = msa_clt_s_w(pws->w[1], pwt->w[1]); in helper_msa_clt_s_w()
1946 pwd->w[2] = msa_clt_s_w(pws->w[2], pwt->w[2]); in helper_msa_clt_s_w()
1947 pwd->w[3] = msa_clt_s_w(pws->w[3], pwt->w[3]); in helper_msa_clt_s_w()
1952 return arg1 < arg2 ? -1 : 0; in msa_clt_s_d()
1958 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_s_d()
1959 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_s_d()
1960 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_s_d()
1962 pwd->d[0] = msa_clt_s_d(pws->d[0], pwt->d[0]); in helper_msa_clt_s_d()
1963 pwd->d[1] = msa_clt_s_d(pws->d[1], pwt->d[1]); in helper_msa_clt_s_d()
1970 return u_arg1 < u_arg2 ? -1 : 0; in msa_clt_u_df()
1976 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_u_b()
1977 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_u_b()
1978 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_u_b()
1980 pwd->b[0] = msa_clt_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_clt_u_b()
1981 pwd->b[1] = msa_clt_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_clt_u_b()
1982 pwd->b[2] = msa_clt_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_clt_u_b()
1983 pwd->b[3] = msa_clt_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_clt_u_b()
1984 pwd->b[4] = msa_clt_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_clt_u_b()
1985 pwd->b[5] = msa_clt_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_clt_u_b()
1986 pwd->b[6] = msa_clt_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_clt_u_b()
1987 pwd->b[7] = msa_clt_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_clt_u_b()
1988 pwd->b[8] = msa_clt_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_clt_u_b()
1989 pwd->b[9] = msa_clt_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_clt_u_b()
1990 pwd->b[10] = msa_clt_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_clt_u_b()
1991 pwd->b[11] = msa_clt_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_clt_u_b()
1992 pwd->b[12] = msa_clt_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_clt_u_b()
1993 pwd->b[13] = msa_clt_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_clt_u_b()
1994 pwd->b[14] = msa_clt_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_clt_u_b()
1995 pwd->b[15] = msa_clt_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_clt_u_b()
2001 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_u_h()
2002 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_u_h()
2003 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_u_h()
2005 pwd->h[0] = msa_clt_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_clt_u_h()
2006 pwd->h[1] = msa_clt_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_clt_u_h()
2007 pwd->h[2] = msa_clt_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_clt_u_h()
2008 pwd->h[3] = msa_clt_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_clt_u_h()
2009 pwd->h[4] = msa_clt_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_clt_u_h()
2010 pwd->h[5] = msa_clt_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_clt_u_h()
2011 pwd->h[6] = msa_clt_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_clt_u_h()
2012 pwd->h[7] = msa_clt_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_clt_u_h()
2018 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_u_w()
2019 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_u_w()
2020 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_u_w()
2022 pwd->w[0] = msa_clt_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_clt_u_w()
2023 pwd->w[1] = msa_clt_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_clt_u_w()
2024 pwd->w[2] = msa_clt_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_clt_u_w()
2025 pwd->w[3] = msa_clt_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_clt_u_w()
2031 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_clt_u_d()
2032 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_clt_u_d()
2033 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_clt_u_d()
2035 pwd->d[0] = msa_clt_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_clt_u_d()
2036 pwd->d[1] = msa_clt_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_clt_u_d()
2042 * ----------
2044 * +---------------+----------------------------------------------------------+
2053 * +---------------+----------------------------------------------------------+
2059 if (arg1 == DF_MIN_INT(df) && arg2 == -1) { in msa_div_s_df()
2063 : arg1 >= 0 ? -1 : 1; in msa_div_s_df()
2069 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_s_b()
2070 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_s_b()
2071 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_s_b()
2073 pwd->b[0] = msa_div_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_div_s_b()
2074 pwd->b[1] = msa_div_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_div_s_b()
2075 pwd->b[2] = msa_div_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_div_s_b()
2076 pwd->b[3] = msa_div_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_div_s_b()
2077 pwd->b[4] = msa_div_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_div_s_b()
2078 pwd->b[5] = msa_div_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_div_s_b()
2079 pwd->b[6] = msa_div_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_div_s_b()
2080 pwd->b[7] = msa_div_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_div_s_b()
2081 pwd->b[8] = msa_div_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_div_s_b()
2082 pwd->b[9] = msa_div_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_div_s_b()
2083 pwd->b[10] = msa_div_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_div_s_b()
2084 pwd->b[11] = msa_div_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_div_s_b()
2085 pwd->b[12] = msa_div_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_div_s_b()
2086 pwd->b[13] = msa_div_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_div_s_b()
2087 pwd->b[14] = msa_div_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_div_s_b()
2088 pwd->b[15] = msa_div_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_div_s_b()
2094 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_s_h()
2095 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_s_h()
2096 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_s_h()
2098 pwd->h[0] = msa_div_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_div_s_h()
2099 pwd->h[1] = msa_div_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_div_s_h()
2100 pwd->h[2] = msa_div_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_div_s_h()
2101 pwd->h[3] = msa_div_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_div_s_h()
2102 pwd->h[4] = msa_div_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_div_s_h()
2103 pwd->h[5] = msa_div_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_div_s_h()
2104 pwd->h[6] = msa_div_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_div_s_h()
2105 pwd->h[7] = msa_div_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_div_s_h()
2111 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_s_w()
2112 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_s_w()
2113 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_s_w()
2115 pwd->w[0] = msa_div_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_div_s_w()
2116 pwd->w[1] = msa_div_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_div_s_w()
2117 pwd->w[2] = msa_div_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_div_s_w()
2118 pwd->w[3] = msa_div_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_div_s_w()
2124 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_s_d()
2125 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_s_d()
2126 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_s_d()
2128 pwd->d[0] = msa_div_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_div_s_d()
2129 pwd->d[1] = msa_div_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_div_s_d()
2136 return arg2 ? u_arg1 / u_arg2 : -1; in msa_div_u_df()
2142 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_u_b()
2143 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_u_b()
2144 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_u_b()
2146 pwd->b[0] = msa_div_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_div_u_b()
2147 pwd->b[1] = msa_div_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_div_u_b()
2148 pwd->b[2] = msa_div_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_div_u_b()
2149 pwd->b[3] = msa_div_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_div_u_b()
2150 pwd->b[4] = msa_div_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_div_u_b()
2151 pwd->b[5] = msa_div_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_div_u_b()
2152 pwd->b[6] = msa_div_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_div_u_b()
2153 pwd->b[7] = msa_div_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_div_u_b()
2154 pwd->b[8] = msa_div_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_div_u_b()
2155 pwd->b[9] = msa_div_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_div_u_b()
2156 pwd->b[10] = msa_div_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_div_u_b()
2157 pwd->b[11] = msa_div_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_div_u_b()
2158 pwd->b[12] = msa_div_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_div_u_b()
2159 pwd->b[13] = msa_div_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_div_u_b()
2160 pwd->b[14] = msa_div_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_div_u_b()
2161 pwd->b[15] = msa_div_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_div_u_b()
2167 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_u_h()
2168 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_u_h()
2169 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_u_h()
2171 pwd->h[0] = msa_div_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_div_u_h()
2172 pwd->h[1] = msa_div_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_div_u_h()
2173 pwd->h[2] = msa_div_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_div_u_h()
2174 pwd->h[3] = msa_div_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_div_u_h()
2175 pwd->h[4] = msa_div_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_div_u_h()
2176 pwd->h[5] = msa_div_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_div_u_h()
2177 pwd->h[6] = msa_div_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_div_u_h()
2178 pwd->h[7] = msa_div_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_div_u_h()
2184 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_u_w()
2185 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_u_w()
2186 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_u_w()
2188 pwd->w[0] = msa_div_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_div_u_w()
2189 pwd->w[1] = msa_div_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_div_u_w()
2190 pwd->w[2] = msa_div_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_div_u_w()
2191 pwd->w[3] = msa_div_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_div_u_w()
2197 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_div_u_d()
2198 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_div_u_d()
2199 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_div_u_d()
2201 pwd->d[0] = msa_div_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_div_u_d()
2202 pwd->d[1] = msa_div_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_div_u_d()
2208 * ---------------
2210 * +---------------+----------------------------------------------------------+
2229 * +---------------+----------------------------------------------------------+
2259 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_s_h()
2260 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_s_h()
2261 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_s_h()
2263 pwd->h[0] = msa_dotp_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_dotp_s_h()
2264 pwd->h[1] = msa_dotp_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_dotp_s_h()
2265 pwd->h[2] = msa_dotp_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_dotp_s_h()
2266 pwd->h[3] = msa_dotp_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_dotp_s_h()
2267 pwd->h[4] = msa_dotp_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_dotp_s_h()
2268 pwd->h[5] = msa_dotp_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_dotp_s_h()
2269 pwd->h[6] = msa_dotp_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_dotp_s_h()
2270 pwd->h[7] = msa_dotp_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_dotp_s_h()
2276 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_s_w()
2277 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_s_w()
2278 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_s_w()
2280 pwd->w[0] = msa_dotp_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_dotp_s_w()
2281 pwd->w[1] = msa_dotp_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_dotp_s_w()
2282 pwd->w[2] = msa_dotp_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_dotp_s_w()
2283 pwd->w[3] = msa_dotp_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_dotp_s_w()
2289 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_s_d()
2290 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_s_d()
2291 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_s_d()
2293 pwd->d[0] = msa_dotp_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_dotp_s_d()
2294 pwd->d[1] = msa_dotp_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_dotp_s_d()
2312 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_u_h()
2313 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_u_h()
2314 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_u_h()
2316 pwd->h[0] = msa_dotp_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_dotp_u_h()
2317 pwd->h[1] = msa_dotp_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_dotp_u_h()
2318 pwd->h[2] = msa_dotp_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_dotp_u_h()
2319 pwd->h[3] = msa_dotp_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_dotp_u_h()
2320 pwd->h[4] = msa_dotp_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_dotp_u_h()
2321 pwd->h[5] = msa_dotp_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_dotp_u_h()
2322 pwd->h[6] = msa_dotp_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_dotp_u_h()
2323 pwd->h[7] = msa_dotp_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_dotp_u_h()
2329 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_u_w()
2330 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_u_w()
2331 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_u_w()
2333 pwd->w[0] = msa_dotp_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_dotp_u_w()
2334 pwd->w[1] = msa_dotp_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_dotp_u_w()
2335 pwd->w[2] = msa_dotp_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_dotp_u_w()
2336 pwd->w[3] = msa_dotp_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_dotp_u_w()
2342 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dotp_u_d()
2343 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dotp_u_d()
2344 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dotp_u_d()
2346 pwd->d[0] = msa_dotp_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_dotp_u_d()
2347 pwd->d[1] = msa_dotp_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_dotp_u_d()
2366 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_s_h()
2367 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_s_h()
2368 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_s_h()
2370 pwd->h[0] = msa_dpadd_s_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_dpadd_s_h()
2371 pwd->h[1] = msa_dpadd_s_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_dpadd_s_h()
2372 pwd->h[2] = msa_dpadd_s_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_dpadd_s_h()
2373 pwd->h[3] = msa_dpadd_s_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_dpadd_s_h()
2374 pwd->h[4] = msa_dpadd_s_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_dpadd_s_h()
2375 pwd->h[5] = msa_dpadd_s_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_dpadd_s_h()
2376 pwd->h[6] = msa_dpadd_s_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_dpadd_s_h()
2377 pwd->h[7] = msa_dpadd_s_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_dpadd_s_h()
2383 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_s_w()
2384 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_s_w()
2385 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_s_w()
2387 pwd->w[0] = msa_dpadd_s_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_dpadd_s_w()
2388 pwd->w[1] = msa_dpadd_s_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_dpadd_s_w()
2389 pwd->w[2] = msa_dpadd_s_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_dpadd_s_w()
2390 pwd->w[3] = msa_dpadd_s_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_dpadd_s_w()
2396 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_s_d()
2397 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_s_d()
2398 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_s_d()
2400 pwd->d[0] = msa_dpadd_s_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_dpadd_s_d()
2401 pwd->d[1] = msa_dpadd_s_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_dpadd_s_d()
2420 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_u_h()
2421 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_u_h()
2422 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_u_h()
2424 pwd->h[0] = msa_dpadd_u_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_dpadd_u_h()
2425 pwd->h[1] = msa_dpadd_u_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_dpadd_u_h()
2426 pwd->h[2] = msa_dpadd_u_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_dpadd_u_h()
2427 pwd->h[3] = msa_dpadd_u_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_dpadd_u_h()
2428 pwd->h[4] = msa_dpadd_u_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_dpadd_u_h()
2429 pwd->h[5] = msa_dpadd_u_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_dpadd_u_h()
2430 pwd->h[6] = msa_dpadd_u_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_dpadd_u_h()
2431 pwd->h[7] = msa_dpadd_u_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_dpadd_u_h()
2437 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_u_w()
2438 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_u_w()
2439 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_u_w()
2441 pwd->w[0] = msa_dpadd_u_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_dpadd_u_w()
2442 pwd->w[1] = msa_dpadd_u_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_dpadd_u_w()
2443 pwd->w[2] = msa_dpadd_u_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_dpadd_u_w()
2444 pwd->w[3] = msa_dpadd_u_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_dpadd_u_w()
2450 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpadd_u_d()
2451 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpadd_u_d()
2452 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpadd_u_d()
2454 pwd->d[0] = msa_dpadd_u_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_dpadd_u_d()
2455 pwd->d[1] = msa_dpadd_u_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_dpadd_u_d()
2468 return dest - ((even_arg1 * even_arg2) + (odd_arg1 * odd_arg2)); in msa_dpsub_s_df()
2474 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_s_h()
2475 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_s_h()
2476 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_s_h()
2478 pwd->h[0] = msa_dpsub_s_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_dpsub_s_h()
2479 pwd->h[1] = msa_dpsub_s_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_dpsub_s_h()
2480 pwd->h[2] = msa_dpsub_s_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_dpsub_s_h()
2481 pwd->h[3] = msa_dpsub_s_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_dpsub_s_h()
2482 pwd->h[4] = msa_dpsub_s_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_dpsub_s_h()
2483 pwd->h[5] = msa_dpsub_s_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_dpsub_s_h()
2484 pwd->h[6] = msa_dpsub_s_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_dpsub_s_h()
2485 pwd->h[7] = msa_dpsub_s_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_dpsub_s_h()
2491 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_s_w()
2492 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_s_w()
2493 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_s_w()
2495 pwd->w[0] = msa_dpsub_s_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_dpsub_s_w()
2496 pwd->w[1] = msa_dpsub_s_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_dpsub_s_w()
2497 pwd->w[2] = msa_dpsub_s_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_dpsub_s_w()
2498 pwd->w[3] = msa_dpsub_s_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_dpsub_s_w()
2504 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_s_d()
2505 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_s_d()
2506 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_s_d()
2508 pwd->d[0] = msa_dpsub_s_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_dpsub_s_d()
2509 pwd->d[1] = msa_dpsub_s_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_dpsub_s_d()
2522 return dest - ((even_arg1 * even_arg2) + (odd_arg1 * odd_arg2)); in msa_dpsub_u_df()
2528 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_u_h()
2529 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_u_h()
2530 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_u_h()
2532 pwd->h[0] = msa_dpsub_u_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_dpsub_u_h()
2533 pwd->h[1] = msa_dpsub_u_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_dpsub_u_h()
2534 pwd->h[2] = msa_dpsub_u_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_dpsub_u_h()
2535 pwd->h[3] = msa_dpsub_u_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_dpsub_u_h()
2536 pwd->h[4] = msa_dpsub_u_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_dpsub_u_h()
2537 pwd->h[5] = msa_dpsub_u_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_dpsub_u_h()
2538 pwd->h[6] = msa_dpsub_u_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_dpsub_u_h()
2539 pwd->h[7] = msa_dpsub_u_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_dpsub_u_h()
2545 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_u_w()
2546 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_u_w()
2547 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_u_w()
2549 pwd->w[0] = msa_dpsub_u_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_dpsub_u_w()
2550 pwd->w[1] = msa_dpsub_u_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_dpsub_u_w()
2551 pwd->w[2] = msa_dpsub_u_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_dpsub_u_w()
2552 pwd->w[3] = msa_dpsub_u_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_dpsub_u_w()
2558 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_dpsub_u_d()
2559 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_dpsub_u_d()
2560 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_dpsub_u_d()
2562 pwd->d[0] = msa_dpsub_u_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_dpsub_u_d()
2563 pwd->d[1] = msa_dpsub_u_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_dpsub_u_d()
2569 * -----------
2571 * +---------------+----------------------------------------------------------+
2596 * +---------------+----------------------------------------------------------+
2601 uint64_t abs_arg1 = arg1 >= 0 ? arg1 : -arg1; in msa_max_a_df()
2602 uint64_t abs_arg2 = arg2 >= 0 ? arg2 : -arg2; in msa_max_a_df()
2609 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_a_b()
2610 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_a_b()
2611 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_a_b()
2613 pwd->b[0] = msa_max_a_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_max_a_b()
2614 pwd->b[1] = msa_max_a_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_max_a_b()
2615 pwd->b[2] = msa_max_a_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_max_a_b()
2616 pwd->b[3] = msa_max_a_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_max_a_b()
2617 pwd->b[4] = msa_max_a_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_max_a_b()
2618 pwd->b[5] = msa_max_a_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_max_a_b()
2619 pwd->b[6] = msa_max_a_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_max_a_b()
2620 pwd->b[7] = msa_max_a_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_max_a_b()
2621 pwd->b[8] = msa_max_a_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_max_a_b()
2622 pwd->b[9] = msa_max_a_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_max_a_b()
2623 pwd->b[10] = msa_max_a_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_max_a_b()
2624 pwd->b[11] = msa_max_a_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_max_a_b()
2625 pwd->b[12] = msa_max_a_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_max_a_b()
2626 pwd->b[13] = msa_max_a_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_max_a_b()
2627 pwd->b[14] = msa_max_a_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_max_a_b()
2628 pwd->b[15] = msa_max_a_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_max_a_b()
2634 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_a_h()
2635 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_a_h()
2636 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_a_h()
2638 pwd->h[0] = msa_max_a_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_max_a_h()
2639 pwd->h[1] = msa_max_a_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_max_a_h()
2640 pwd->h[2] = msa_max_a_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_max_a_h()
2641 pwd->h[3] = msa_max_a_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_max_a_h()
2642 pwd->h[4] = msa_max_a_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_max_a_h()
2643 pwd->h[5] = msa_max_a_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_max_a_h()
2644 pwd->h[6] = msa_max_a_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_max_a_h()
2645 pwd->h[7] = msa_max_a_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_max_a_h()
2651 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_a_w()
2652 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_a_w()
2653 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_a_w()
2655 pwd->w[0] = msa_max_a_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_max_a_w()
2656 pwd->w[1] = msa_max_a_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_max_a_w()
2657 pwd->w[2] = msa_max_a_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_max_a_w()
2658 pwd->w[3] = msa_max_a_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_max_a_w()
2664 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_a_d()
2665 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_a_d()
2666 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_a_d()
2668 pwd->d[0] = msa_max_a_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_max_a_d()
2669 pwd->d[1] = msa_max_a_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_max_a_d()
2681 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_s_b()
2682 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_s_b()
2683 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_s_b()
2685 pwd->b[0] = msa_max_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_max_s_b()
2686 pwd->b[1] = msa_max_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_max_s_b()
2687 pwd->b[2] = msa_max_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_max_s_b()
2688 pwd->b[3] = msa_max_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_max_s_b()
2689 pwd->b[4] = msa_max_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_max_s_b()
2690 pwd->b[5] = msa_max_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_max_s_b()
2691 pwd->b[6] = msa_max_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_max_s_b()
2692 pwd->b[7] = msa_max_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_max_s_b()
2693 pwd->b[8] = msa_max_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_max_s_b()
2694 pwd->b[9] = msa_max_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_max_s_b()
2695 pwd->b[10] = msa_max_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_max_s_b()
2696 pwd->b[11] = msa_max_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_max_s_b()
2697 pwd->b[12] = msa_max_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_max_s_b()
2698 pwd->b[13] = msa_max_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_max_s_b()
2699 pwd->b[14] = msa_max_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_max_s_b()
2700 pwd->b[15] = msa_max_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_max_s_b()
2706 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_s_h()
2707 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_s_h()
2708 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_s_h()
2710 pwd->h[0] = msa_max_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_max_s_h()
2711 pwd->h[1] = msa_max_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_max_s_h()
2712 pwd->h[2] = msa_max_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_max_s_h()
2713 pwd->h[3] = msa_max_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_max_s_h()
2714 pwd->h[4] = msa_max_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_max_s_h()
2715 pwd->h[5] = msa_max_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_max_s_h()
2716 pwd->h[6] = msa_max_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_max_s_h()
2717 pwd->h[7] = msa_max_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_max_s_h()
2723 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_s_w()
2724 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_s_w()
2725 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_s_w()
2727 pwd->w[0] = msa_max_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_max_s_w()
2728 pwd->w[1] = msa_max_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_max_s_w()
2729 pwd->w[2] = msa_max_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_max_s_w()
2730 pwd->w[3] = msa_max_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_max_s_w()
2736 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_s_d()
2737 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_s_d()
2738 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_s_d()
2740 pwd->d[0] = msa_max_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_max_s_d()
2741 pwd->d[1] = msa_max_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_max_s_d()
2755 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_u_b()
2756 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_u_b()
2757 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_u_b()
2759 pwd->b[0] = msa_max_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_max_u_b()
2760 pwd->b[1] = msa_max_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_max_u_b()
2761 pwd->b[2] = msa_max_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_max_u_b()
2762 pwd->b[3] = msa_max_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_max_u_b()
2763 pwd->b[4] = msa_max_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_max_u_b()
2764 pwd->b[5] = msa_max_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_max_u_b()
2765 pwd->b[6] = msa_max_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_max_u_b()
2766 pwd->b[7] = msa_max_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_max_u_b()
2767 pwd->b[8] = msa_max_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_max_u_b()
2768 pwd->b[9] = msa_max_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_max_u_b()
2769 pwd->b[10] = msa_max_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_max_u_b()
2770 pwd->b[11] = msa_max_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_max_u_b()
2771 pwd->b[12] = msa_max_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_max_u_b()
2772 pwd->b[13] = msa_max_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_max_u_b()
2773 pwd->b[14] = msa_max_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_max_u_b()
2774 pwd->b[15] = msa_max_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_max_u_b()
2780 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_u_h()
2781 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_u_h()
2782 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_u_h()
2784 pwd->h[0] = msa_max_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_max_u_h()
2785 pwd->h[1] = msa_max_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_max_u_h()
2786 pwd->h[2] = msa_max_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_max_u_h()
2787 pwd->h[3] = msa_max_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_max_u_h()
2788 pwd->h[4] = msa_max_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_max_u_h()
2789 pwd->h[5] = msa_max_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_max_u_h()
2790 pwd->h[6] = msa_max_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_max_u_h()
2791 pwd->h[7] = msa_max_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_max_u_h()
2797 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_u_w()
2798 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_u_w()
2799 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_u_w()
2801 pwd->w[0] = msa_max_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_max_u_w()
2802 pwd->w[1] = msa_max_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_max_u_w()
2803 pwd->w[2] = msa_max_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_max_u_w()
2804 pwd->w[3] = msa_max_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_max_u_w()
2810 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_max_u_d()
2811 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_max_u_d()
2812 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_max_u_d()
2814 pwd->d[0] = msa_max_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_max_u_d()
2815 pwd->d[1] = msa_max_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_max_u_d()
2821 uint64_t abs_arg1 = arg1 >= 0 ? arg1 : -arg1; in msa_min_a_df()
2822 uint64_t abs_arg2 = arg2 >= 0 ? arg2 : -arg2; in msa_min_a_df()
2829 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_a_b()
2830 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_a_b()
2831 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_a_b()
2833 pwd->b[0] = msa_min_a_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_min_a_b()
2834 pwd->b[1] = msa_min_a_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_min_a_b()
2835 pwd->b[2] = msa_min_a_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_min_a_b()
2836 pwd->b[3] = msa_min_a_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_min_a_b()
2837 pwd->b[4] = msa_min_a_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_min_a_b()
2838 pwd->b[5] = msa_min_a_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_min_a_b()
2839 pwd->b[6] = msa_min_a_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_min_a_b()
2840 pwd->b[7] = msa_min_a_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_min_a_b()
2841 pwd->b[8] = msa_min_a_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_min_a_b()
2842 pwd->b[9] = msa_min_a_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_min_a_b()
2843 pwd->b[10] = msa_min_a_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_min_a_b()
2844 pwd->b[11] = msa_min_a_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_min_a_b()
2845 pwd->b[12] = msa_min_a_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_min_a_b()
2846 pwd->b[13] = msa_min_a_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_min_a_b()
2847 pwd->b[14] = msa_min_a_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_min_a_b()
2848 pwd->b[15] = msa_min_a_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_min_a_b()
2854 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_a_h()
2855 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_a_h()
2856 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_a_h()
2858 pwd->h[0] = msa_min_a_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_min_a_h()
2859 pwd->h[1] = msa_min_a_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_min_a_h()
2860 pwd->h[2] = msa_min_a_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_min_a_h()
2861 pwd->h[3] = msa_min_a_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_min_a_h()
2862 pwd->h[4] = msa_min_a_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_min_a_h()
2863 pwd->h[5] = msa_min_a_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_min_a_h()
2864 pwd->h[6] = msa_min_a_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_min_a_h()
2865 pwd->h[7] = msa_min_a_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_min_a_h()
2871 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_a_w()
2872 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_a_w()
2873 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_a_w()
2875 pwd->w[0] = msa_min_a_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_min_a_w()
2876 pwd->w[1] = msa_min_a_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_min_a_w()
2877 pwd->w[2] = msa_min_a_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_min_a_w()
2878 pwd->w[3] = msa_min_a_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_min_a_w()
2884 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_a_d()
2885 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_a_d()
2886 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_a_d()
2888 pwd->d[0] = msa_min_a_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_min_a_d()
2889 pwd->d[1] = msa_min_a_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_min_a_d()
2901 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_s_b()
2902 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_s_b()
2903 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_s_b()
2905 pwd->b[0] = msa_min_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_min_s_b()
2906 pwd->b[1] = msa_min_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_min_s_b()
2907 pwd->b[2] = msa_min_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_min_s_b()
2908 pwd->b[3] = msa_min_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_min_s_b()
2909 pwd->b[4] = msa_min_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_min_s_b()
2910 pwd->b[5] = msa_min_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_min_s_b()
2911 pwd->b[6] = msa_min_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_min_s_b()
2912 pwd->b[7] = msa_min_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_min_s_b()
2913 pwd->b[8] = msa_min_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_min_s_b()
2914 pwd->b[9] = msa_min_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_min_s_b()
2915 pwd->b[10] = msa_min_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_min_s_b()
2916 pwd->b[11] = msa_min_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_min_s_b()
2917 pwd->b[12] = msa_min_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_min_s_b()
2918 pwd->b[13] = msa_min_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_min_s_b()
2919 pwd->b[14] = msa_min_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_min_s_b()
2920 pwd->b[15] = msa_min_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_min_s_b()
2926 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_s_h()
2927 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_s_h()
2928 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_s_h()
2930 pwd->h[0] = msa_min_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_min_s_h()
2931 pwd->h[1] = msa_min_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_min_s_h()
2932 pwd->h[2] = msa_min_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_min_s_h()
2933 pwd->h[3] = msa_min_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_min_s_h()
2934 pwd->h[4] = msa_min_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_min_s_h()
2935 pwd->h[5] = msa_min_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_min_s_h()
2936 pwd->h[6] = msa_min_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_min_s_h()
2937 pwd->h[7] = msa_min_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_min_s_h()
2943 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_s_w()
2944 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_s_w()
2945 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_s_w()
2947 pwd->w[0] = msa_min_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_min_s_w()
2948 pwd->w[1] = msa_min_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_min_s_w()
2949 pwd->w[2] = msa_min_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_min_s_w()
2950 pwd->w[3] = msa_min_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_min_s_w()
2956 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_s_d()
2957 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_s_d()
2958 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_s_d()
2960 pwd->d[0] = msa_min_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_min_s_d()
2961 pwd->d[1] = msa_min_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_min_s_d()
2975 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_u_b()
2976 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_u_b()
2977 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_u_b()
2979 pwd->b[0] = msa_min_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_min_u_b()
2980 pwd->b[1] = msa_min_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_min_u_b()
2981 pwd->b[2] = msa_min_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_min_u_b()
2982 pwd->b[3] = msa_min_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_min_u_b()
2983 pwd->b[4] = msa_min_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_min_u_b()
2984 pwd->b[5] = msa_min_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_min_u_b()
2985 pwd->b[6] = msa_min_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_min_u_b()
2986 pwd->b[7] = msa_min_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_min_u_b()
2987 pwd->b[8] = msa_min_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_min_u_b()
2988 pwd->b[9] = msa_min_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_min_u_b()
2989 pwd->b[10] = msa_min_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_min_u_b()
2990 pwd->b[11] = msa_min_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_min_u_b()
2991 pwd->b[12] = msa_min_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_min_u_b()
2992 pwd->b[13] = msa_min_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_min_u_b()
2993 pwd->b[14] = msa_min_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_min_u_b()
2994 pwd->b[15] = msa_min_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_min_u_b()
3000 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_u_h()
3001 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_u_h()
3002 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_u_h()
3004 pwd->h[0] = msa_min_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_min_u_h()
3005 pwd->h[1] = msa_min_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_min_u_h()
3006 pwd->h[2] = msa_min_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_min_u_h()
3007 pwd->h[3] = msa_min_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_min_u_h()
3008 pwd->h[4] = msa_min_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_min_u_h()
3009 pwd->h[5] = msa_min_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_min_u_h()
3010 pwd->h[6] = msa_min_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_min_u_h()
3011 pwd->h[7] = msa_min_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_min_u_h()
3017 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_u_w()
3018 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_u_w()
3019 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_u_w()
3021 pwd->w[0] = msa_min_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_min_u_w()
3022 pwd->w[1] = msa_min_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_min_u_w()
3023 pwd->w[2] = msa_min_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_min_u_w()
3024 pwd->w[3] = msa_min_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_min_u_w()
3030 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_min_u_d()
3031 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_min_u_d()
3032 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_min_u_d()
3034 pwd->d[0] = msa_min_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_min_u_d()
3035 pwd->d[1] = msa_min_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_min_u_d()
3041 * ----------
3043 * +---------------+----------------------------------------------------------+
3052 * +---------------+----------------------------------------------------------+
3057 if (arg1 == DF_MIN_INT(df) && arg2 == -1) { in msa_mod_s_df()
3066 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_s_b()
3067 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_s_b()
3068 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_s_b()
3070 pwd->b[0] = msa_mod_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_mod_s_b()
3071 pwd->b[1] = msa_mod_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_mod_s_b()
3072 pwd->b[2] = msa_mod_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_mod_s_b()
3073 pwd->b[3] = msa_mod_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_mod_s_b()
3074 pwd->b[4] = msa_mod_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_mod_s_b()
3075 pwd->b[5] = msa_mod_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_mod_s_b()
3076 pwd->b[6] = msa_mod_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_mod_s_b()
3077 pwd->b[7] = msa_mod_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_mod_s_b()
3078 pwd->b[8] = msa_mod_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_mod_s_b()
3079 pwd->b[9] = msa_mod_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_mod_s_b()
3080 pwd->b[10] = msa_mod_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_mod_s_b()
3081 pwd->b[11] = msa_mod_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_mod_s_b()
3082 pwd->b[12] = msa_mod_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_mod_s_b()
3083 pwd->b[13] = msa_mod_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_mod_s_b()
3084 pwd->b[14] = msa_mod_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_mod_s_b()
3085 pwd->b[15] = msa_mod_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_mod_s_b()
3091 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_s_h()
3092 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_s_h()
3093 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_s_h()
3095 pwd->h[0] = msa_mod_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_mod_s_h()
3096 pwd->h[1] = msa_mod_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_mod_s_h()
3097 pwd->h[2] = msa_mod_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_mod_s_h()
3098 pwd->h[3] = msa_mod_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_mod_s_h()
3099 pwd->h[4] = msa_mod_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_mod_s_h()
3100 pwd->h[5] = msa_mod_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_mod_s_h()
3101 pwd->h[6] = msa_mod_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_mod_s_h()
3102 pwd->h[7] = msa_mod_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_mod_s_h()
3108 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_s_w()
3109 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_s_w()
3110 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_s_w()
3112 pwd->w[0] = msa_mod_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_mod_s_w()
3113 pwd->w[1] = msa_mod_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_mod_s_w()
3114 pwd->w[2] = msa_mod_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_mod_s_w()
3115 pwd->w[3] = msa_mod_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_mod_s_w()
3121 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_s_d()
3122 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_s_d()
3123 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_s_d()
3125 pwd->d[0] = msa_mod_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_mod_s_d()
3126 pwd->d[1] = msa_mod_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_mod_s_d()
3139 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_u_b()
3140 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_u_b()
3141 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_u_b()
3143 pwd->b[0] = msa_mod_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_mod_u_b()
3144 pwd->b[1] = msa_mod_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_mod_u_b()
3145 pwd->b[2] = msa_mod_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_mod_u_b()
3146 pwd->b[3] = msa_mod_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_mod_u_b()
3147 pwd->b[4] = msa_mod_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_mod_u_b()
3148 pwd->b[5] = msa_mod_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_mod_u_b()
3149 pwd->b[6] = msa_mod_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_mod_u_b()
3150 pwd->b[7] = msa_mod_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_mod_u_b()
3151 pwd->b[8] = msa_mod_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_mod_u_b()
3152 pwd->b[9] = msa_mod_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_mod_u_b()
3153 pwd->b[10] = msa_mod_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_mod_u_b()
3154 pwd->b[11] = msa_mod_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_mod_u_b()
3155 pwd->b[12] = msa_mod_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_mod_u_b()
3156 pwd->b[13] = msa_mod_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_mod_u_b()
3157 pwd->b[14] = msa_mod_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_mod_u_b()
3158 pwd->b[15] = msa_mod_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_mod_u_b()
3164 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_u_h()
3165 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_u_h()
3166 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_u_h()
3168 pwd->h[0] = msa_mod_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_mod_u_h()
3169 pwd->h[1] = msa_mod_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_mod_u_h()
3170 pwd->h[2] = msa_mod_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_mod_u_h()
3171 pwd->h[3] = msa_mod_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_mod_u_h()
3172 pwd->h[4] = msa_mod_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_mod_u_h()
3173 pwd->h[5] = msa_mod_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_mod_u_h()
3174 pwd->h[6] = msa_mod_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_mod_u_h()
3175 pwd->h[7] = msa_mod_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_mod_u_h()
3181 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_u_w()
3182 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_u_w()
3183 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_u_w()
3185 pwd->w[0] = msa_mod_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_mod_u_w()
3186 pwd->w[1] = msa_mod_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_mod_u_w()
3187 pwd->w[2] = msa_mod_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_mod_u_w()
3188 pwd->w[3] = msa_mod_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_mod_u_w()
3194 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mod_u_d()
3195 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mod_u_d()
3196 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mod_u_d()
3198 pwd->d[0] = msa_mod_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_mod_u_d()
3199 pwd->d[1] = msa_mod_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_mod_u_d()
3205 * ------------
3207 * +---------------+----------------------------------------------------------+
3220 * +---------------+----------------------------------------------------------+
3232 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_maddv_b()
3233 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_maddv_b()
3234 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_maddv_b()
3236 pwd->b[0] = msa_maddv_df(DF_BYTE, pwd->b[0], pws->b[0], pwt->b[0]); in helper_msa_maddv_b()
3237 pwd->b[1] = msa_maddv_df(DF_BYTE, pwd->b[1], pws->b[1], pwt->b[1]); in helper_msa_maddv_b()
3238 pwd->b[2] = msa_maddv_df(DF_BYTE, pwd->b[2], pws->b[2], pwt->b[2]); in helper_msa_maddv_b()
3239 pwd->b[3] = msa_maddv_df(DF_BYTE, pwd->b[3], pws->b[3], pwt->b[3]); in helper_msa_maddv_b()
3240 pwd->b[4] = msa_maddv_df(DF_BYTE, pwd->b[4], pws->b[4], pwt->b[4]); in helper_msa_maddv_b()
3241 pwd->b[5] = msa_maddv_df(DF_BYTE, pwd->b[5], pws->b[5], pwt->b[5]); in helper_msa_maddv_b()
3242 pwd->b[6] = msa_maddv_df(DF_BYTE, pwd->b[6], pws->b[6], pwt->b[6]); in helper_msa_maddv_b()
3243 pwd->b[7] = msa_maddv_df(DF_BYTE, pwd->b[7], pws->b[7], pwt->b[7]); in helper_msa_maddv_b()
3244 pwd->b[8] = msa_maddv_df(DF_BYTE, pwd->b[8], pws->b[8], pwt->b[8]); in helper_msa_maddv_b()
3245 pwd->b[9] = msa_maddv_df(DF_BYTE, pwd->b[9], pws->b[9], pwt->b[9]); in helper_msa_maddv_b()
3246 pwd->b[10] = msa_maddv_df(DF_BYTE, pwd->b[10], pws->b[10], pwt->b[10]); in helper_msa_maddv_b()
3247 pwd->b[11] = msa_maddv_df(DF_BYTE, pwd->b[11], pws->b[11], pwt->b[11]); in helper_msa_maddv_b()
3248 pwd->b[12] = msa_maddv_df(DF_BYTE, pwd->b[12], pws->b[12], pwt->b[12]); in helper_msa_maddv_b()
3249 pwd->b[13] = msa_maddv_df(DF_BYTE, pwd->b[13], pws->b[13], pwt->b[13]); in helper_msa_maddv_b()
3250 pwd->b[14] = msa_maddv_df(DF_BYTE, pwd->b[14], pws->b[14], pwt->b[14]); in helper_msa_maddv_b()
3251 pwd->b[15] = msa_maddv_df(DF_BYTE, pwd->b[15], pws->b[15], pwt->b[15]); in helper_msa_maddv_b()
3257 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_maddv_h()
3258 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_maddv_h()
3259 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_maddv_h()
3261 pwd->h[0] = msa_maddv_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_maddv_h()
3262 pwd->h[1] = msa_maddv_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_maddv_h()
3263 pwd->h[2] = msa_maddv_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_maddv_h()
3264 pwd->h[3] = msa_maddv_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_maddv_h()
3265 pwd->h[4] = msa_maddv_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_maddv_h()
3266 pwd->h[5] = msa_maddv_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_maddv_h()
3267 pwd->h[6] = msa_maddv_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_maddv_h()
3268 pwd->h[7] = msa_maddv_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_maddv_h()
3274 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_maddv_w()
3275 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_maddv_w()
3276 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_maddv_w()
3278 pwd->w[0] = msa_maddv_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_maddv_w()
3279 pwd->w[1] = msa_maddv_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_maddv_w()
3280 pwd->w[2] = msa_maddv_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_maddv_w()
3281 pwd->w[3] = msa_maddv_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_maddv_w()
3287 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_maddv_d()
3288 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_maddv_d()
3289 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_maddv_d()
3291 pwd->d[0] = msa_maddv_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_maddv_d()
3292 pwd->d[1] = msa_maddv_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_maddv_d()
3298 return dest - arg1 * arg2; in msa_msubv_df()
3304 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_msubv_b()
3305 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_msubv_b()
3306 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_msubv_b()
3308 pwd->b[0] = msa_msubv_df(DF_BYTE, pwd->b[0], pws->b[0], pwt->b[0]); in helper_msa_msubv_b()
3309 pwd->b[1] = msa_msubv_df(DF_BYTE, pwd->b[1], pws->b[1], pwt->b[1]); in helper_msa_msubv_b()
3310 pwd->b[2] = msa_msubv_df(DF_BYTE, pwd->b[2], pws->b[2], pwt->b[2]); in helper_msa_msubv_b()
3311 pwd->b[3] = msa_msubv_df(DF_BYTE, pwd->b[3], pws->b[3], pwt->b[3]); in helper_msa_msubv_b()
3312 pwd->b[4] = msa_msubv_df(DF_BYTE, pwd->b[4], pws->b[4], pwt->b[4]); in helper_msa_msubv_b()
3313 pwd->b[5] = msa_msubv_df(DF_BYTE, pwd->b[5], pws->b[5], pwt->b[5]); in helper_msa_msubv_b()
3314 pwd->b[6] = msa_msubv_df(DF_BYTE, pwd->b[6], pws->b[6], pwt->b[6]); in helper_msa_msubv_b()
3315 pwd->b[7] = msa_msubv_df(DF_BYTE, pwd->b[7], pws->b[7], pwt->b[7]); in helper_msa_msubv_b()
3316 pwd->b[8] = msa_msubv_df(DF_BYTE, pwd->b[8], pws->b[8], pwt->b[8]); in helper_msa_msubv_b()
3317 pwd->b[9] = msa_msubv_df(DF_BYTE, pwd->b[9], pws->b[9], pwt->b[9]); in helper_msa_msubv_b()
3318 pwd->b[10] = msa_msubv_df(DF_BYTE, pwd->b[10], pws->b[10], pwt->b[10]); in helper_msa_msubv_b()
3319 pwd->b[11] = msa_msubv_df(DF_BYTE, pwd->b[11], pws->b[11], pwt->b[11]); in helper_msa_msubv_b()
3320 pwd->b[12] = msa_msubv_df(DF_BYTE, pwd->b[12], pws->b[12], pwt->b[12]); in helper_msa_msubv_b()
3321 pwd->b[13] = msa_msubv_df(DF_BYTE, pwd->b[13], pws->b[13], pwt->b[13]); in helper_msa_msubv_b()
3322 pwd->b[14] = msa_msubv_df(DF_BYTE, pwd->b[14], pws->b[14], pwt->b[14]); in helper_msa_msubv_b()
3323 pwd->b[15] = msa_msubv_df(DF_BYTE, pwd->b[15], pws->b[15], pwt->b[15]); in helper_msa_msubv_b()
3329 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_msubv_h()
3330 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_msubv_h()
3331 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_msubv_h()
3333 pwd->h[0] = msa_msubv_df(DF_HALF, pwd->h[0], pws->h[0], pwt->h[0]); in helper_msa_msubv_h()
3334 pwd->h[1] = msa_msubv_df(DF_HALF, pwd->h[1], pws->h[1], pwt->h[1]); in helper_msa_msubv_h()
3335 pwd->h[2] = msa_msubv_df(DF_HALF, pwd->h[2], pws->h[2], pwt->h[2]); in helper_msa_msubv_h()
3336 pwd->h[3] = msa_msubv_df(DF_HALF, pwd->h[3], pws->h[3], pwt->h[3]); in helper_msa_msubv_h()
3337 pwd->h[4] = msa_msubv_df(DF_HALF, pwd->h[4], pws->h[4], pwt->h[4]); in helper_msa_msubv_h()
3338 pwd->h[5] = msa_msubv_df(DF_HALF, pwd->h[5], pws->h[5], pwt->h[5]); in helper_msa_msubv_h()
3339 pwd->h[6] = msa_msubv_df(DF_HALF, pwd->h[6], pws->h[6], pwt->h[6]); in helper_msa_msubv_h()
3340 pwd->h[7] = msa_msubv_df(DF_HALF, pwd->h[7], pws->h[7], pwt->h[7]); in helper_msa_msubv_h()
3346 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_msubv_w()
3347 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_msubv_w()
3348 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_msubv_w()
3350 pwd->w[0] = msa_msubv_df(DF_WORD, pwd->w[0], pws->w[0], pwt->w[0]); in helper_msa_msubv_w()
3351 pwd->w[1] = msa_msubv_df(DF_WORD, pwd->w[1], pws->w[1], pwt->w[1]); in helper_msa_msubv_w()
3352 pwd->w[2] = msa_msubv_df(DF_WORD, pwd->w[2], pws->w[2], pwt->w[2]); in helper_msa_msubv_w()
3353 pwd->w[3] = msa_msubv_df(DF_WORD, pwd->w[3], pws->w[3], pwt->w[3]); in helper_msa_msubv_w()
3359 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_msubv_d()
3360 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_msubv_d()
3361 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_msubv_d()
3363 pwd->d[0] = msa_msubv_df(DF_DOUBLE, pwd->d[0], pws->d[0], pwt->d[0]); in helper_msa_msubv_d()
3364 pwd->d[1] = msa_msubv_df(DF_DOUBLE, pwd->d[1], pws->d[1], pwt->d[1]); in helper_msa_msubv_d()
3376 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mulv_b()
3377 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mulv_b()
3378 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mulv_b()
3380 pwd->b[0] = msa_mulv_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_mulv_b()
3381 pwd->b[1] = msa_mulv_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_mulv_b()
3382 pwd->b[2] = msa_mulv_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_mulv_b()
3383 pwd->b[3] = msa_mulv_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_mulv_b()
3384 pwd->b[4] = msa_mulv_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_mulv_b()
3385 pwd->b[5] = msa_mulv_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_mulv_b()
3386 pwd->b[6] = msa_mulv_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_mulv_b()
3387 pwd->b[7] = msa_mulv_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_mulv_b()
3388 pwd->b[8] = msa_mulv_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_mulv_b()
3389 pwd->b[9] = msa_mulv_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_mulv_b()
3390 pwd->b[10] = msa_mulv_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_mulv_b()
3391 pwd->b[11] = msa_mulv_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_mulv_b()
3392 pwd->b[12] = msa_mulv_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_mulv_b()
3393 pwd->b[13] = msa_mulv_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_mulv_b()
3394 pwd->b[14] = msa_mulv_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_mulv_b()
3395 pwd->b[15] = msa_mulv_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_mulv_b()
3401 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mulv_h()
3402 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mulv_h()
3403 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mulv_h()
3405 pwd->h[0] = msa_mulv_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_mulv_h()
3406 pwd->h[1] = msa_mulv_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_mulv_h()
3407 pwd->h[2] = msa_mulv_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_mulv_h()
3408 pwd->h[3] = msa_mulv_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_mulv_h()
3409 pwd->h[4] = msa_mulv_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_mulv_h()
3410 pwd->h[5] = msa_mulv_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_mulv_h()
3411 pwd->h[6] = msa_mulv_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_mulv_h()
3412 pwd->h[7] = msa_mulv_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_mulv_h()
3418 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mulv_w()
3419 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mulv_w()
3420 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mulv_w()
3422 pwd->w[0] = msa_mulv_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_mulv_w()
3423 pwd->w[1] = msa_mulv_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_mulv_w()
3424 pwd->w[2] = msa_mulv_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_mulv_w()
3425 pwd->w[3] = msa_mulv_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_mulv_w()
3431 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_mulv_d()
3432 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_mulv_d()
3433 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_mulv_d()
3435 pwd->d[0] = msa_mulv_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_mulv_d()
3436 pwd->d[1] = msa_mulv_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_mulv_d()
3442 * ------------
3444 * +---------------+----------------------------------------------------------+
3479 * +---------------+----------------------------------------------------------+
3487 (uint64_t)(arg2 - arg1) : (uint64_t)(arg1 - arg2); in msa_asub_s_df()
3493 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_s_b()
3494 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_s_b()
3495 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_s_b()
3497 pwd->b[0] = msa_asub_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_asub_s_b()
3498 pwd->b[1] = msa_asub_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_asub_s_b()
3499 pwd->b[2] = msa_asub_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_asub_s_b()
3500 pwd->b[3] = msa_asub_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_asub_s_b()
3501 pwd->b[4] = msa_asub_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_asub_s_b()
3502 pwd->b[5] = msa_asub_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_asub_s_b()
3503 pwd->b[6] = msa_asub_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_asub_s_b()
3504 pwd->b[7] = msa_asub_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_asub_s_b()
3505 pwd->b[8] = msa_asub_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_asub_s_b()
3506 pwd->b[9] = msa_asub_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_asub_s_b()
3507 pwd->b[10] = msa_asub_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_asub_s_b()
3508 pwd->b[11] = msa_asub_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_asub_s_b()
3509 pwd->b[12] = msa_asub_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_asub_s_b()
3510 pwd->b[13] = msa_asub_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_asub_s_b()
3511 pwd->b[14] = msa_asub_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_asub_s_b()
3512 pwd->b[15] = msa_asub_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_asub_s_b()
3518 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_s_h()
3519 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_s_h()
3520 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_s_h()
3522 pwd->h[0] = msa_asub_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_asub_s_h()
3523 pwd->h[1] = msa_asub_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_asub_s_h()
3524 pwd->h[2] = msa_asub_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_asub_s_h()
3525 pwd->h[3] = msa_asub_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_asub_s_h()
3526 pwd->h[4] = msa_asub_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_asub_s_h()
3527 pwd->h[5] = msa_asub_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_asub_s_h()
3528 pwd->h[6] = msa_asub_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_asub_s_h()
3529 pwd->h[7] = msa_asub_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_asub_s_h()
3535 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_s_w()
3536 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_s_w()
3537 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_s_w()
3539 pwd->w[0] = msa_asub_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_asub_s_w()
3540 pwd->w[1] = msa_asub_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_asub_s_w()
3541 pwd->w[2] = msa_asub_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_asub_s_w()
3542 pwd->w[3] = msa_asub_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_asub_s_w()
3548 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_s_d()
3549 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_s_d()
3550 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_s_d()
3552 pwd->d[0] = msa_asub_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_asub_s_d()
3553 pwd->d[1] = msa_asub_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_asub_s_d()
3563 (uint64_t)(u_arg2 - u_arg1) : (uint64_t)(u_arg1 - u_arg2); in msa_asub_u_df()
3569 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_u_b()
3570 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_u_b()
3571 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_u_b()
3573 pwd->b[0] = msa_asub_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_asub_u_b()
3574 pwd->b[1] = msa_asub_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_asub_u_b()
3575 pwd->b[2] = msa_asub_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_asub_u_b()
3576 pwd->b[3] = msa_asub_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_asub_u_b()
3577 pwd->b[4] = msa_asub_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_asub_u_b()
3578 pwd->b[5] = msa_asub_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_asub_u_b()
3579 pwd->b[6] = msa_asub_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_asub_u_b()
3580 pwd->b[7] = msa_asub_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_asub_u_b()
3581 pwd->b[8] = msa_asub_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_asub_u_b()
3582 pwd->b[9] = msa_asub_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_asub_u_b()
3583 pwd->b[10] = msa_asub_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_asub_u_b()
3584 pwd->b[11] = msa_asub_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_asub_u_b()
3585 pwd->b[12] = msa_asub_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_asub_u_b()
3586 pwd->b[13] = msa_asub_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_asub_u_b()
3587 pwd->b[14] = msa_asub_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_asub_u_b()
3588 pwd->b[15] = msa_asub_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_asub_u_b()
3594 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_u_h()
3595 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_u_h()
3596 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_u_h()
3598 pwd->h[0] = msa_asub_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_asub_u_h()
3599 pwd->h[1] = msa_asub_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_asub_u_h()
3600 pwd->h[2] = msa_asub_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_asub_u_h()
3601 pwd->h[3] = msa_asub_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_asub_u_h()
3602 pwd->h[4] = msa_asub_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_asub_u_h()
3603 pwd->h[5] = msa_asub_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_asub_u_h()
3604 pwd->h[6] = msa_asub_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_asub_u_h()
3605 pwd->h[7] = msa_asub_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_asub_u_h()
3611 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_u_w()
3612 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_u_w()
3613 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_u_w()
3615 pwd->w[0] = msa_asub_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_asub_u_w()
3616 pwd->w[1] = msa_asub_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_asub_u_w()
3617 pwd->w[2] = msa_asub_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_asub_u_w()
3618 pwd->w[3] = msa_asub_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_asub_u_w()
3624 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_asub_u_d()
3625 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_asub_u_d()
3626 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_asub_u_d()
3628 pwd->d[0] = msa_asub_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_asub_u_d()
3629 pwd->d[1] = msa_asub_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_asub_u_d()
3635 return SIGNED_ODD(arg1, df) - SIGNED_EVEN(arg2, df); in msa_hsub_s_df()
3641 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_s_h()
3642 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_s_h()
3643 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_s_h()
3645 pwd->h[0] = msa_hsub_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_hsub_s_h()
3646 pwd->h[1] = msa_hsub_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_hsub_s_h()
3647 pwd->h[2] = msa_hsub_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_hsub_s_h()
3648 pwd->h[3] = msa_hsub_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_hsub_s_h()
3649 pwd->h[4] = msa_hsub_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_hsub_s_h()
3650 pwd->h[5] = msa_hsub_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_hsub_s_h()
3651 pwd->h[6] = msa_hsub_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_hsub_s_h()
3652 pwd->h[7] = msa_hsub_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_hsub_s_h()
3658 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_s_w()
3659 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_s_w()
3660 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_s_w()
3662 pwd->w[0] = msa_hsub_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_hsub_s_w()
3663 pwd->w[1] = msa_hsub_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_hsub_s_w()
3664 pwd->w[2] = msa_hsub_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_hsub_s_w()
3665 pwd->w[3] = msa_hsub_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_hsub_s_w()
3671 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_s_d()
3672 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_s_d()
3673 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_s_d()
3675 pwd->d[0] = msa_hsub_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_hsub_s_d()
3676 pwd->d[1] = msa_hsub_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_hsub_s_d()
3682 return UNSIGNED_ODD(arg1, df) - UNSIGNED_EVEN(arg2, df); in msa_hsub_u_df()
3688 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_u_h()
3689 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_u_h()
3690 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_u_h()
3692 pwd->h[0] = msa_hsub_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_hsub_u_h()
3693 pwd->h[1] = msa_hsub_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_hsub_u_h()
3694 pwd->h[2] = msa_hsub_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_hsub_u_h()
3695 pwd->h[3] = msa_hsub_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_hsub_u_h()
3696 pwd->h[4] = msa_hsub_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_hsub_u_h()
3697 pwd->h[5] = msa_hsub_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_hsub_u_h()
3698 pwd->h[6] = msa_hsub_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_hsub_u_h()
3699 pwd->h[7] = msa_hsub_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_hsub_u_h()
3705 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_u_w()
3706 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_u_w()
3707 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_u_w()
3709 pwd->w[0] = msa_hsub_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_hsub_u_w()
3710 pwd->w[1] = msa_hsub_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_hsub_u_w()
3711 pwd->w[2] = msa_hsub_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_hsub_u_w()
3712 pwd->w[3] = msa_hsub_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_hsub_u_w()
3718 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_hsub_u_d()
3719 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_hsub_u_d()
3720 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_hsub_u_d()
3722 pwd->d[0] = msa_hsub_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_hsub_u_d()
3723 pwd->d[1] = msa_hsub_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_hsub_u_d()
3732 return (min_int + arg2 < arg1) ? arg1 - arg2 : min_int; in msa_subs_s_df()
3734 return (arg1 < max_int + arg2) ? arg1 - arg2 : max_int; in msa_subs_s_df()
3741 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_s_b()
3742 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_s_b()
3743 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_s_b()
3745 pwd->b[0] = msa_subs_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_subs_s_b()
3746 pwd->b[1] = msa_subs_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_subs_s_b()
3747 pwd->b[2] = msa_subs_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_subs_s_b()
3748 pwd->b[3] = msa_subs_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_subs_s_b()
3749 pwd->b[4] = msa_subs_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_subs_s_b()
3750 pwd->b[5] = msa_subs_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_subs_s_b()
3751 pwd->b[6] = msa_subs_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_subs_s_b()
3752 pwd->b[7] = msa_subs_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_subs_s_b()
3753 pwd->b[8] = msa_subs_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_subs_s_b()
3754 pwd->b[9] = msa_subs_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_subs_s_b()
3755 pwd->b[10] = msa_subs_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_subs_s_b()
3756 pwd->b[11] = msa_subs_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_subs_s_b()
3757 pwd->b[12] = msa_subs_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_subs_s_b()
3758 pwd->b[13] = msa_subs_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_subs_s_b()
3759 pwd->b[14] = msa_subs_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_subs_s_b()
3760 pwd->b[15] = msa_subs_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_subs_s_b()
3766 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_s_h()
3767 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_s_h()
3768 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_s_h()
3770 pwd->h[0] = msa_subs_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_subs_s_h()
3771 pwd->h[1] = msa_subs_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_subs_s_h()
3772 pwd->h[2] = msa_subs_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_subs_s_h()
3773 pwd->h[3] = msa_subs_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_subs_s_h()
3774 pwd->h[4] = msa_subs_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_subs_s_h()
3775 pwd->h[5] = msa_subs_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_subs_s_h()
3776 pwd->h[6] = msa_subs_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_subs_s_h()
3777 pwd->h[7] = msa_subs_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_subs_s_h()
3783 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_s_w()
3784 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_s_w()
3785 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_s_w()
3787 pwd->w[0] = msa_subs_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_subs_s_w()
3788 pwd->w[1] = msa_subs_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_subs_s_w()
3789 pwd->w[2] = msa_subs_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_subs_s_w()
3790 pwd->w[3] = msa_subs_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_subs_s_w()
3796 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_s_d()
3797 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_s_d()
3798 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_s_d()
3800 pwd->d[0] = msa_subs_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_subs_s_d()
3801 pwd->d[1] = msa_subs_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_subs_s_d()
3809 return (u_arg1 > u_arg2) ? u_arg1 - u_arg2 : 0; in msa_subs_u_df()
3815 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_u_b()
3816 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_u_b()
3817 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_u_b()
3819 pwd->b[0] = msa_subs_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_subs_u_b()
3820 pwd->b[1] = msa_subs_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_subs_u_b()
3821 pwd->b[2] = msa_subs_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_subs_u_b()
3822 pwd->b[3] = msa_subs_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_subs_u_b()
3823 pwd->b[4] = msa_subs_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_subs_u_b()
3824 pwd->b[5] = msa_subs_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_subs_u_b()
3825 pwd->b[6] = msa_subs_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_subs_u_b()
3826 pwd->b[7] = msa_subs_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_subs_u_b()
3827 pwd->b[8] = msa_subs_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_subs_u_b()
3828 pwd->b[9] = msa_subs_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_subs_u_b()
3829 pwd->b[10] = msa_subs_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_subs_u_b()
3830 pwd->b[11] = msa_subs_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_subs_u_b()
3831 pwd->b[12] = msa_subs_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_subs_u_b()
3832 pwd->b[13] = msa_subs_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_subs_u_b()
3833 pwd->b[14] = msa_subs_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_subs_u_b()
3834 pwd->b[15] = msa_subs_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_subs_u_b()
3840 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_u_h()
3841 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_u_h()
3842 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_u_h()
3844 pwd->h[0] = msa_subs_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_subs_u_h()
3845 pwd->h[1] = msa_subs_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_subs_u_h()
3846 pwd->h[2] = msa_subs_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_subs_u_h()
3847 pwd->h[3] = msa_subs_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_subs_u_h()
3848 pwd->h[4] = msa_subs_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_subs_u_h()
3849 pwd->h[5] = msa_subs_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_subs_u_h()
3850 pwd->h[6] = msa_subs_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_subs_u_h()
3851 pwd->h[7] = msa_subs_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_subs_u_h()
3857 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_u_w()
3858 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_u_w()
3859 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_u_w()
3861 pwd->w[0] = msa_subs_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_subs_u_w()
3862 pwd->w[1] = msa_subs_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_subs_u_w()
3863 pwd->w[2] = msa_subs_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_subs_u_w()
3864 pwd->w[3] = msa_subs_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_subs_u_w()
3870 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subs_u_d()
3871 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subs_u_d()
3872 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subs_u_d()
3874 pwd->d[0] = msa_subs_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_subs_u_d()
3875 pwd->d[1] = msa_subs_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_subs_u_d()
3886 (int64_t)(u_arg1 - u_arg2) : in msa_subsus_u_df()
3889 uint64_t u_arg2 = (uint64_t)(-arg2); in msa_subsus_u_df()
3890 return (u_arg1 < max_uint - u_arg2) ? in msa_subsus_u_df()
3899 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsus_u_b()
3900 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsus_u_b()
3901 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsus_u_b()
3903 pwd->b[0] = msa_subsus_u_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_subsus_u_b()
3904 pwd->b[1] = msa_subsus_u_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_subsus_u_b()
3905 pwd->b[2] = msa_subsus_u_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_subsus_u_b()
3906 pwd->b[3] = msa_subsus_u_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_subsus_u_b()
3907 pwd->b[4] = msa_subsus_u_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_subsus_u_b()
3908 pwd->b[5] = msa_subsus_u_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_subsus_u_b()
3909 pwd->b[6] = msa_subsus_u_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_subsus_u_b()
3910 pwd->b[7] = msa_subsus_u_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_subsus_u_b()
3911 pwd->b[8] = msa_subsus_u_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_subsus_u_b()
3912 pwd->b[9] = msa_subsus_u_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_subsus_u_b()
3913 pwd->b[10] = msa_subsus_u_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_subsus_u_b()
3914 pwd->b[11] = msa_subsus_u_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_subsus_u_b()
3915 pwd->b[12] = msa_subsus_u_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_subsus_u_b()
3916 pwd->b[13] = msa_subsus_u_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_subsus_u_b()
3917 pwd->b[14] = msa_subsus_u_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_subsus_u_b()
3918 pwd->b[15] = msa_subsus_u_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_subsus_u_b()
3924 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsus_u_h()
3925 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsus_u_h()
3926 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsus_u_h()
3928 pwd->h[0] = msa_subsus_u_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_subsus_u_h()
3929 pwd->h[1] = msa_subsus_u_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_subsus_u_h()
3930 pwd->h[2] = msa_subsus_u_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_subsus_u_h()
3931 pwd->h[3] = msa_subsus_u_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_subsus_u_h()
3932 pwd->h[4] = msa_subsus_u_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_subsus_u_h()
3933 pwd->h[5] = msa_subsus_u_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_subsus_u_h()
3934 pwd->h[6] = msa_subsus_u_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_subsus_u_h()
3935 pwd->h[7] = msa_subsus_u_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_subsus_u_h()
3941 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsus_u_w()
3942 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsus_u_w()
3943 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsus_u_w()
3945 pwd->w[0] = msa_subsus_u_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_subsus_u_w()
3946 pwd->w[1] = msa_subsus_u_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_subsus_u_w()
3947 pwd->w[2] = msa_subsus_u_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_subsus_u_w()
3948 pwd->w[3] = msa_subsus_u_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_subsus_u_w()
3954 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsus_u_d()
3955 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsus_u_d()
3956 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsus_u_d()
3958 pwd->d[0] = msa_subsus_u_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_subsus_u_d()
3959 pwd->d[1] = msa_subsus_u_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_subsus_u_d()
3970 return u_arg1 - u_arg2 < (uint64_t)max_int ? in msa_subsuu_s_df()
3971 (int64_t)(u_arg1 - u_arg2) : in msa_subsuu_s_df()
3974 return u_arg2 - u_arg1 < (uint64_t)(-min_int) ? in msa_subsuu_s_df()
3975 (int64_t)(u_arg1 - u_arg2) : in msa_subsuu_s_df()
3983 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsuu_s_b()
3984 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsuu_s_b()
3985 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsuu_s_b()
3987 pwd->b[0] = msa_subsuu_s_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_subsuu_s_b()
3988 pwd->b[1] = msa_subsuu_s_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_subsuu_s_b()
3989 pwd->b[2] = msa_subsuu_s_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_subsuu_s_b()
3990 pwd->b[3] = msa_subsuu_s_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_subsuu_s_b()
3991 pwd->b[4] = msa_subsuu_s_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_subsuu_s_b()
3992 pwd->b[5] = msa_subsuu_s_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_subsuu_s_b()
3993 pwd->b[6] = msa_subsuu_s_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_subsuu_s_b()
3994 pwd->b[7] = msa_subsuu_s_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_subsuu_s_b()
3995 pwd->b[8] = msa_subsuu_s_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_subsuu_s_b()
3996 pwd->b[9] = msa_subsuu_s_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_subsuu_s_b()
3997 pwd->b[10] = msa_subsuu_s_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_subsuu_s_b()
3998 pwd->b[11] = msa_subsuu_s_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_subsuu_s_b()
3999 pwd->b[12] = msa_subsuu_s_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_subsuu_s_b()
4000 pwd->b[13] = msa_subsuu_s_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_subsuu_s_b()
4001 pwd->b[14] = msa_subsuu_s_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_subsuu_s_b()
4002 pwd->b[15] = msa_subsuu_s_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_subsuu_s_b()
4008 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsuu_s_h()
4009 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsuu_s_h()
4010 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsuu_s_h()
4012 pwd->h[0] = msa_subsuu_s_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_subsuu_s_h()
4013 pwd->h[1] = msa_subsuu_s_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_subsuu_s_h()
4014 pwd->h[2] = msa_subsuu_s_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_subsuu_s_h()
4015 pwd->h[3] = msa_subsuu_s_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_subsuu_s_h()
4016 pwd->h[4] = msa_subsuu_s_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_subsuu_s_h()
4017 pwd->h[5] = msa_subsuu_s_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_subsuu_s_h()
4018 pwd->h[6] = msa_subsuu_s_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_subsuu_s_h()
4019 pwd->h[7] = msa_subsuu_s_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_subsuu_s_h()
4025 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsuu_s_w()
4026 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsuu_s_w()
4027 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsuu_s_w()
4029 pwd->w[0] = msa_subsuu_s_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_subsuu_s_w()
4030 pwd->w[1] = msa_subsuu_s_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_subsuu_s_w()
4031 pwd->w[2] = msa_subsuu_s_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_subsuu_s_w()
4032 pwd->w[3] = msa_subsuu_s_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_subsuu_s_w()
4038 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subsuu_s_d()
4039 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subsuu_s_d()
4040 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subsuu_s_d()
4042 pwd->d[0] = msa_subsuu_s_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_subsuu_s_d()
4043 pwd->d[1] = msa_subsuu_s_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_subsuu_s_d()
4049 return arg1 - arg2; in msa_subv_df()
4055 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subv_b()
4056 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subv_b()
4057 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subv_b()
4059 pwd->b[0] = msa_subv_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_subv_b()
4060 pwd->b[1] = msa_subv_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_subv_b()
4061 pwd->b[2] = msa_subv_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_subv_b()
4062 pwd->b[3] = msa_subv_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_subv_b()
4063 pwd->b[4] = msa_subv_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_subv_b()
4064 pwd->b[5] = msa_subv_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_subv_b()
4065 pwd->b[6] = msa_subv_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_subv_b()
4066 pwd->b[7] = msa_subv_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_subv_b()
4067 pwd->b[8] = msa_subv_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_subv_b()
4068 pwd->b[9] = msa_subv_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_subv_b()
4069 pwd->b[10] = msa_subv_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_subv_b()
4070 pwd->b[11] = msa_subv_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_subv_b()
4071 pwd->b[12] = msa_subv_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_subv_b()
4072 pwd->b[13] = msa_subv_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_subv_b()
4073 pwd->b[14] = msa_subv_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_subv_b()
4074 pwd->b[15] = msa_subv_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_subv_b()
4080 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subv_h()
4081 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subv_h()
4082 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subv_h()
4084 pwd->h[0] = msa_subv_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_subv_h()
4085 pwd->h[1] = msa_subv_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_subv_h()
4086 pwd->h[2] = msa_subv_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_subv_h()
4087 pwd->h[3] = msa_subv_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_subv_h()
4088 pwd->h[4] = msa_subv_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_subv_h()
4089 pwd->h[5] = msa_subv_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_subv_h()
4090 pwd->h[6] = msa_subv_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_subv_h()
4091 pwd->h[7] = msa_subv_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_subv_h()
4097 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subv_w()
4098 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subv_w()
4099 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subv_w()
4101 pwd->w[0] = msa_subv_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_subv_w()
4102 pwd->w[1] = msa_subv_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_subv_w()
4103 pwd->w[2] = msa_subv_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_subv_w()
4104 pwd->w[3] = msa_subv_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_subv_w()
4110 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_subv_d()
4111 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_subv_d()
4112 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_subv_d()
4114 pwd->d[0] = msa_subv_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_subv_d()
4115 pwd->d[1] = msa_subv_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_subv_d()
4121 * ----------
4123 * +---------------+----------------------------------------------------------+
4140 * +---------------+----------------------------------------------------------+
4147 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvev_b()
4148 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvev_b()
4149 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvev_b()
4152 pwd->b[8] = pws->b[9]; in helper_msa_ilvev_b()
4153 pwd->b[9] = pwt->b[9]; in helper_msa_ilvev_b()
4154 pwd->b[10] = pws->b[11]; in helper_msa_ilvev_b()
4155 pwd->b[11] = pwt->b[11]; in helper_msa_ilvev_b()
4156 pwd->b[12] = pws->b[13]; in helper_msa_ilvev_b()
4157 pwd->b[13] = pwt->b[13]; in helper_msa_ilvev_b()
4158 pwd->b[14] = pws->b[15]; in helper_msa_ilvev_b()
4159 pwd->b[15] = pwt->b[15]; in helper_msa_ilvev_b()
4160 pwd->b[0] = pws->b[1]; in helper_msa_ilvev_b()
4161 pwd->b[1] = pwt->b[1]; in helper_msa_ilvev_b()
4162 pwd->b[2] = pws->b[3]; in helper_msa_ilvev_b()
4163 pwd->b[3] = pwt->b[3]; in helper_msa_ilvev_b()
4164 pwd->b[4] = pws->b[5]; in helper_msa_ilvev_b()
4165 pwd->b[5] = pwt->b[5]; in helper_msa_ilvev_b()
4166 pwd->b[6] = pws->b[7]; in helper_msa_ilvev_b()
4167 pwd->b[7] = pwt->b[7]; in helper_msa_ilvev_b()
4169 pwd->b[15] = pws->b[14]; in helper_msa_ilvev_b()
4170 pwd->b[14] = pwt->b[14]; in helper_msa_ilvev_b()
4171 pwd->b[13] = pws->b[12]; in helper_msa_ilvev_b()
4172 pwd->b[12] = pwt->b[12]; in helper_msa_ilvev_b()
4173 pwd->b[11] = pws->b[10]; in helper_msa_ilvev_b()
4174 pwd->b[10] = pwt->b[10]; in helper_msa_ilvev_b()
4175 pwd->b[9] = pws->b[8]; in helper_msa_ilvev_b()
4176 pwd->b[8] = pwt->b[8]; in helper_msa_ilvev_b()
4177 pwd->b[7] = pws->b[6]; in helper_msa_ilvev_b()
4178 pwd->b[6] = pwt->b[6]; in helper_msa_ilvev_b()
4179 pwd->b[5] = pws->b[4]; in helper_msa_ilvev_b()
4180 pwd->b[4] = pwt->b[4]; in helper_msa_ilvev_b()
4181 pwd->b[3] = pws->b[2]; in helper_msa_ilvev_b()
4182 pwd->b[2] = pwt->b[2]; in helper_msa_ilvev_b()
4183 pwd->b[1] = pws->b[0]; in helper_msa_ilvev_b()
4184 pwd->b[0] = pwt->b[0]; in helper_msa_ilvev_b()
4191 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvev_h()
4192 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvev_h()
4193 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvev_h()
4196 pwd->h[4] = pws->h[5]; in helper_msa_ilvev_h()
4197 pwd->h[5] = pwt->h[5]; in helper_msa_ilvev_h()
4198 pwd->h[6] = pws->h[7]; in helper_msa_ilvev_h()
4199 pwd->h[7] = pwt->h[7]; in helper_msa_ilvev_h()
4200 pwd->h[0] = pws->h[1]; in helper_msa_ilvev_h()
4201 pwd->h[1] = pwt->h[1]; in helper_msa_ilvev_h()
4202 pwd->h[2] = pws->h[3]; in helper_msa_ilvev_h()
4203 pwd->h[3] = pwt->h[3]; in helper_msa_ilvev_h()
4205 pwd->h[7] = pws->h[6]; in helper_msa_ilvev_h()
4206 pwd->h[6] = pwt->h[6]; in helper_msa_ilvev_h()
4207 pwd->h[5] = pws->h[4]; in helper_msa_ilvev_h()
4208 pwd->h[4] = pwt->h[4]; in helper_msa_ilvev_h()
4209 pwd->h[3] = pws->h[2]; in helper_msa_ilvev_h()
4210 pwd->h[2] = pwt->h[2]; in helper_msa_ilvev_h()
4211 pwd->h[1] = pws->h[0]; in helper_msa_ilvev_h()
4212 pwd->h[0] = pwt->h[0]; in helper_msa_ilvev_h()
4219 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvev_w()
4220 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvev_w()
4221 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvev_w()
4224 pwd->w[2] = pws->w[3]; in helper_msa_ilvev_w()
4225 pwd->w[3] = pwt->w[3]; in helper_msa_ilvev_w()
4226 pwd->w[0] = pws->w[1]; in helper_msa_ilvev_w()
4227 pwd->w[1] = pwt->w[1]; in helper_msa_ilvev_w()
4229 pwd->w[3] = pws->w[2]; in helper_msa_ilvev_w()
4230 pwd->w[2] = pwt->w[2]; in helper_msa_ilvev_w()
4231 pwd->w[1] = pws->w[0]; in helper_msa_ilvev_w()
4232 pwd->w[0] = pwt->w[0]; in helper_msa_ilvev_w()
4239 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvev_d()
4240 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvev_d()
4241 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvev_d()
4243 pwd->d[1] = pws->d[0]; in helper_msa_ilvev_d()
4244 pwd->d[0] = pwt->d[0]; in helper_msa_ilvev_d()
4251 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvod_b()
4252 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvod_b()
4253 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvod_b()
4256 pwd->b[7] = pwt->b[6]; in helper_msa_ilvod_b()
4257 pwd->b[6] = pws->b[6]; in helper_msa_ilvod_b()
4258 pwd->b[5] = pwt->b[4]; in helper_msa_ilvod_b()
4259 pwd->b[4] = pws->b[4]; in helper_msa_ilvod_b()
4260 pwd->b[3] = pwt->b[2]; in helper_msa_ilvod_b()
4261 pwd->b[2] = pws->b[2]; in helper_msa_ilvod_b()
4262 pwd->b[1] = pwt->b[0]; in helper_msa_ilvod_b()
4263 pwd->b[0] = pws->b[0]; in helper_msa_ilvod_b()
4264 pwd->b[15] = pwt->b[14]; in helper_msa_ilvod_b()
4265 pwd->b[14] = pws->b[14]; in helper_msa_ilvod_b()
4266 pwd->b[13] = pwt->b[12]; in helper_msa_ilvod_b()
4267 pwd->b[12] = pws->b[12]; in helper_msa_ilvod_b()
4268 pwd->b[11] = pwt->b[10]; in helper_msa_ilvod_b()
4269 pwd->b[10] = pws->b[10]; in helper_msa_ilvod_b()
4270 pwd->b[9] = pwt->b[8]; in helper_msa_ilvod_b()
4271 pwd->b[8] = pws->b[8]; in helper_msa_ilvod_b()
4273 pwd->b[0] = pwt->b[1]; in helper_msa_ilvod_b()
4274 pwd->b[1] = pws->b[1]; in helper_msa_ilvod_b()
4275 pwd->b[2] = pwt->b[3]; in helper_msa_ilvod_b()
4276 pwd->b[3] = pws->b[3]; in helper_msa_ilvod_b()
4277 pwd->b[4] = pwt->b[5]; in helper_msa_ilvod_b()
4278 pwd->b[5] = pws->b[5]; in helper_msa_ilvod_b()
4279 pwd->b[6] = pwt->b[7]; in helper_msa_ilvod_b()
4280 pwd->b[7] = pws->b[7]; in helper_msa_ilvod_b()
4281 pwd->b[8] = pwt->b[9]; in helper_msa_ilvod_b()
4282 pwd->b[9] = pws->b[9]; in helper_msa_ilvod_b()
4283 pwd->b[10] = pwt->b[11]; in helper_msa_ilvod_b()
4284 pwd->b[11] = pws->b[11]; in helper_msa_ilvod_b()
4285 pwd->b[12] = pwt->b[13]; in helper_msa_ilvod_b()
4286 pwd->b[13] = pws->b[13]; in helper_msa_ilvod_b()
4287 pwd->b[14] = pwt->b[15]; in helper_msa_ilvod_b()
4288 pwd->b[15] = pws->b[15]; in helper_msa_ilvod_b()
4295 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvod_h()
4296 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvod_h()
4297 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvod_h()
4300 pwd->h[3] = pwt->h[2]; in helper_msa_ilvod_h()
4301 pwd->h[2] = pws->h[2]; in helper_msa_ilvod_h()
4302 pwd->h[1] = pwt->h[0]; in helper_msa_ilvod_h()
4303 pwd->h[0] = pws->h[0]; in helper_msa_ilvod_h()
4304 pwd->h[7] = pwt->h[6]; in helper_msa_ilvod_h()
4305 pwd->h[6] = pws->h[6]; in helper_msa_ilvod_h()
4306 pwd->h[5] = pwt->h[4]; in helper_msa_ilvod_h()
4307 pwd->h[4] = pws->h[4]; in helper_msa_ilvod_h()
4309 pwd->h[0] = pwt->h[1]; in helper_msa_ilvod_h()
4310 pwd->h[1] = pws->h[1]; in helper_msa_ilvod_h()
4311 pwd->h[2] = pwt->h[3]; in helper_msa_ilvod_h()
4312 pwd->h[3] = pws->h[3]; in helper_msa_ilvod_h()
4313 pwd->h[4] = pwt->h[5]; in helper_msa_ilvod_h()
4314 pwd->h[5] = pws->h[5]; in helper_msa_ilvod_h()
4315 pwd->h[6] = pwt->h[7]; in helper_msa_ilvod_h()
4316 pwd->h[7] = pws->h[7]; in helper_msa_ilvod_h()
4323 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvod_w()
4324 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvod_w()
4325 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvod_w()
4328 pwd->w[1] = pwt->w[0]; in helper_msa_ilvod_w()
4329 pwd->w[0] = pws->w[0]; in helper_msa_ilvod_w()
4330 pwd->w[3] = pwt->w[2]; in helper_msa_ilvod_w()
4331 pwd->w[2] = pws->w[2]; in helper_msa_ilvod_w()
4333 pwd->w[0] = pwt->w[1]; in helper_msa_ilvod_w()
4334 pwd->w[1] = pws->w[1]; in helper_msa_ilvod_w()
4335 pwd->w[2] = pwt->w[3]; in helper_msa_ilvod_w()
4336 pwd->w[3] = pws->w[3]; in helper_msa_ilvod_w()
4343 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvod_d()
4344 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvod_d()
4345 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvod_d()
4347 pwd->d[0] = pwt->d[1]; in helper_msa_ilvod_d()
4348 pwd->d[1] = pws->d[1]; in helper_msa_ilvod_d()
4355 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvl_b()
4356 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvl_b()
4357 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvl_b()
4360 pwd->b[7] = pwt->b[15]; in helper_msa_ilvl_b()
4361 pwd->b[6] = pws->b[15]; in helper_msa_ilvl_b()
4362 pwd->b[5] = pwt->b[14]; in helper_msa_ilvl_b()
4363 pwd->b[4] = pws->b[14]; in helper_msa_ilvl_b()
4364 pwd->b[3] = pwt->b[13]; in helper_msa_ilvl_b()
4365 pwd->b[2] = pws->b[13]; in helper_msa_ilvl_b()
4366 pwd->b[1] = pwt->b[12]; in helper_msa_ilvl_b()
4367 pwd->b[0] = pws->b[12]; in helper_msa_ilvl_b()
4368 pwd->b[15] = pwt->b[11]; in helper_msa_ilvl_b()
4369 pwd->b[14] = pws->b[11]; in helper_msa_ilvl_b()
4370 pwd->b[13] = pwt->b[10]; in helper_msa_ilvl_b()
4371 pwd->b[12] = pws->b[10]; in helper_msa_ilvl_b()
4372 pwd->b[11] = pwt->b[9]; in helper_msa_ilvl_b()
4373 pwd->b[10] = pws->b[9]; in helper_msa_ilvl_b()
4374 pwd->b[9] = pwt->b[8]; in helper_msa_ilvl_b()
4375 pwd->b[8] = pws->b[8]; in helper_msa_ilvl_b()
4377 pwd->b[0] = pwt->b[8]; in helper_msa_ilvl_b()
4378 pwd->b[1] = pws->b[8]; in helper_msa_ilvl_b()
4379 pwd->b[2] = pwt->b[9]; in helper_msa_ilvl_b()
4380 pwd->b[3] = pws->b[9]; in helper_msa_ilvl_b()
4381 pwd->b[4] = pwt->b[10]; in helper_msa_ilvl_b()
4382 pwd->b[5] = pws->b[10]; in helper_msa_ilvl_b()
4383 pwd->b[6] = pwt->b[11]; in helper_msa_ilvl_b()
4384 pwd->b[7] = pws->b[11]; in helper_msa_ilvl_b()
4385 pwd->b[8] = pwt->b[12]; in helper_msa_ilvl_b()
4386 pwd->b[9] = pws->b[12]; in helper_msa_ilvl_b()
4387 pwd->b[10] = pwt->b[13]; in helper_msa_ilvl_b()
4388 pwd->b[11] = pws->b[13]; in helper_msa_ilvl_b()
4389 pwd->b[12] = pwt->b[14]; in helper_msa_ilvl_b()
4390 pwd->b[13] = pws->b[14]; in helper_msa_ilvl_b()
4391 pwd->b[14] = pwt->b[15]; in helper_msa_ilvl_b()
4392 pwd->b[15] = pws->b[15]; in helper_msa_ilvl_b()
4399 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvl_h()
4400 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvl_h()
4401 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvl_h()
4404 pwd->h[3] = pwt->h[7]; in helper_msa_ilvl_h()
4405 pwd->h[2] = pws->h[7]; in helper_msa_ilvl_h()
4406 pwd->h[1] = pwt->h[6]; in helper_msa_ilvl_h()
4407 pwd->h[0] = pws->h[6]; in helper_msa_ilvl_h()
4408 pwd->h[7] = pwt->h[5]; in helper_msa_ilvl_h()
4409 pwd->h[6] = pws->h[5]; in helper_msa_ilvl_h()
4410 pwd->h[5] = pwt->h[4]; in helper_msa_ilvl_h()
4411 pwd->h[4] = pws->h[4]; in helper_msa_ilvl_h()
4413 pwd->h[0] = pwt->h[4]; in helper_msa_ilvl_h()
4414 pwd->h[1] = pws->h[4]; in helper_msa_ilvl_h()
4415 pwd->h[2] = pwt->h[5]; in helper_msa_ilvl_h()
4416 pwd->h[3] = pws->h[5]; in helper_msa_ilvl_h()
4417 pwd->h[4] = pwt->h[6]; in helper_msa_ilvl_h()
4418 pwd->h[5] = pws->h[6]; in helper_msa_ilvl_h()
4419 pwd->h[6] = pwt->h[7]; in helper_msa_ilvl_h()
4420 pwd->h[7] = pws->h[7]; in helper_msa_ilvl_h()
4427 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvl_w()
4428 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvl_w()
4429 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvl_w()
4432 pwd->w[1] = pwt->w[3]; in helper_msa_ilvl_w()
4433 pwd->w[0] = pws->w[3]; in helper_msa_ilvl_w()
4434 pwd->w[3] = pwt->w[2]; in helper_msa_ilvl_w()
4435 pwd->w[2] = pws->w[2]; in helper_msa_ilvl_w()
4437 pwd->w[0] = pwt->w[2]; in helper_msa_ilvl_w()
4438 pwd->w[1] = pws->w[2]; in helper_msa_ilvl_w()
4439 pwd->w[2] = pwt->w[3]; in helper_msa_ilvl_w()
4440 pwd->w[3] = pws->w[3]; in helper_msa_ilvl_w()
4447 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvl_d()
4448 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvl_d()
4449 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvl_d()
4451 pwd->d[0] = pwt->d[1]; in helper_msa_ilvl_d()
4452 pwd->d[1] = pws->d[1]; in helper_msa_ilvl_d()
4459 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvr_b()
4460 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvr_b()
4461 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvr_b()
4464 pwd->b[8] = pws->b[0]; in helper_msa_ilvr_b()
4465 pwd->b[9] = pwt->b[0]; in helper_msa_ilvr_b()
4466 pwd->b[10] = pws->b[1]; in helper_msa_ilvr_b()
4467 pwd->b[11] = pwt->b[1]; in helper_msa_ilvr_b()
4468 pwd->b[12] = pws->b[2]; in helper_msa_ilvr_b()
4469 pwd->b[13] = pwt->b[2]; in helper_msa_ilvr_b()
4470 pwd->b[14] = pws->b[3]; in helper_msa_ilvr_b()
4471 pwd->b[15] = pwt->b[3]; in helper_msa_ilvr_b()
4472 pwd->b[0] = pws->b[4]; in helper_msa_ilvr_b()
4473 pwd->b[1] = pwt->b[4]; in helper_msa_ilvr_b()
4474 pwd->b[2] = pws->b[5]; in helper_msa_ilvr_b()
4475 pwd->b[3] = pwt->b[5]; in helper_msa_ilvr_b()
4476 pwd->b[4] = pws->b[6]; in helper_msa_ilvr_b()
4477 pwd->b[5] = pwt->b[6]; in helper_msa_ilvr_b()
4478 pwd->b[6] = pws->b[7]; in helper_msa_ilvr_b()
4479 pwd->b[7] = pwt->b[7]; in helper_msa_ilvr_b()
4481 pwd->b[15] = pws->b[7]; in helper_msa_ilvr_b()
4482 pwd->b[14] = pwt->b[7]; in helper_msa_ilvr_b()
4483 pwd->b[13] = pws->b[6]; in helper_msa_ilvr_b()
4484 pwd->b[12] = pwt->b[6]; in helper_msa_ilvr_b()
4485 pwd->b[11] = pws->b[5]; in helper_msa_ilvr_b()
4486 pwd->b[10] = pwt->b[5]; in helper_msa_ilvr_b()
4487 pwd->b[9] = pws->b[4]; in helper_msa_ilvr_b()
4488 pwd->b[8] = pwt->b[4]; in helper_msa_ilvr_b()
4489 pwd->b[7] = pws->b[3]; in helper_msa_ilvr_b()
4490 pwd->b[6] = pwt->b[3]; in helper_msa_ilvr_b()
4491 pwd->b[5] = pws->b[2]; in helper_msa_ilvr_b()
4492 pwd->b[4] = pwt->b[2]; in helper_msa_ilvr_b()
4493 pwd->b[3] = pws->b[1]; in helper_msa_ilvr_b()
4494 pwd->b[2] = pwt->b[1]; in helper_msa_ilvr_b()
4495 pwd->b[1] = pws->b[0]; in helper_msa_ilvr_b()
4496 pwd->b[0] = pwt->b[0]; in helper_msa_ilvr_b()
4503 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvr_h()
4504 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvr_h()
4505 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvr_h()
4508 pwd->h[4] = pws->h[0]; in helper_msa_ilvr_h()
4509 pwd->h[5] = pwt->h[0]; in helper_msa_ilvr_h()
4510 pwd->h[6] = pws->h[1]; in helper_msa_ilvr_h()
4511 pwd->h[7] = pwt->h[1]; in helper_msa_ilvr_h()
4512 pwd->h[0] = pws->h[2]; in helper_msa_ilvr_h()
4513 pwd->h[1] = pwt->h[2]; in helper_msa_ilvr_h()
4514 pwd->h[2] = pws->h[3]; in helper_msa_ilvr_h()
4515 pwd->h[3] = pwt->h[3]; in helper_msa_ilvr_h()
4517 pwd->h[7] = pws->h[3]; in helper_msa_ilvr_h()
4518 pwd->h[6] = pwt->h[3]; in helper_msa_ilvr_h()
4519 pwd->h[5] = pws->h[2]; in helper_msa_ilvr_h()
4520 pwd->h[4] = pwt->h[2]; in helper_msa_ilvr_h()
4521 pwd->h[3] = pws->h[1]; in helper_msa_ilvr_h()
4522 pwd->h[2] = pwt->h[1]; in helper_msa_ilvr_h()
4523 pwd->h[1] = pws->h[0]; in helper_msa_ilvr_h()
4524 pwd->h[0] = pwt->h[0]; in helper_msa_ilvr_h()
4531 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvr_w()
4532 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvr_w()
4533 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvr_w()
4536 pwd->w[2] = pws->w[0]; in helper_msa_ilvr_w()
4537 pwd->w[3] = pwt->w[0]; in helper_msa_ilvr_w()
4538 pwd->w[0] = pws->w[1]; in helper_msa_ilvr_w()
4539 pwd->w[1] = pwt->w[1]; in helper_msa_ilvr_w()
4541 pwd->w[3] = pws->w[1]; in helper_msa_ilvr_w()
4542 pwd->w[2] = pwt->w[1]; in helper_msa_ilvr_w()
4543 pwd->w[1] = pws->w[0]; in helper_msa_ilvr_w()
4544 pwd->w[0] = pwt->w[0]; in helper_msa_ilvr_w()
4551 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ilvr_d()
4552 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ilvr_d()
4553 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ilvr_d()
4555 pwd->d[1] = pws->d[0]; in helper_msa_ilvr_d()
4556 pwd->d[0] = pwt->d[0]; in helper_msa_ilvr_d()
4562 * -----
4564 * +---------------+----------------------------------------------------------+
4569 * +---------------+----------------------------------------------------------+
4575 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_and_v()
4576 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_and_v()
4577 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_and_v()
4579 pwd->d[0] = pws->d[0] & pwt->d[0]; in helper_msa_and_v()
4580 pwd->d[1] = pws->d[1] & pwt->d[1]; in helper_msa_and_v()
4585 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_nor_v()
4586 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_nor_v()
4587 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_nor_v()
4589 pwd->d[0] = ~(pws->d[0] | pwt->d[0]); in helper_msa_nor_v()
4590 pwd->d[1] = ~(pws->d[1] | pwt->d[1]); in helper_msa_nor_v()
4595 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_or_v()
4596 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_or_v()
4597 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_or_v()
4599 pwd->d[0] = pws->d[0] | pwt->d[0]; in helper_msa_or_v()
4600 pwd->d[1] = pws->d[1] | pwt->d[1]; in helper_msa_or_v()
4605 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_xor_v()
4606 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_xor_v()
4607 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_xor_v()
4609 pwd->d[0] = pws->d[0] ^ pwt->d[0]; in helper_msa_xor_v()
4610 pwd->d[1] = pws->d[1] ^ pwt->d[1]; in helper_msa_xor_v()
4616 * ----
4618 * +---------------+----------------------------------------------------------+
4620 * +---------------+----------------------------------------------------------+
4625 pwd->d[0] = pws->d[0]; in msa_move_v()
4626 pwd->d[1] = pws->d[1]; in msa_move_v()
4631 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_move_v()
4632 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_move_v()
4640 * ----
4642 * +---------------+----------------------------------------------------------+
4655 * +---------------+----------------------------------------------------------+
4662 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckev_b()
4663 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckev_b()
4664 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckev_b()
4667 pwd->b[8] = pws->b[9]; in helper_msa_pckev_b()
4668 pwd->b[10] = pws->b[13]; in helper_msa_pckev_b()
4669 pwd->b[12] = pws->b[1]; in helper_msa_pckev_b()
4670 pwd->b[14] = pws->b[5]; in helper_msa_pckev_b()
4671 pwd->b[0] = pwt->b[9]; in helper_msa_pckev_b()
4672 pwd->b[2] = pwt->b[13]; in helper_msa_pckev_b()
4673 pwd->b[4] = pwt->b[1]; in helper_msa_pckev_b()
4674 pwd->b[6] = pwt->b[5]; in helper_msa_pckev_b()
4675 pwd->b[9] = pws->b[11]; in helper_msa_pckev_b()
4676 pwd->b[13] = pws->b[3]; in helper_msa_pckev_b()
4677 pwd->b[1] = pwt->b[11]; in helper_msa_pckev_b()
4678 pwd->b[5] = pwt->b[3]; in helper_msa_pckev_b()
4679 pwd->b[11] = pws->b[15]; in helper_msa_pckev_b()
4680 pwd->b[3] = pwt->b[15]; in helper_msa_pckev_b()
4681 pwd->b[15] = pws->b[7]; in helper_msa_pckev_b()
4682 pwd->b[7] = pwt->b[7]; in helper_msa_pckev_b()
4684 pwd->b[15] = pws->b[14]; in helper_msa_pckev_b()
4685 pwd->b[13] = pws->b[10]; in helper_msa_pckev_b()
4686 pwd->b[11] = pws->b[6]; in helper_msa_pckev_b()
4687 pwd->b[9] = pws->b[2]; in helper_msa_pckev_b()
4688 pwd->b[7] = pwt->b[14]; in helper_msa_pckev_b()
4689 pwd->b[5] = pwt->b[10]; in helper_msa_pckev_b()
4690 pwd->b[3] = pwt->b[6]; in helper_msa_pckev_b()
4691 pwd->b[1] = pwt->b[2]; in helper_msa_pckev_b()
4692 pwd->b[14] = pws->b[12]; in helper_msa_pckev_b()
4693 pwd->b[10] = pws->b[4]; in helper_msa_pckev_b()
4694 pwd->b[6] = pwt->b[12]; in helper_msa_pckev_b()
4695 pwd->b[2] = pwt->b[4]; in helper_msa_pckev_b()
4696 pwd->b[12] = pws->b[8]; in helper_msa_pckev_b()
4697 pwd->b[4] = pwt->b[8]; in helper_msa_pckev_b()
4698 pwd->b[8] = pws->b[0]; in helper_msa_pckev_b()
4699 pwd->b[0] = pwt->b[0]; in helper_msa_pckev_b()
4706 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckev_h()
4707 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckev_h()
4708 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckev_h()
4711 pwd->h[4] = pws->h[5]; in helper_msa_pckev_h()
4712 pwd->h[6] = pws->h[1]; in helper_msa_pckev_h()
4713 pwd->h[0] = pwt->h[5]; in helper_msa_pckev_h()
4714 pwd->h[2] = pwt->h[1]; in helper_msa_pckev_h()
4715 pwd->h[5] = pws->h[7]; in helper_msa_pckev_h()
4716 pwd->h[1] = pwt->h[7]; in helper_msa_pckev_h()
4717 pwd->h[7] = pws->h[3]; in helper_msa_pckev_h()
4718 pwd->h[3] = pwt->h[3]; in helper_msa_pckev_h()
4720 pwd->h[7] = pws->h[6]; in helper_msa_pckev_h()
4721 pwd->h[5] = pws->h[2]; in helper_msa_pckev_h()
4722 pwd->h[3] = pwt->h[6]; in helper_msa_pckev_h()
4723 pwd->h[1] = pwt->h[2]; in helper_msa_pckev_h()
4724 pwd->h[6] = pws->h[4]; in helper_msa_pckev_h()
4725 pwd->h[2] = pwt->h[4]; in helper_msa_pckev_h()
4726 pwd->h[4] = pws->h[0]; in helper_msa_pckev_h()
4727 pwd->h[0] = pwt->h[0]; in helper_msa_pckev_h()
4734 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckev_w()
4735 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckev_w()
4736 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckev_w()
4739 pwd->w[2] = pws->w[3]; in helper_msa_pckev_w()
4740 pwd->w[0] = pwt->w[3]; in helper_msa_pckev_w()
4741 pwd->w[3] = pws->w[1]; in helper_msa_pckev_w()
4742 pwd->w[1] = pwt->w[1]; in helper_msa_pckev_w()
4744 pwd->w[3] = pws->w[2]; in helper_msa_pckev_w()
4745 pwd->w[1] = pwt->w[2]; in helper_msa_pckev_w()
4746 pwd->w[2] = pws->w[0]; in helper_msa_pckev_w()
4747 pwd->w[0] = pwt->w[0]; in helper_msa_pckev_w()
4754 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckev_d()
4755 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckev_d()
4756 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckev_d()
4758 pwd->d[1] = pws->d[0]; in helper_msa_pckev_d()
4759 pwd->d[0] = pwt->d[0]; in helper_msa_pckev_d()
4766 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckod_b()
4767 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckod_b()
4768 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckod_b()
4771 pwd->b[7] = pwt->b[6]; in helper_msa_pckod_b()
4772 pwd->b[5] = pwt->b[2]; in helper_msa_pckod_b()
4773 pwd->b[3] = pwt->b[14]; in helper_msa_pckod_b()
4774 pwd->b[1] = pwt->b[10]; in helper_msa_pckod_b()
4775 pwd->b[15] = pws->b[6]; in helper_msa_pckod_b()
4776 pwd->b[13] = pws->b[2]; in helper_msa_pckod_b()
4777 pwd->b[11] = pws->b[14]; in helper_msa_pckod_b()
4778 pwd->b[9] = pws->b[10]; in helper_msa_pckod_b()
4779 pwd->b[6] = pwt->b[4]; in helper_msa_pckod_b()
4780 pwd->b[2] = pwt->b[12]; in helper_msa_pckod_b()
4781 pwd->b[14] = pws->b[4]; in helper_msa_pckod_b()
4782 pwd->b[10] = pws->b[12]; in helper_msa_pckod_b()
4783 pwd->b[4] = pwt->b[0]; in helper_msa_pckod_b()
4784 pwd->b[12] = pws->b[0]; in helper_msa_pckod_b()
4785 pwd->b[0] = pwt->b[8]; in helper_msa_pckod_b()
4786 pwd->b[8] = pws->b[8]; in helper_msa_pckod_b()
4788 pwd->b[0] = pwt->b[1]; in helper_msa_pckod_b()
4789 pwd->b[2] = pwt->b[5]; in helper_msa_pckod_b()
4790 pwd->b[4] = pwt->b[9]; in helper_msa_pckod_b()
4791 pwd->b[6] = pwt->b[13]; in helper_msa_pckod_b()
4792 pwd->b[8] = pws->b[1]; in helper_msa_pckod_b()
4793 pwd->b[10] = pws->b[5]; in helper_msa_pckod_b()
4794 pwd->b[12] = pws->b[9]; in helper_msa_pckod_b()
4795 pwd->b[14] = pws->b[13]; in helper_msa_pckod_b()
4796 pwd->b[1] = pwt->b[3]; in helper_msa_pckod_b()
4797 pwd->b[5] = pwt->b[11]; in helper_msa_pckod_b()
4798 pwd->b[9] = pws->b[3]; in helper_msa_pckod_b()
4799 pwd->b[13] = pws->b[11]; in helper_msa_pckod_b()
4800 pwd->b[3] = pwt->b[7]; in helper_msa_pckod_b()
4801 pwd->b[11] = pws->b[7]; in helper_msa_pckod_b()
4802 pwd->b[7] = pwt->b[15]; in helper_msa_pckod_b()
4803 pwd->b[15] = pws->b[15]; in helper_msa_pckod_b()
4811 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckod_h()
4812 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckod_h()
4813 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckod_h()
4816 pwd->h[3] = pwt->h[2]; in helper_msa_pckod_h()
4817 pwd->h[1] = pwt->h[6]; in helper_msa_pckod_h()
4818 pwd->h[7] = pws->h[2]; in helper_msa_pckod_h()
4819 pwd->h[5] = pws->h[6]; in helper_msa_pckod_h()
4820 pwd->h[2] = pwt->h[0]; in helper_msa_pckod_h()
4821 pwd->h[6] = pws->h[0]; in helper_msa_pckod_h()
4822 pwd->h[0] = pwt->h[4]; in helper_msa_pckod_h()
4823 pwd->h[4] = pws->h[4]; in helper_msa_pckod_h()
4825 pwd->h[0] = pwt->h[1]; in helper_msa_pckod_h()
4826 pwd->h[2] = pwt->h[5]; in helper_msa_pckod_h()
4827 pwd->h[4] = pws->h[1]; in helper_msa_pckod_h()
4828 pwd->h[6] = pws->h[5]; in helper_msa_pckod_h()
4829 pwd->h[1] = pwt->h[3]; in helper_msa_pckod_h()
4830 pwd->h[5] = pws->h[3]; in helper_msa_pckod_h()
4831 pwd->h[3] = pwt->h[7]; in helper_msa_pckod_h()
4832 pwd->h[7] = pws->h[7]; in helper_msa_pckod_h()
4839 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckod_w()
4840 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckod_w()
4841 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckod_w()
4844 pwd->w[1] = pwt->w[0]; in helper_msa_pckod_w()
4845 pwd->w[3] = pws->w[0]; in helper_msa_pckod_w()
4846 pwd->w[0] = pwt->w[2]; in helper_msa_pckod_w()
4847 pwd->w[2] = pws->w[2]; in helper_msa_pckod_w()
4849 pwd->w[0] = pwt->w[1]; in helper_msa_pckod_w()
4850 pwd->w[2] = pws->w[1]; in helper_msa_pckod_w()
4851 pwd->w[1] = pwt->w[3]; in helper_msa_pckod_w()
4852 pwd->w[3] = pws->w[3]; in helper_msa_pckod_w()
4859 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_pckod_d()
4860 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_pckod_d()
4861 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_pckod_d()
4863 pwd->d[0] = pwt->d[1]; in helper_msa_pckod_d()
4864 pwd->d[1] = pws->d[1]; in helper_msa_pckod_d()
4870 * -----
4872 * +---------------+----------------------------------------------------------+
4893 * +---------------+----------------------------------------------------------+
4906 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sll_b()
4907 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sll_b()
4908 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sll_b()
4910 pwd->b[0] = msa_sll_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_sll_b()
4911 pwd->b[1] = msa_sll_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_sll_b()
4912 pwd->b[2] = msa_sll_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_sll_b()
4913 pwd->b[3] = msa_sll_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_sll_b()
4914 pwd->b[4] = msa_sll_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_sll_b()
4915 pwd->b[5] = msa_sll_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_sll_b()
4916 pwd->b[6] = msa_sll_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_sll_b()
4917 pwd->b[7] = msa_sll_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_sll_b()
4918 pwd->b[8] = msa_sll_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_sll_b()
4919 pwd->b[9] = msa_sll_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_sll_b()
4920 pwd->b[10] = msa_sll_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_sll_b()
4921 pwd->b[11] = msa_sll_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_sll_b()
4922 pwd->b[12] = msa_sll_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_sll_b()
4923 pwd->b[13] = msa_sll_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_sll_b()
4924 pwd->b[14] = msa_sll_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_sll_b()
4925 pwd->b[15] = msa_sll_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_sll_b()
4931 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sll_h()
4932 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sll_h()
4933 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sll_h()
4935 pwd->h[0] = msa_sll_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_sll_h()
4936 pwd->h[1] = msa_sll_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_sll_h()
4937 pwd->h[2] = msa_sll_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_sll_h()
4938 pwd->h[3] = msa_sll_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_sll_h()
4939 pwd->h[4] = msa_sll_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_sll_h()
4940 pwd->h[5] = msa_sll_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_sll_h()
4941 pwd->h[6] = msa_sll_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_sll_h()
4942 pwd->h[7] = msa_sll_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_sll_h()
4948 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sll_w()
4949 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sll_w()
4950 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sll_w()
4952 pwd->w[0] = msa_sll_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_sll_w()
4953 pwd->w[1] = msa_sll_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_sll_w()
4954 pwd->w[2] = msa_sll_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_sll_w()
4955 pwd->w[3] = msa_sll_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_sll_w()
4961 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sll_d()
4962 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sll_d()
4963 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sll_d()
4965 pwd->d[0] = msa_sll_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_sll_d()
4966 pwd->d[1] = msa_sll_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_sll_d()
4979 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sra_b()
4980 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sra_b()
4981 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sra_b()
4983 pwd->b[0] = msa_sra_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_sra_b()
4984 pwd->b[1] = msa_sra_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_sra_b()
4985 pwd->b[2] = msa_sra_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_sra_b()
4986 pwd->b[3] = msa_sra_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_sra_b()
4987 pwd->b[4] = msa_sra_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_sra_b()
4988 pwd->b[5] = msa_sra_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_sra_b()
4989 pwd->b[6] = msa_sra_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_sra_b()
4990 pwd->b[7] = msa_sra_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_sra_b()
4991 pwd->b[8] = msa_sra_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_sra_b()
4992 pwd->b[9] = msa_sra_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_sra_b()
4993 pwd->b[10] = msa_sra_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_sra_b()
4994 pwd->b[11] = msa_sra_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_sra_b()
4995 pwd->b[12] = msa_sra_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_sra_b()
4996 pwd->b[13] = msa_sra_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_sra_b()
4997 pwd->b[14] = msa_sra_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_sra_b()
4998 pwd->b[15] = msa_sra_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_sra_b()
5004 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sra_h()
5005 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sra_h()
5006 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sra_h()
5008 pwd->h[0] = msa_sra_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_sra_h()
5009 pwd->h[1] = msa_sra_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_sra_h()
5010 pwd->h[2] = msa_sra_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_sra_h()
5011 pwd->h[3] = msa_sra_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_sra_h()
5012 pwd->h[4] = msa_sra_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_sra_h()
5013 pwd->h[5] = msa_sra_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_sra_h()
5014 pwd->h[6] = msa_sra_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_sra_h()
5015 pwd->h[7] = msa_sra_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_sra_h()
5021 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sra_w()
5022 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sra_w()
5023 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sra_w()
5025 pwd->w[0] = msa_sra_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_sra_w()
5026 pwd->w[1] = msa_sra_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_sra_w()
5027 pwd->w[2] = msa_sra_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_sra_w()
5028 pwd->w[3] = msa_sra_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_sra_w()
5034 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_sra_d()
5035 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_sra_d()
5036 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_sra_d()
5038 pwd->d[0] = msa_sra_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_sra_d()
5039 pwd->d[1] = msa_sra_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_sra_d()
5049 int64_t r_bit = (arg1 >> (b_arg2 - 1)) & 1; in msa_srar_df()
5057 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srar_b()
5058 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srar_b()
5059 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srar_b()
5061 pwd->b[0] = msa_srar_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_srar_b()
5062 pwd->b[1] = msa_srar_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_srar_b()
5063 pwd->b[2] = msa_srar_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_srar_b()
5064 pwd->b[3] = msa_srar_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_srar_b()
5065 pwd->b[4] = msa_srar_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_srar_b()
5066 pwd->b[5] = msa_srar_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_srar_b()
5067 pwd->b[6] = msa_srar_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_srar_b()
5068 pwd->b[7] = msa_srar_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_srar_b()
5069 pwd->b[8] = msa_srar_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_srar_b()
5070 pwd->b[9] = msa_srar_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_srar_b()
5071 pwd->b[10] = msa_srar_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_srar_b()
5072 pwd->b[11] = msa_srar_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_srar_b()
5073 pwd->b[12] = msa_srar_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_srar_b()
5074 pwd->b[13] = msa_srar_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_srar_b()
5075 pwd->b[14] = msa_srar_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_srar_b()
5076 pwd->b[15] = msa_srar_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_srar_b()
5082 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srar_h()
5083 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srar_h()
5084 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srar_h()
5086 pwd->h[0] = msa_srar_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_srar_h()
5087 pwd->h[1] = msa_srar_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_srar_h()
5088 pwd->h[2] = msa_srar_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_srar_h()
5089 pwd->h[3] = msa_srar_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_srar_h()
5090 pwd->h[4] = msa_srar_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_srar_h()
5091 pwd->h[5] = msa_srar_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_srar_h()
5092 pwd->h[6] = msa_srar_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_srar_h()
5093 pwd->h[7] = msa_srar_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_srar_h()
5099 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srar_w()
5100 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srar_w()
5101 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srar_w()
5103 pwd->w[0] = msa_srar_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_srar_w()
5104 pwd->w[1] = msa_srar_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_srar_w()
5105 pwd->w[2] = msa_srar_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_srar_w()
5106 pwd->w[3] = msa_srar_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_srar_w()
5112 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srar_d()
5113 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srar_d()
5114 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srar_d()
5116 pwd->d[0] = msa_srar_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_srar_d()
5117 pwd->d[1] = msa_srar_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_srar_d()
5131 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srl_b()
5132 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srl_b()
5133 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srl_b()
5135 pwd->b[0] = msa_srl_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_srl_b()
5136 pwd->b[1] = msa_srl_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_srl_b()
5137 pwd->b[2] = msa_srl_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_srl_b()
5138 pwd->b[3] = msa_srl_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_srl_b()
5139 pwd->b[4] = msa_srl_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_srl_b()
5140 pwd->b[5] = msa_srl_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_srl_b()
5141 pwd->b[6] = msa_srl_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_srl_b()
5142 pwd->b[7] = msa_srl_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_srl_b()
5143 pwd->b[8] = msa_srl_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_srl_b()
5144 pwd->b[9] = msa_srl_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_srl_b()
5145 pwd->b[10] = msa_srl_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_srl_b()
5146 pwd->b[11] = msa_srl_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_srl_b()
5147 pwd->b[12] = msa_srl_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_srl_b()
5148 pwd->b[13] = msa_srl_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_srl_b()
5149 pwd->b[14] = msa_srl_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_srl_b()
5150 pwd->b[15] = msa_srl_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_srl_b()
5156 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srl_h()
5157 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srl_h()
5158 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srl_h()
5160 pwd->h[0] = msa_srl_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_srl_h()
5161 pwd->h[1] = msa_srl_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_srl_h()
5162 pwd->h[2] = msa_srl_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_srl_h()
5163 pwd->h[3] = msa_srl_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_srl_h()
5164 pwd->h[4] = msa_srl_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_srl_h()
5165 pwd->h[5] = msa_srl_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_srl_h()
5166 pwd->h[6] = msa_srl_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_srl_h()
5167 pwd->h[7] = msa_srl_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_srl_h()
5173 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srl_w()
5174 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srl_w()
5175 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srl_w()
5177 pwd->w[0] = msa_srl_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_srl_w()
5178 pwd->w[1] = msa_srl_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_srl_w()
5179 pwd->w[2] = msa_srl_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_srl_w()
5180 pwd->w[3] = msa_srl_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_srl_w()
5186 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srl_d()
5187 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srl_d()
5188 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srl_d()
5190 pwd->d[0] = msa_srl_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_srl_d()
5191 pwd->d[1] = msa_srl_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_srl_d()
5202 uint64_t r_bit = (u_arg1 >> (b_arg2 - 1)) & 1; in msa_srlr_df()
5210 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srlr_b()
5211 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srlr_b()
5212 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srlr_b()
5214 pwd->b[0] = msa_srlr_df(DF_BYTE, pws->b[0], pwt->b[0]); in helper_msa_srlr_b()
5215 pwd->b[1] = msa_srlr_df(DF_BYTE, pws->b[1], pwt->b[1]); in helper_msa_srlr_b()
5216 pwd->b[2] = msa_srlr_df(DF_BYTE, pws->b[2], pwt->b[2]); in helper_msa_srlr_b()
5217 pwd->b[3] = msa_srlr_df(DF_BYTE, pws->b[3], pwt->b[3]); in helper_msa_srlr_b()
5218 pwd->b[4] = msa_srlr_df(DF_BYTE, pws->b[4], pwt->b[4]); in helper_msa_srlr_b()
5219 pwd->b[5] = msa_srlr_df(DF_BYTE, pws->b[5], pwt->b[5]); in helper_msa_srlr_b()
5220 pwd->b[6] = msa_srlr_df(DF_BYTE, pws->b[6], pwt->b[6]); in helper_msa_srlr_b()
5221 pwd->b[7] = msa_srlr_df(DF_BYTE, pws->b[7], pwt->b[7]); in helper_msa_srlr_b()
5222 pwd->b[8] = msa_srlr_df(DF_BYTE, pws->b[8], pwt->b[8]); in helper_msa_srlr_b()
5223 pwd->b[9] = msa_srlr_df(DF_BYTE, pws->b[9], pwt->b[9]); in helper_msa_srlr_b()
5224 pwd->b[10] = msa_srlr_df(DF_BYTE, pws->b[10], pwt->b[10]); in helper_msa_srlr_b()
5225 pwd->b[11] = msa_srlr_df(DF_BYTE, pws->b[11], pwt->b[11]); in helper_msa_srlr_b()
5226 pwd->b[12] = msa_srlr_df(DF_BYTE, pws->b[12], pwt->b[12]); in helper_msa_srlr_b()
5227 pwd->b[13] = msa_srlr_df(DF_BYTE, pws->b[13], pwt->b[13]); in helper_msa_srlr_b()
5228 pwd->b[14] = msa_srlr_df(DF_BYTE, pws->b[14], pwt->b[14]); in helper_msa_srlr_b()
5229 pwd->b[15] = msa_srlr_df(DF_BYTE, pws->b[15], pwt->b[15]); in helper_msa_srlr_b()
5235 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srlr_h()
5236 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srlr_h()
5237 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srlr_h()
5239 pwd->h[0] = msa_srlr_df(DF_HALF, pws->h[0], pwt->h[0]); in helper_msa_srlr_h()
5240 pwd->h[1] = msa_srlr_df(DF_HALF, pws->h[1], pwt->h[1]); in helper_msa_srlr_h()
5241 pwd->h[2] = msa_srlr_df(DF_HALF, pws->h[2], pwt->h[2]); in helper_msa_srlr_h()
5242 pwd->h[3] = msa_srlr_df(DF_HALF, pws->h[3], pwt->h[3]); in helper_msa_srlr_h()
5243 pwd->h[4] = msa_srlr_df(DF_HALF, pws->h[4], pwt->h[4]); in helper_msa_srlr_h()
5244 pwd->h[5] = msa_srlr_df(DF_HALF, pws->h[5], pwt->h[5]); in helper_msa_srlr_h()
5245 pwd->h[6] = msa_srlr_df(DF_HALF, pws->h[6], pwt->h[6]); in helper_msa_srlr_h()
5246 pwd->h[7] = msa_srlr_df(DF_HALF, pws->h[7], pwt->h[7]); in helper_msa_srlr_h()
5252 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srlr_w()
5253 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srlr_w()
5254 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srlr_w()
5256 pwd->w[0] = msa_srlr_df(DF_WORD, pws->w[0], pwt->w[0]); in helper_msa_srlr_w()
5257 pwd->w[1] = msa_srlr_df(DF_WORD, pws->w[1], pwt->w[1]); in helper_msa_srlr_w()
5258 pwd->w[2] = msa_srlr_df(DF_WORD, pws->w[2], pwt->w[2]); in helper_msa_srlr_w()
5259 pwd->w[3] = msa_srlr_df(DF_WORD, pws->w[3], pwt->w[3]); in helper_msa_srlr_w()
5265 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_srlr_d()
5266 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_srlr_d()
5267 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_srlr_d()
5269 pwd->d[0] = msa_srlr_df(DF_DOUBLE, pws->d[0], pwt->d[0]); in helper_msa_srlr_d()
5270 pwd->d[1] = msa_srlr_df(DF_DOUBLE, pws->d[1], pwt->d[1]); in helper_msa_srlr_d()
5278 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5279 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5286 MSA_FN_IMM8(andi_b, pwd->b[i], pws->b[i] & i8)
5287 MSA_FN_IMM8(ori_b, pwd->b[i], pws->b[i] | i8)
5288 MSA_FN_IMM8(nori_b, pwd->b[i], ~(pws->b[i] | i8))
5289 MSA_FN_IMM8(xori_b, pwd->b[i], pws->b[i] ^ i8)
5293 MSA_FN_IMM8(bmnzi_b, pwd->b[i],
5294 BIT_MOVE_IF_NOT_ZERO(pwd->b[i], pws->b[i], i8, DF_BYTE))
5298 MSA_FN_IMM8(bmzi_b, pwd->b[i],
5299 BIT_MOVE_IF_ZERO(pwd->b[i], pws->b[i], i8, DF_BYTE))
5303 MSA_FN_IMM8(bseli_b, pwd->b[i],
5304 BIT_SELECT(pwd->b[i], pws->b[i], i8, DF_BYTE))
5316 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_shf_df()
5317 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_shf_df()
5324 pwx->b[i] = pws->b[SHF_POS(i, imm)]; in helper_msa_shf_df()
5329 pwx->h[i] = pws->h[SHF_POS(i, imm)]; in helper_msa_shf_df()
5334 pwx->w[i] = pws->w[SHF_POS(i, imm)]; in helper_msa_shf_df()
5347 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5348 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5354 pwd->b[i] = msa_ ## func ## _df(df, pws->b[i], u5); \
5359 pwd->h[i] = msa_ ## func ## _df(df, pws->h[i], u5); \
5364 pwd->w[i] = msa_ ## func ## _df(df, pws->w[i], u5); \
5369 pwd->d[i] = msa_ ## func ## _df(df, pws->d[i], u5); \
5393 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in MSA_BINOP_IMM_DF()
5399 pwd->b[i] = (int8_t)s10; in MSA_BINOP_IMM_DF()
5404 pwd->h[i] = (int16_t)s10; in MSA_BINOP_IMM_DF()
5409 pwd->w[i] = (int32_t)s10; in MSA_BINOP_IMM_DF()
5414 pwd->d[i] = (int64_t)s10; in MSA_BINOP_IMM_DF()
5440 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5441 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5447 pwd->b[i] = msa_ ## func ## _df(df, pws->b[i], u5); \
5452 pwd->h[i] = msa_ ## func ## _df(df, pws->h[i], u5); \
5457 pwd->w[i] = msa_ ## func ## _df(df, pws->w[i], u5); \
5462 pwd->d[i] = msa_ ## func ## _df(df, pws->d[i], u5); \
5486 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \ in MSA_BINOP_IMMU_DF()
5487 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \ in MSA_BINOP_IMMU_DF()
5493 pwd->b[i] = msa_ ## func ## _df(df, pwd->b[i], pws->b[i], \ in MSA_BINOP_IMMU_DF()
5499 pwd->h[i] = msa_ ## func ## _df(df, pwd->h[i], pws->h[i], \ in MSA_BINOP_IMMU_DF()
5505 pwd->w[i] = msa_ ## func ## _df(df, pwd->w[i], pws->w[i], \ in MSA_BINOP_IMMU_DF()
5511 pwd->d[i] = msa_ ## func ## _df(df, pwd->d[i], pws->d[i], \ in MSA_BINOP_IMMU_DF()
5527 v[i] = pws->b[s * k + i]; \
5528 v[i + s] = pwd->b[s * k + i]; \
5531 pwd->b[s * k + i] = v[i + n]; \
5574 return (arg1 * arg2) >> (DF_BITS(df) - 1); in msa_mul_q_df()
5581 int64_t r_bit = 1LL << (DF_BITS(df) - 2); in msa_mulr_q_df()
5586 return (arg1 * arg2 + r_bit) >> (DF_BITS(df) - 1); in msa_mulr_q_df()
5593 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5594 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5595 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); \
5599 pwd->b[0] = msa_ ## func ## _df(df, pws->b[0], pwt->b[0]); \
5600 pwd->b[1] = msa_ ## func ## _df(df, pws->b[1], pwt->b[1]); \
5601 pwd->b[2] = msa_ ## func ## _df(df, pws->b[2], pwt->b[2]); \
5602 pwd->b[3] = msa_ ## func ## _df(df, pws->b[3], pwt->b[3]); \
5603 pwd->b[4] = msa_ ## func ## _df(df, pws->b[4], pwt->b[4]); \
5604 pwd->b[5] = msa_ ## func ## _df(df, pws->b[5], pwt->b[5]); \
5605 pwd->b[6] = msa_ ## func ## _df(df, pws->b[6], pwt->b[6]); \
5606 pwd->b[7] = msa_ ## func ## _df(df, pws->b[7], pwt->b[7]); \
5607 pwd->b[8] = msa_ ## func ## _df(df, pws->b[8], pwt->b[8]); \
5608 pwd->b[9] = msa_ ## func ## _df(df, pws->b[9], pwt->b[9]); \
5609 pwd->b[10] = msa_ ## func ## _df(df, pws->b[10], pwt->b[10]); \
5610 pwd->b[11] = msa_ ## func ## _df(df, pws->b[11], pwt->b[11]); \
5611 pwd->b[12] = msa_ ## func ## _df(df, pws->b[12], pwt->b[12]); \
5612 pwd->b[13] = msa_ ## func ## _df(df, pws->b[13], pwt->b[13]); \
5613 pwd->b[14] = msa_ ## func ## _df(df, pws->b[14], pwt->b[14]); \
5614 pwd->b[15] = msa_ ## func ## _df(df, pws->b[15], pwt->b[15]); \
5617 pwd->h[0] = msa_ ## func ## _df(df, pws->h[0], pwt->h[0]); \
5618 pwd->h[1] = msa_ ## func ## _df(df, pws->h[1], pwt->h[1]); \
5619 pwd->h[2] = msa_ ## func ## _df(df, pws->h[2], pwt->h[2]); \
5620 pwd->h[3] = msa_ ## func ## _df(df, pws->h[3], pwt->h[3]); \
5621 pwd->h[4] = msa_ ## func ## _df(df, pws->h[4], pwt->h[4]); \
5622 pwd->h[5] = msa_ ## func ## _df(df, pws->h[5], pwt->h[5]); \
5623 pwd->h[6] = msa_ ## func ## _df(df, pws->h[6], pwt->h[6]); \
5624 pwd->h[7] = msa_ ## func ## _df(df, pws->h[7], pwt->h[7]); \
5627 pwd->w[0] = msa_ ## func ## _df(df, pws->w[0], pwt->w[0]); \
5628 pwd->w[1] = msa_ ## func ## _df(df, pws->w[1], pwt->w[1]); \
5629 pwd->w[2] = msa_ ## func ## _df(df, pws->w[2], pwt->w[2]); \
5630 pwd->w[3] = msa_ ## func ## _df(df, pws->w[3], pwt->w[3]); \
5633 pwd->d[0] = msa_ ## func ## _df(df, pws->d[0], pwt->d[0]); \
5634 pwd->d[1] = msa_ ## func ## _df(df, pws->d[1], pwt->d[1]); \
5648 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in MSA_BINOP_DF()
5649 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in MSA_BINOP_DF()
5651 msa_sld_df(df, pwd, pws, env->active_tc.gpr[rt]); in MSA_BINOP_DF()
5663 q_ret = ((dest << (DF_BITS(df) - 1)) + q_prod) >> (DF_BITS(df) - 1); in msa_madd_q_df()
5677 q_ret = ((dest << (DF_BITS(df) - 1)) - q_prod) >> (DF_BITS(df) - 1); in msa_msub_q_df()
5689 int64_t r_bit = 1LL << (DF_BITS(df) - 2); in msa_maddr_q_df()
5692 q_ret = ((dest << (DF_BITS(df) - 1)) + q_prod + r_bit) >> (DF_BITS(df) - 1); in msa_maddr_q_df()
5704 int64_t r_bit = 1LL << (DF_BITS(df) - 2); in msa_msubr_q_df()
5707 q_ret = ((dest << (DF_BITS(df) - 1)) - q_prod + r_bit) >> (DF_BITS(df) - 1); in msa_msubr_q_df()
5716 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5717 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5718 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); \
5722 pwd->b[0] = msa_ ## func ## _df(df, pwd->b[0], pws->b[0], \
5723 pwt->b[0]); \
5724 pwd->b[1] = msa_ ## func ## _df(df, pwd->b[1], pws->b[1], \
5725 pwt->b[1]); \
5726 pwd->b[2] = msa_ ## func ## _df(df, pwd->b[2], pws->b[2], \
5727 pwt->b[2]); \
5728 pwd->b[3] = msa_ ## func ## _df(df, pwd->b[3], pws->b[3], \
5729 pwt->b[3]); \
5730 pwd->b[4] = msa_ ## func ## _df(df, pwd->b[4], pws->b[4], \
5731 pwt->b[4]); \
5732 pwd->b[5] = msa_ ## func ## _df(df, pwd->b[5], pws->b[5], \
5733 pwt->b[5]); \
5734 pwd->b[6] = msa_ ## func ## _df(df, pwd->b[6], pws->b[6], \
5735 pwt->b[6]); \
5736 pwd->b[7] = msa_ ## func ## _df(df, pwd->b[7], pws->b[7], \
5737 pwt->b[7]); \
5738 pwd->b[8] = msa_ ## func ## _df(df, pwd->b[8], pws->b[8], \
5739 pwt->b[8]); \
5740 pwd->b[9] = msa_ ## func ## _df(df, pwd->b[9], pws->b[9], \
5741 pwt->b[9]); \
5742 pwd->b[10] = msa_ ## func ## _df(df, pwd->b[10], pws->b[10], \
5743 pwt->b[10]); \
5744 pwd->b[11] = msa_ ## func ## _df(df, pwd->b[11], pws->b[11], \
5745 pwt->b[11]); \
5746 pwd->b[12] = msa_ ## func ## _df(df, pwd->b[12], pws->b[12], \
5747 pwt->b[12]); \
5748 pwd->b[13] = msa_ ## func ## _df(df, pwd->b[13], pws->b[13], \
5749 pwt->b[13]); \
5750 pwd->b[14] = msa_ ## func ## _df(df, pwd->b[14], pws->b[14], \
5751 pwt->b[14]); \
5752 pwd->b[15] = msa_ ## func ## _df(df, pwd->b[15], pws->b[15], \
5753 pwt->b[15]); \
5756 pwd->h[0] = msa_ ## func ## _df(df, pwd->h[0], pws->h[0], pwt->h[0]); \
5757 pwd->h[1] = msa_ ## func ## _df(df, pwd->h[1], pws->h[1], pwt->h[1]); \
5758 pwd->h[2] = msa_ ## func ## _df(df, pwd->h[2], pws->h[2], pwt->h[2]); \
5759 pwd->h[3] = msa_ ## func ## _df(df, pwd->h[3], pws->h[3], pwt->h[3]); \
5760 pwd->h[4] = msa_ ## func ## _df(df, pwd->h[4], pws->h[4], pwt->h[4]); \
5761 pwd->h[5] = msa_ ## func ## _df(df, pwd->h[5], pws->h[5], pwt->h[5]); \
5762 pwd->h[6] = msa_ ## func ## _df(df, pwd->h[6], pws->h[6], pwt->h[6]); \
5763 pwd->h[7] = msa_ ## func ## _df(df, pwd->h[7], pws->h[7], pwt->h[7]); \
5766 pwd->w[0] = msa_ ## func ## _df(df, pwd->w[0], pws->w[0], pwt->w[0]); \
5767 pwd->w[1] = msa_ ## func ## _df(df, pwd->w[1], pws->w[1], pwt->w[1]); \
5768 pwd->w[2] = msa_ ## func ## _df(df, pwd->w[2], pws->w[2], pwt->w[2]); \
5769 pwd->w[3] = msa_ ## func ## _df(df, pwd->w[3], pws->w[3], pwt->w[3]); \
5772 pwd->d[0] = msa_ ## func ## _df(df, pwd->d[0], pws->d[0], pwt->d[0]); \
5773 pwd->d[1] = msa_ ## func ## _df(df, pwd->d[1], pws->d[1], pwt->d[1]); \
5797 pwd->b[i] = pws->b[n]; in MSA_TEROP_DF()
5802 pwd->h[i] = pws->h[n]; in MSA_TEROP_DF()
5807 pwd->w[i] = pws->w[n]; in MSA_TEROP_DF()
5812 pwd->d[i] = pws->d[n]; in MSA_TEROP_DF()
5823 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_splat_df()
5824 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_splat_df()
5826 msa_splat_df(df, pwd, pws, env->active_tc.gpr[rt]); in helper_msa_splat_df()
5855 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); \
5856 wr_t *pws = &(env->active_fpu.fpr[ws].wr); \
5857 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); \
5882 #define Rb(pwr, i) (pwr->b[i])
5883 #define Lb(pwr, i) (pwr->b[i + DF_ELEMENTS(DF_BYTE) / 2])
5884 #define Rh(pwr, i) (pwr->h[i])
5885 #define Lh(pwr, i) (pwr->h[i + DF_ELEMENTS(DF_HALF) / 2])
5886 #define Rw(pwr, i) (pwr->w[i])
5887 #define Lw(pwr, i) (pwr->w[i + DF_ELEMENTS(DF_WORD) / 2])
5888 #define Rd(pwr, i) (pwr->d[i])
5889 #define Ld(pwr, i) (pwr->d[i + DF_ELEMENTS(DF_DOUBLE) / 2])
5899 uint32_t k = (pwd->DF[i] & 0x3f) % (2 * n); \
5900 pwx->DF[i] = \
5901 (pwd->DF[i] & 0xc0) ? 0 : k < n ? pwt->DF[k] : pws->DF[k - n]; \
5912 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in MSA_FN_DF()
5913 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in MSA_FN_DF()
5921 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_splati_df()
5922 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_splati_df()
5933 n = 8 - n - 1; in helper_msa_copy_s_b()
5935 n = 24 - n - 1; in helper_msa_copy_s_b()
5938 env->active_tc.gpr[rd] = (int8_t)env->active_fpu.fpr[ws].wr.b[n]; in helper_msa_copy_s_b()
5947 n = 4 - n - 1; in helper_msa_copy_s_h()
5949 n = 12 - n - 1; in helper_msa_copy_s_h()
5952 env->active_tc.gpr[rd] = (int16_t)env->active_fpu.fpr[ws].wr.h[n]; in helper_msa_copy_s_h()
5961 n = 2 - n - 1; in helper_msa_copy_s_w()
5963 n = 6 - n - 1; in helper_msa_copy_s_w()
5966 env->active_tc.gpr[rd] = (int32_t)env->active_fpu.fpr[ws].wr.w[n]; in helper_msa_copy_s_w()
5973 env->active_tc.gpr[rd] = (int64_t)env->active_fpu.fpr[ws].wr.d[n]; in helper_msa_copy_s_d()
5982 n = 8 - n - 1; in helper_msa_copy_u_b()
5984 n = 24 - n - 1; in helper_msa_copy_u_b()
5987 env->active_tc.gpr[rd] = (uint8_t)env->active_fpu.fpr[ws].wr.b[n]; in helper_msa_copy_u_b()
5996 n = 4 - n - 1; in helper_msa_copy_u_h()
5998 n = 12 - n - 1; in helper_msa_copy_u_h()
6001 env->active_tc.gpr[rd] = (uint16_t)env->active_fpu.fpr[ws].wr.h[n]; in helper_msa_copy_u_h()
6010 n = 2 - n - 1; in helper_msa_copy_u_w()
6012 n = 6 - n - 1; in helper_msa_copy_u_w()
6015 env->active_tc.gpr[rd] = (uint32_t)env->active_fpu.fpr[ws].wr.w[n]; in helper_msa_copy_u_w()
6021 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_insert_b()
6022 target_ulong rs = env->active_tc.gpr[rs_num]; in helper_msa_insert_b()
6026 n = 8 - n - 1; in helper_msa_insert_b()
6028 n = 24 - n - 1; in helper_msa_insert_b()
6031 pwd->b[n] = (int8_t)rs; in helper_msa_insert_b()
6037 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_insert_h()
6038 target_ulong rs = env->active_tc.gpr[rs_num]; in helper_msa_insert_h()
6042 n = 4 - n - 1; in helper_msa_insert_h()
6044 n = 12 - n - 1; in helper_msa_insert_h()
6047 pwd->h[n] = (int16_t)rs; in helper_msa_insert_h()
6053 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_insert_w()
6054 target_ulong rs = env->active_tc.gpr[rs_num]; in helper_msa_insert_w()
6058 n = 2 - n - 1; in helper_msa_insert_w()
6060 n = 6 - n - 1; in helper_msa_insert_w()
6063 pwd->w[n] = (int32_t)rs; in helper_msa_insert_w()
6069 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_insert_d()
6070 target_ulong rs = env->active_tc.gpr[rs_num]; in helper_msa_insert_d()
6072 pwd->d[n] = (int64_t)rs; in helper_msa_insert_d()
6078 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_insve_df()
6079 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_insve_df()
6083 pwd->b[n] = (int8_t)pws->b[0]; in helper_msa_insve_df()
6086 pwd->h[n] = (int16_t)pws->h[0]; in helper_msa_insve_df()
6089 pwd->w[n] = (int32_t)pws->w[0]; in helper_msa_insve_df()
6092 pwd->d[n] = (int64_t)pws->d[0]; in helper_msa_insve_df()
6105 env->active_tc.msacsr = (int32_t)elm & MSACSR_MASK; in helper_msa_ctcmsa()
6108 if ((GET_FP_ENABLE(env->active_tc.msacsr) | FP_UNIMPLEMENTED) in helper_msa_ctcmsa()
6109 & GET_FP_CAUSE(env->active_tc.msacsr)) { in helper_msa_ctcmsa()
6120 return env->msair; in helper_msa_cfcmsa()
6122 return env->active_tc.msacsr & MSACSR_MASK; in helper_msa_cfcmsa()
6130 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fill_df()
6136 pwd->b[i] = (int8_t)env->active_tc.gpr[rs]; in helper_msa_fill_df()
6141 pwd->h[i] = (int16_t)env->active_tc.gpr[rs]; in helper_msa_fill_df()
6146 pwd->w[i] = (int32_t)env->active_tc.gpr[rs]; in helper_msa_fill_df()
6151 pwd->d[i] = (int64_t)env->active_tc.gpr[rs]; in helper_msa_fill_df()
6172 SET_FP_CAUSE(env->active_tc.msacsr, 0); in clear_msacsr_cause()
6177 if ((GET_FP_CAUSE(env->active_tc.msacsr) & in check_msacsr_cause()
6178 (GET_FP_ENABLE(env->active_tc.msacsr) | FP_UNIMPLEMENTED)) == 0) { in check_msacsr_cause()
6179 UPDATE_FP_FLAGS(env->active_tc.msacsr, in check_msacsr_cause()
6180 GET_FP_CAUSE(env->active_tc.msacsr)); in check_msacsr_cause()
6186 /* Flush-to-zero use cases for update_msacsr() */
6223 &env->active_tc.msa_fp_status); in update_msacsr()
6232 enable = GET_FP_ENABLE(env->active_tc.msacsr) | FP_UNIMPLEMENTED; in update_msacsr()
6236 (env->active_tc.msacsr & MSACSR_FS_MASK) != 0) { in update_msacsr()
6246 (env->active_tc.msacsr & MSACSR_FS_MASK) != 0) { in update_msacsr()
6284 SET_FP_CAUSE(env->active_tc.msacsr, in update_msacsr()
6285 (GET_FP_CAUSE(env->active_tc.msacsr) | mips_exception_flags)); in update_msacsr()
6288 if ((env->active_tc.msacsr & MSACSR_NX_MASK) == 0) { in update_msacsr()
6293 SET_FP_CAUSE(env->active_tc.msacsr, in update_msacsr()
6294 (GET_FP_CAUSE(env->active_tc.msacsr) | mips_exception_flags)); in update_msacsr()
6303 int enable = GET_FP_ENABLE(env->active_tc.msacsr) | FP_UNIMPLEMENTED; in get_enabled_exceptions()
6351 f_val = float32_scalbn(f_val, -15, status); in float32_from_q16()
6362 f_val = float64_scalbn(f_val, -31, status); in float64_from_q32()
6473 float_status *status = &env->active_tc.msa_fp_status; \
6561 MSA_FLOAT_AF(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_af()
6566 MSA_FLOAT_AF(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_af()
6590 MSA_FLOAT_COND(pwx->w[i], unordered, pws->w[i], pwt->w[i], 32, in compare_un()
6596 MSA_FLOAT_COND(pwx->d[i], unordered, pws->d[i], pwt->d[i], 64, in compare_un()
6621 MSA_FLOAT_COND(pwx->w[i], eq, pws->w[i], pwt->w[i], 32, quiet); in compare_eq()
6626 MSA_FLOAT_COND(pwx->d[i], eq, pws->d[i], pwt->d[i], 64, quiet); in compare_eq()
6650 MSA_FLOAT_UEQ(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_ueq()
6655 MSA_FLOAT_UEQ(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_ueq()
6679 MSA_FLOAT_COND(pwx->w[i], lt, pws->w[i], pwt->w[i], 32, quiet); in compare_lt()
6684 MSA_FLOAT_COND(pwx->d[i], lt, pws->d[i], pwt->d[i], 64, quiet); in compare_lt()
6708 MSA_FLOAT_ULT(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_ult()
6713 MSA_FLOAT_ULT(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_ult()
6737 MSA_FLOAT_COND(pwx->w[i], le, pws->w[i], pwt->w[i], 32, quiet); in compare_le()
6742 MSA_FLOAT_COND(pwx->d[i], le, pws->d[i], pwt->d[i], 64, quiet); in compare_le()
6766 MSA_FLOAT_ULE(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_ule()
6771 MSA_FLOAT_ULE(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_ule()
6795 MSA_FLOAT_OR(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_or()
6800 MSA_FLOAT_OR(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_or()
6824 MSA_FLOAT_UNE(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_une()
6829 MSA_FLOAT_UNE(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_une()
6853 MSA_FLOAT_NE(pwx->w[i], pws->w[i], pwt->w[i], 32, quiet); in compare_ne()
6858 MSA_FLOAT_NE(pwx->d[i], pws->d[i], pwt->d[i], 64, quiet); in compare_ne()
6873 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcaf_df()
6874 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcaf_df()
6875 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcaf_df()
6882 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcun_df()
6883 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcun_df()
6884 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcun_df()
6891 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fceq_df()
6892 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fceq_df()
6893 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fceq_df()
6900 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcueq_df()
6901 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcueq_df()
6902 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcueq_df()
6909 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fclt_df()
6910 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fclt_df()
6911 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fclt_df()
6918 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcult_df()
6919 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcult_df()
6920 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcult_df()
6927 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcle_df()
6928 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcle_df()
6929 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcle_df()
6936 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcule_df()
6937 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcule_df()
6938 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcule_df()
6945 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsaf_df()
6946 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsaf_df()
6947 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsaf_df()
6954 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsun_df()
6955 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsun_df()
6956 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsun_df()
6963 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fseq_df()
6964 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fseq_df()
6965 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fseq_df()
6972 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsueq_df()
6973 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsueq_df()
6974 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsueq_df()
6981 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fslt_df()
6982 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fslt_df()
6983 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fslt_df()
6990 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsult_df()
6991 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsult_df()
6992 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsult_df()
6999 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsle_df()
7000 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsle_df()
7001 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsle_df()
7008 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsule_df()
7009 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsule_df()
7010 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsule_df()
7017 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcor_df()
7018 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcor_df()
7019 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcor_df()
7026 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcune_df()
7027 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcune_df()
7028 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcune_df()
7035 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fcne_df()
7036 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fcne_df()
7037 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fcne_df()
7044 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsor_df()
7045 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsor_df()
7046 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsor_df()
7053 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsune_df()
7054 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsune_df()
7055 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsune_df()
7062 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsne_df()
7063 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsne_df()
7064 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsne_df()
7077 float_status *status = &env->active_tc.msa_fp_status; \
7093 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fadd_df()
7094 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fadd_df()
7095 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fadd_df()
7103 MSA_FLOAT_BINOP(pwx->w[i], add, pws->w[i], pwt->w[i], 32); in helper_msa_fadd_df()
7108 MSA_FLOAT_BINOP(pwx->d[i], add, pws->d[i], pwt->d[i], 64); in helper_msa_fadd_df()
7123 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsub_df()
7124 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsub_df()
7125 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fsub_df()
7133 MSA_FLOAT_BINOP(pwx->w[i], sub, pws->w[i], pwt->w[i], 32); in helper_msa_fsub_df()
7138 MSA_FLOAT_BINOP(pwx->d[i], sub, pws->d[i], pwt->d[i], 64); in helper_msa_fsub_df()
7153 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmul_df()
7154 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmul_df()
7155 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmul_df()
7163 MSA_FLOAT_BINOP(pwx->w[i], mul, pws->w[i], pwt->w[i], 32); in helper_msa_fmul_df()
7168 MSA_FLOAT_BINOP(pwx->d[i], mul, pws->d[i], pwt->d[i], 64); in helper_msa_fmul_df()
7184 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fdiv_df()
7185 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fdiv_df()
7186 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fdiv_df()
7194 MSA_FLOAT_BINOP(pwx->w[i], div, pws->w[i], pwt->w[i], 32); in helper_msa_fdiv_df()
7199 MSA_FLOAT_BINOP(pwx->d[i], div, pws->d[i], pwt->d[i], 64); in helper_msa_fdiv_df()
7213 float_status *status = &env->active_tc.msa_fp_status; \
7229 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmadd_df()
7230 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmadd_df()
7231 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmadd_df()
7239 MSA_FLOAT_MULADD(pwx->w[i], pwd->w[i], in helper_msa_fmadd_df()
7240 pws->w[i], pwt->w[i], 0, 32); in helper_msa_fmadd_df()
7245 MSA_FLOAT_MULADD(pwx->d[i], pwd->d[i], in helper_msa_fmadd_df()
7246 pws->d[i], pwt->d[i], 0, 64); in helper_msa_fmadd_df()
7262 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmsub_df()
7263 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmsub_df()
7264 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmsub_df()
7272 MSA_FLOAT_MULADD(pwx->w[i], pwd->w[i], in helper_msa_fmsub_df()
7273 pws->w[i], pwt->w[i], in helper_msa_fmsub_df()
7279 MSA_FLOAT_MULADD(pwx->d[i], pwd->d[i], in helper_msa_fmsub_df()
7280 pws->d[i], pwt->d[i], in helper_msa_fmsub_df()
7297 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fexp2_df()
7298 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fexp2_df()
7299 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fexp2_df()
7307 MSA_FLOAT_BINOP(pwx->w[i], scalbn, pws->w[i], in helper_msa_fexp2_df()
7308 pwt->w[i] > 0x200 ? 0x200 : in helper_msa_fexp2_df()
7309 pwt->w[i] < -0x200 ? -0x200 : pwt->w[i], in helper_msa_fexp2_df()
7315 MSA_FLOAT_BINOP(pwx->d[i], scalbn, pws->d[i], in helper_msa_fexp2_df()
7316 pwt->d[i] > 0x1000 ? 0x1000 : in helper_msa_fexp2_df()
7317 pwt->d[i] < -0x1000 ? -0x1000 : pwt->d[i], in helper_msa_fexp2_df()
7332 float_status *status = &env->active_tc.msa_fp_status; \
7348 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fexdo_df()
7349 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fexdo_df()
7350 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fexdo_df()
7365 MSA_FLOAT_BINOP(Lh(pwx, i), from_float32, pws->w[i], ieee, 16); in helper_msa_fexdo_df()
7366 MSA_FLOAT_BINOP(Rh(pwx, i), from_float32, pwt->w[i], ieee, 16); in helper_msa_fexdo_df()
7371 MSA_FLOAT_UNOP(Lw(pwx, i), from_float64, pws->d[i], 32); in helper_msa_fexdo_df()
7372 MSA_FLOAT_UNOP(Rw(pwx, i), from_float64, pwt->d[i], 32); in helper_msa_fexdo_df()
7385 float_status *status = &env->active_tc.msa_fp_status; \
7401 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ftq_df()
7402 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ftq_df()
7403 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_ftq_df()
7411 MSA_FLOAT_UNOP_XD(Lh(pwx, i), to_q16, pws->w[i], 32, 16); in helper_msa_ftq_df()
7412 MSA_FLOAT_UNOP_XD(Rh(pwx, i), to_q16, pwt->w[i], 32, 16); in helper_msa_ftq_df()
7417 MSA_FLOAT_UNOP_XD(Lw(pwx, i), to_q32, pws->d[i], 64, 32); in helper_msa_ftq_df()
7418 MSA_FLOAT_UNOP_XD(Rw(pwx, i), to_q32, pwt->d[i], 64, 32); in helper_msa_ftq_df()
7436 float_status *status_ = &env->active_tc.msa_fp_status; \
7469 float_status *status = &env->active_tc.msa_fp_status; in helper_msa_fmin_df()
7471 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmin_df()
7472 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmin_df()
7473 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmin_df()
7479 if (NUMBER_QNAN_PAIR(pws->w[0], pwt->w[0], 32, status)) { in helper_msa_fmin_df()
7480 MSA_FLOAT_MAXOP(pwx->w[0], min, pws->w[0], pws->w[0], 32); in helper_msa_fmin_df()
7481 } else if (NUMBER_QNAN_PAIR(pwt->w[0], pws->w[0], 32, status)) { in helper_msa_fmin_df()
7482 MSA_FLOAT_MAXOP(pwx->w[0], min, pwt->w[0], pwt->w[0], 32); in helper_msa_fmin_df()
7484 MSA_FLOAT_MAXOP(pwx->w[0], min, pws->w[0], pwt->w[0], 32); in helper_msa_fmin_df()
7487 if (NUMBER_QNAN_PAIR(pws->w[1], pwt->w[1], 32, status)) { in helper_msa_fmin_df()
7488 MSA_FLOAT_MAXOP(pwx->w[1], min, pws->w[1], pws->w[1], 32); in helper_msa_fmin_df()
7489 } else if (NUMBER_QNAN_PAIR(pwt->w[1], pws->w[1], 32, status)) { in helper_msa_fmin_df()
7490 MSA_FLOAT_MAXOP(pwx->w[1], min, pwt->w[1], pwt->w[1], 32); in helper_msa_fmin_df()
7492 MSA_FLOAT_MAXOP(pwx->w[1], min, pws->w[1], pwt->w[1], 32); in helper_msa_fmin_df()
7495 if (NUMBER_QNAN_PAIR(pws->w[2], pwt->w[2], 32, status)) { in helper_msa_fmin_df()
7496 MSA_FLOAT_MAXOP(pwx->w[2], min, pws->w[2], pws->w[2], 32); in helper_msa_fmin_df()
7497 } else if (NUMBER_QNAN_PAIR(pwt->w[2], pws->w[2], 32, status)) { in helper_msa_fmin_df()
7498 MSA_FLOAT_MAXOP(pwx->w[2], min, pwt->w[2], pwt->w[2], 32); in helper_msa_fmin_df()
7500 MSA_FLOAT_MAXOP(pwx->w[2], min, pws->w[2], pwt->w[2], 32); in helper_msa_fmin_df()
7503 if (NUMBER_QNAN_PAIR(pws->w[3], pwt->w[3], 32, status)) { in helper_msa_fmin_df()
7504 MSA_FLOAT_MAXOP(pwx->w[3], min, pws->w[3], pws->w[3], 32); in helper_msa_fmin_df()
7505 } else if (NUMBER_QNAN_PAIR(pwt->w[3], pws->w[3], 32, status)) { in helper_msa_fmin_df()
7506 MSA_FLOAT_MAXOP(pwx->w[3], min, pwt->w[3], pwt->w[3], 32); in helper_msa_fmin_df()
7508 MSA_FLOAT_MAXOP(pwx->w[3], min, pws->w[3], pwt->w[3], 32); in helper_msa_fmin_df()
7513 if (NUMBER_QNAN_PAIR(pws->d[0], pwt->d[0], 64, status)) { in helper_msa_fmin_df()
7514 MSA_FLOAT_MAXOP(pwx->d[0], min, pws->d[0], pws->d[0], 64); in helper_msa_fmin_df()
7515 } else if (NUMBER_QNAN_PAIR(pwt->d[0], pws->d[0], 64, status)) { in helper_msa_fmin_df()
7516 MSA_FLOAT_MAXOP(pwx->d[0], min, pwt->d[0], pwt->d[0], 64); in helper_msa_fmin_df()
7518 MSA_FLOAT_MAXOP(pwx->d[0], min, pws->d[0], pwt->d[0], 64); in helper_msa_fmin_df()
7521 if (NUMBER_QNAN_PAIR(pws->d[1], pwt->d[1], 64, status)) { in helper_msa_fmin_df()
7522 MSA_FLOAT_MAXOP(pwx->d[1], min, pws->d[1], pws->d[1], 64); in helper_msa_fmin_df()
7523 } else if (NUMBER_QNAN_PAIR(pwt->d[1], pws->d[1], 64, status)) { in helper_msa_fmin_df()
7524 MSA_FLOAT_MAXOP(pwx->d[1], min, pwt->d[1], pwt->d[1], 64); in helper_msa_fmin_df()
7526 MSA_FLOAT_MAXOP(pwx->d[1], min, pws->d[1], pwt->d[1], 64); in helper_msa_fmin_df()
7543 float_status *status = &env->active_tc.msa_fp_status; in helper_msa_fmin_a_df()
7545 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmin_a_df()
7546 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmin_a_df()
7547 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmin_a_df()
7552 FMAXMIN_A(min, max, pwx->w[0], pws->w[0], pwt->w[0], 32, status); in helper_msa_fmin_a_df()
7553 FMAXMIN_A(min, max, pwx->w[1], pws->w[1], pwt->w[1], 32, status); in helper_msa_fmin_a_df()
7554 FMAXMIN_A(min, max, pwx->w[2], pws->w[2], pwt->w[2], 32, status); in helper_msa_fmin_a_df()
7555 FMAXMIN_A(min, max, pwx->w[3], pws->w[3], pwt->w[3], 32, status); in helper_msa_fmin_a_df()
7557 FMAXMIN_A(min, max, pwx->d[0], pws->d[0], pwt->d[0], 64, status); in helper_msa_fmin_a_df()
7558 FMAXMIN_A(min, max, pwx->d[1], pws->d[1], pwt->d[1], 64, status); in helper_msa_fmin_a_df()
7571 float_status *status = &env->active_tc.msa_fp_status; in helper_msa_fmax_df()
7573 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmax_df()
7574 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmax_df()
7575 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmax_df()
7581 if (NUMBER_QNAN_PAIR(pws->w[0], pwt->w[0], 32, status)) { in helper_msa_fmax_df()
7582 MSA_FLOAT_MAXOP(pwx->w[0], max, pws->w[0], pws->w[0], 32); in helper_msa_fmax_df()
7583 } else if (NUMBER_QNAN_PAIR(pwt->w[0], pws->w[0], 32, status)) { in helper_msa_fmax_df()
7584 MSA_FLOAT_MAXOP(pwx->w[0], max, pwt->w[0], pwt->w[0], 32); in helper_msa_fmax_df()
7586 MSA_FLOAT_MAXOP(pwx->w[0], max, pws->w[0], pwt->w[0], 32); in helper_msa_fmax_df()
7589 if (NUMBER_QNAN_PAIR(pws->w[1], pwt->w[1], 32, status)) { in helper_msa_fmax_df()
7590 MSA_FLOAT_MAXOP(pwx->w[1], max, pws->w[1], pws->w[1], 32); in helper_msa_fmax_df()
7591 } else if (NUMBER_QNAN_PAIR(pwt->w[1], pws->w[1], 32, status)) { in helper_msa_fmax_df()
7592 MSA_FLOAT_MAXOP(pwx->w[1], max, pwt->w[1], pwt->w[1], 32); in helper_msa_fmax_df()
7594 MSA_FLOAT_MAXOP(pwx->w[1], max, pws->w[1], pwt->w[1], 32); in helper_msa_fmax_df()
7597 if (NUMBER_QNAN_PAIR(pws->w[2], pwt->w[2], 32, status)) { in helper_msa_fmax_df()
7598 MSA_FLOAT_MAXOP(pwx->w[2], max, pws->w[2], pws->w[2], 32); in helper_msa_fmax_df()
7599 } else if (NUMBER_QNAN_PAIR(pwt->w[2], pws->w[2], 32, status)) { in helper_msa_fmax_df()
7600 MSA_FLOAT_MAXOP(pwx->w[2], max, pwt->w[2], pwt->w[2], 32); in helper_msa_fmax_df()
7602 MSA_FLOAT_MAXOP(pwx->w[2], max, pws->w[2], pwt->w[2], 32); in helper_msa_fmax_df()
7605 if (NUMBER_QNAN_PAIR(pws->w[3], pwt->w[3], 32, status)) { in helper_msa_fmax_df()
7606 MSA_FLOAT_MAXOP(pwx->w[3], max, pws->w[3], pws->w[3], 32); in helper_msa_fmax_df()
7607 } else if (NUMBER_QNAN_PAIR(pwt->w[3], pws->w[3], 32, status)) { in helper_msa_fmax_df()
7608 MSA_FLOAT_MAXOP(pwx->w[3], max, pwt->w[3], pwt->w[3], 32); in helper_msa_fmax_df()
7610 MSA_FLOAT_MAXOP(pwx->w[3], max, pws->w[3], pwt->w[3], 32); in helper_msa_fmax_df()
7615 if (NUMBER_QNAN_PAIR(pws->d[0], pwt->d[0], 64, status)) { in helper_msa_fmax_df()
7616 MSA_FLOAT_MAXOP(pwx->d[0], max, pws->d[0], pws->d[0], 64); in helper_msa_fmax_df()
7617 } else if (NUMBER_QNAN_PAIR(pwt->d[0], pws->d[0], 64, status)) { in helper_msa_fmax_df()
7618 MSA_FLOAT_MAXOP(pwx->d[0], max, pwt->d[0], pwt->d[0], 64); in helper_msa_fmax_df()
7620 MSA_FLOAT_MAXOP(pwx->d[0], max, pws->d[0], pwt->d[0], 64); in helper_msa_fmax_df()
7623 if (NUMBER_QNAN_PAIR(pws->d[1], pwt->d[1], 64, status)) { in helper_msa_fmax_df()
7624 MSA_FLOAT_MAXOP(pwx->d[1], max, pws->d[1], pws->d[1], 64); in helper_msa_fmax_df()
7625 } else if (NUMBER_QNAN_PAIR(pwt->d[1], pws->d[1], 64, status)) { in helper_msa_fmax_df()
7626 MSA_FLOAT_MAXOP(pwx->d[1], max, pwt->d[1], pwt->d[1], 64); in helper_msa_fmax_df()
7628 MSA_FLOAT_MAXOP(pwx->d[1], max, pws->d[1], pwt->d[1], 64); in helper_msa_fmax_df()
7645 float_status *status = &env->active_tc.msa_fp_status; in helper_msa_fmax_a_df()
7647 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fmax_a_df()
7648 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fmax_a_df()
7649 wr_t *pwt = &(env->active_fpu.fpr[wt].wr); in helper_msa_fmax_a_df()
7654 FMAXMIN_A(max, min, pwx->w[0], pws->w[0], pwt->w[0], 32, status); in helper_msa_fmax_a_df()
7655 FMAXMIN_A(max, min, pwx->w[1], pws->w[1], pwt->w[1], 32, status); in helper_msa_fmax_a_df()
7656 FMAXMIN_A(max, min, pwx->w[2], pws->w[2], pwt->w[2], 32, status); in helper_msa_fmax_a_df()
7657 FMAXMIN_A(max, min, pwx->w[3], pws->w[3], pwt->w[3], 32, status); in helper_msa_fmax_a_df()
7659 FMAXMIN_A(max, min, pwx->d[0], pws->d[0], pwt->d[0], 64, status); in helper_msa_fmax_a_df()
7660 FMAXMIN_A(max, min, pwx->d[1], pws->d[1], pwt->d[1], 64, status); in helper_msa_fmax_a_df()
7673 float_status *status = &env->active_tc.msa_fp_status; in helper_msa_fclass_df()
7675 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fclass_df()
7676 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fclass_df()
7678 pwd->w[0] = float_class_s(pws->w[0], status); in helper_msa_fclass_df()
7679 pwd->w[1] = float_class_s(pws->w[1], status); in helper_msa_fclass_df()
7680 pwd->w[2] = float_class_s(pws->w[2], status); in helper_msa_fclass_df()
7681 pwd->w[3] = float_class_s(pws->w[3], status); in helper_msa_fclass_df()
7683 pwd->d[0] = float_class_d(pws->d[0], status); in helper_msa_fclass_df()
7684 pwd->d[1] = float_class_d(pws->d[1], status); in helper_msa_fclass_df()
7692 float_status *status = &env->active_tc.msa_fp_status; \
7710 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ftrunc_s_df()
7711 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ftrunc_s_df()
7719 MSA_FLOAT_UNOP0(pwx->w[i], to_int32_round_to_zero, pws->w[i], 32); in helper_msa_ftrunc_s_df()
7724 MSA_FLOAT_UNOP0(pwx->d[i], to_int64_round_to_zero, pws->d[i], 64); in helper_msa_ftrunc_s_df()
7740 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ftrunc_u_df()
7741 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ftrunc_u_df()
7749 MSA_FLOAT_UNOP0(pwx->w[i], to_uint32_round_to_zero, pws->w[i], 32); in helper_msa_ftrunc_u_df()
7754 MSA_FLOAT_UNOP0(pwx->d[i], to_uint64_round_to_zero, pws->d[i], 64); in helper_msa_ftrunc_u_df()
7770 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fsqrt_df()
7771 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fsqrt_df()
7779 MSA_FLOAT_UNOP(pwx->w[i], sqrt, pws->w[i], 32); in helper_msa_fsqrt_df()
7784 MSA_FLOAT_UNOP(pwx->d[i], sqrt, pws->d[i], 64); in helper_msa_fsqrt_df()
7798 float_status *status = &env->active_tc.msa_fp_status; \
7817 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_frsqrt_df()
7818 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_frsqrt_df()
7826 MSA_FLOAT_RECIPROCAL(pwx->w[i], float32_sqrt(pws->w[i], in helper_msa_frsqrt_df()
7827 &env->active_tc.msa_fp_status), 32); in helper_msa_frsqrt_df()
7832 MSA_FLOAT_RECIPROCAL(pwx->d[i], float64_sqrt(pws->d[i], in helper_msa_frsqrt_df()
7833 &env->active_tc.msa_fp_status), 64); in helper_msa_frsqrt_df()
7849 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_frcp_df()
7850 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_frcp_df()
7858 MSA_FLOAT_RECIPROCAL(pwx->w[i], pws->w[i], 32); in helper_msa_frcp_df()
7863 MSA_FLOAT_RECIPROCAL(pwx->d[i], pws->d[i], 64); in helper_msa_frcp_df()
7879 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_frint_df()
7880 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_frint_df()
7888 MSA_FLOAT_UNOP(pwx->w[i], round_to_int, pws->w[i], 32); in helper_msa_frint_df()
7893 MSA_FLOAT_UNOP(pwx->d[i], round_to_int, pws->d[i], 64); in helper_msa_frint_df()
7907 float_status *status = &env->active_tc.msa_fp_status; \
7914 set_float_rounding_mode(ieee_rm[(env->active_tc.msacsr & \
7933 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_flog2_df()
7934 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_flog2_df()
7942 MSA_FLOAT_LOGB(pwx->w[i], pws->w[i], 32); in helper_msa_flog2_df()
7947 MSA_FLOAT_LOGB(pwx->d[i], pws->d[i], 64); in helper_msa_flog2_df()
7963 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fexupl_df()
7964 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fexupl_df()
7979 MSA_FLOAT_BINOP(pwx->w[i], from_float16, Lh(pws, i), ieee, 32); in helper_msa_fexupl_df()
7984 MSA_FLOAT_UNOP(pwx->d[i], from_float32, Lw(pws, i), 64); in helper_msa_fexupl_df()
7999 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_fexupr_df()
8000 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_fexupr_df()
8015 MSA_FLOAT_BINOP(pwx->w[i], from_float16, Rh(pws, i), ieee, 32); in helper_msa_fexupr_df()
8020 MSA_FLOAT_UNOP(pwx->d[i], from_float32, Rw(pws, i), 64); in helper_msa_fexupr_df()
8035 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ffql_df()
8036 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ffql_df()
8042 MSA_FLOAT_UNOP(pwx->w[i], from_q16, Lh(pws, i), 32); in helper_msa_ffql_df()
8047 MSA_FLOAT_UNOP(pwx->d[i], from_q32, Lw(pws, i), 64); in helper_msa_ffql_df()
8061 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ffqr_df()
8062 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ffqr_df()
8068 MSA_FLOAT_UNOP(pwx->w[i], from_q16, Rh(pws, i), 32); in helper_msa_ffqr_df()
8073 MSA_FLOAT_UNOP(pwx->d[i], from_q32, Rw(pws, i), 64); in helper_msa_ffqr_df()
8087 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ftint_s_df()
8088 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ftint_s_df()
8096 MSA_FLOAT_UNOP0(pwx->w[i], to_int32, pws->w[i], 32); in helper_msa_ftint_s_df()
8101 MSA_FLOAT_UNOP0(pwx->d[i], to_int64, pws->d[i], 64); in helper_msa_ftint_s_df()
8117 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ftint_u_df()
8118 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ftint_u_df()
8126 MSA_FLOAT_UNOP0(pwx->w[i], to_uint32, pws->w[i], 32); in helper_msa_ftint_u_df()
8131 MSA_FLOAT_UNOP0(pwx->d[i], to_uint64, pws->d[i], 64); in helper_msa_ftint_u_df()
8153 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ffint_s_df()
8154 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ffint_s_df()
8162 MSA_FLOAT_UNOP(pwx->w[i], from_int32, pws->w[i], 32); in helper_msa_ffint_s_df()
8167 MSA_FLOAT_UNOP(pwx->d[i], from_int64, pws->d[i], 64); in helper_msa_ffint_s_df()
8183 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ffint_u_df()
8184 wr_t *pws = &(env->active_fpu.fpr[ws].wr); in helper_msa_ffint_u_df()
8192 MSA_FLOAT_UNOP(pwx->w[i], from_uint32, pws->w[i], 32); in helper_msa_ffint_u_df()
8197 MSA_FLOAT_UNOP(pwx->d[i], from_uint64, pws->d[i], 64); in helper_msa_ffint_u_df()
8212 /* Element-by-element access macros */
8229 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ld_b()
8236 pwd->d[0] = d0; in helper_msa_ld_b()
8237 pwd->d[1] = d1; in helper_msa_ld_b()
8243 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ld_h()
8248 * Load 8 bytes at a time. Use little-endian load, then for in helper_msa_ld_h()
8249 * big-endian target, we must then swap the four halfwords. in helper_msa_ld_h()
8257 pwd->d[0] = d0; in helper_msa_ld_h()
8258 pwd->d[1] = d1; in helper_msa_ld_h()
8264 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ld_w()
8269 * Load 8 bytes at a time. Use little-endian load, then for in helper_msa_ld_w()
8270 * big-endian target, we must then bswap the two words. in helper_msa_ld_w()
8278 pwd->d[0] = d0; in helper_msa_ld_w()
8279 pwd->d[1] = d1; in helper_msa_ld_w()
8285 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_ld_d()
8291 pwd->d[0] = d0; in helper_msa_ld_d()
8292 pwd->d[1] = d1; in helper_msa_ld_d()
8296 ((((x) & ~TARGET_PAGE_MASK) + MSA_WRLEN / 8 - 1) >= TARGET_PAGE_SIZE)
8316 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_st_b()
8323 cpu_stq_le_data_ra(env, addr + 0, pwd->d[0], ra); in helper_msa_st_b()
8324 cpu_stq_le_data_ra(env, addr + 8, pwd->d[1], ra); in helper_msa_st_b()
8330 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_st_h()
8338 d0 = pwd->d[0]; in helper_msa_st_h()
8339 d1 = pwd->d[1]; in helper_msa_st_h()
8351 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_st_w()
8359 d0 = pwd->d[0]; in helper_msa_st_w()
8360 d1 = pwd->d[1]; in helper_msa_st_w()
8372 wr_t *pwd = &(env->active_fpu.fpr[wd].wr); in helper_msa_st_d()
8378 cpu_stq_data_ra(env, addr + 0, pwd->d[0], ra); in helper_msa_st_d()
8379 cpu_stq_data_ra(env, addr + 8, pwd->d[1], ra); in helper_msa_st_d()