Lines Matching full:env

40 target_ulong helper_cfc1(CPUMIPSState *env, uint32_t reg)  in helper_cfc1()  argument
46 arg1 = (int32_t)env->active_fpu.fcr0; in helper_cfc1()
50 if (env->active_fpu.fcr0 & (1 << FCR0_UFRP)) { in helper_cfc1()
51 if (env->CP0_Config5 & (1 << CP0C5_UFR)) { in helper_cfc1()
53 ((env->CP0_Status & (1 << CP0St_FR)) >> CP0St_FR); in helper_cfc1()
55 do_raise_exception(env, EXCP_RI, GETPC()); in helper_cfc1()
61 if (env->active_fpu.fcr0 & (1 << FCR0_FREP)) { in helper_cfc1()
62 if (env->CP0_Config5 & (1 << CP0C5_UFE)) { in helper_cfc1()
63 arg1 = (env->CP0_Config5 >> CP0C5_FRE) & 1; in helper_cfc1()
65 helper_raise_exception(env, EXCP_RI); in helper_cfc1()
70 arg1 = ((env->active_fpu.fcr31 >> 24) & 0xfe) | in helper_cfc1()
71 ((env->active_fpu.fcr31 >> 23) & 0x1); in helper_cfc1()
74 arg1 = env->active_fpu.fcr31 & 0x0003f07c; in helper_cfc1()
77 arg1 = (env->active_fpu.fcr31 & 0x00000f83) | in helper_cfc1()
78 ((env->active_fpu.fcr31 >> 22) & 0x4); in helper_cfc1()
81 arg1 = (int32_t)env->active_fpu.fcr31; in helper_cfc1()
88 void helper_ctc1(CPUMIPSState *env, target_ulong arg1, uint32_t fs, uint32_t rt) in helper_ctc1() argument
93 if (!((env->active_fpu.fcr0 & (1 << FCR0_UFRP)) && (rt == 0))) { in helper_ctc1()
96 if (env->CP0_Config5 & (1 << CP0C5_UFR)) { in helper_ctc1()
97 env->CP0_Status &= ~(1 << CP0St_FR); in helper_ctc1()
98 compute_hflags(env); in helper_ctc1()
100 do_raise_exception(env, EXCP_RI, GETPC()); in helper_ctc1()
105 if (!((env->active_fpu.fcr0 & (1 << FCR0_UFRP)) && (rt == 0))) { in helper_ctc1()
108 if (env->CP0_Config5 & (1 << CP0C5_UFR)) { in helper_ctc1()
109 env->CP0_Status |= (1 << CP0St_FR); in helper_ctc1()
110 compute_hflags(env); in helper_ctc1()
112 do_raise_exception(env, EXCP_RI, GETPC()); in helper_ctc1()
117 if (!((env->active_fpu.fcr0 & (1 << FCR0_FREP)) && (rt == 0))) { in helper_ctc1()
120 if (env->CP0_Config5 & (1 << CP0C5_UFE)) { in helper_ctc1()
121 env->CP0_Config5 &= ~(1 << CP0C5_FRE); in helper_ctc1()
122 compute_hflags(env); in helper_ctc1()
124 helper_raise_exception(env, EXCP_RI); in helper_ctc1()
129 if (!((env->active_fpu.fcr0 & (1 << FCR0_FREP)) && (rt == 0))) { in helper_ctc1()
132 if (env->CP0_Config5 & (1 << CP0C5_UFE)) { in helper_ctc1()
133 env->CP0_Config5 |= (1 << CP0C5_FRE); in helper_ctc1()
134 compute_hflags(env); in helper_ctc1()
136 helper_raise_exception(env, EXCP_RI); in helper_ctc1()
140 if ((env->insn_flags & ISA_MIPS_R6) || (arg1 & 0xffffff00)) { in helper_ctc1()
143 env->active_fpu.fcr31 = (env->active_fpu.fcr31 & 0x017fffff) | in helper_ctc1()
151 env->active_fpu.fcr31 = (env->active_fpu.fcr31 & 0xfffc0f83) | in helper_ctc1()
158 env->active_fpu.fcr31 = (env->active_fpu.fcr31 & 0xfefff07c) | in helper_ctc1()
163 env->active_fpu.fcr31 = (arg1 & env->active_fpu.fcr31_rw_bitmask) | in helper_ctc1()
164 (env->active_fpu.fcr31 & ~(env->active_fpu.fcr31_rw_bitmask)); in helper_ctc1()
167 if (env->insn_flags & ISA_MIPS_R6) { in helper_ctc1()
168 do_raise_exception(env, EXCP_RI, GETPC()); in helper_ctc1()
172 restore_fp_status(env); in helper_ctc1()
173 set_float_exception_flags(0, &env->active_fpu.fp_status); in helper_ctc1()
174 if ((GET_FP_ENABLE(env->active_fpu.fcr31) | 0x20) & in helper_ctc1()
175 GET_FP_CAUSE(env->active_fpu.fcr31)) { in helper_ctc1()
176 do_raise_exception(env, EXCP_FPE, GETPC()); in helper_ctc1()
203 static inline void update_fcr31(CPUMIPSState *env, uintptr_t pc) in update_fcr31() argument
206 &env->active_fpu.fp_status); in update_fcr31()
213 SET_FP_CAUSE(env->active_fpu.fcr31, mips_exception_flags); in update_fcr31()
216 set_float_exception_flags(0, &env->active_fpu.fp_status); in update_fcr31()
218 if (GET_FP_ENABLE(env->active_fpu.fcr31) & mips_exception_flags) { in update_fcr31()
219 do_raise_exception(env, EXCP_FPE, pc); in update_fcr31()
221 UPDATE_FP_FLAGS(env->active_fpu.fcr31, mips_exception_flags); in update_fcr31()
234 uint64_t helper_float_sqrt_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_sqrt_d() argument
236 fdt0 = float64_sqrt(fdt0, &env->active_fpu.fp_status); in helper_float_sqrt_d()
237 update_fcr31(env, GETPC()); in helper_float_sqrt_d()
241 uint32_t helper_float_sqrt_s(CPUMIPSState *env, uint32_t fst0) in helper_float_sqrt_s() argument
243 fst0 = float32_sqrt(fst0, &env->active_fpu.fp_status); in helper_float_sqrt_s()
244 update_fcr31(env, GETPC()); in helper_float_sqrt_s()
248 uint64_t helper_float_cvtd_s(CPUMIPSState *env, uint32_t fst0) in helper_float_cvtd_s() argument
252 fdt2 = float32_to_float64(fst0, &env->active_fpu.fp_status); in helper_float_cvtd_s()
253 update_fcr31(env, GETPC()); in helper_float_cvtd_s()
257 uint64_t helper_float_cvtd_w(CPUMIPSState *env, uint32_t wt0) in helper_float_cvtd_w() argument
261 fdt2 = int32_to_float64(wt0, &env->active_fpu.fp_status); in helper_float_cvtd_w()
262 update_fcr31(env, GETPC()); in helper_float_cvtd_w()
266 uint64_t helper_float_cvtd_l(CPUMIPSState *env, uint64_t dt0) in helper_float_cvtd_l() argument
270 fdt2 = int64_to_float64(dt0, &env->active_fpu.fp_status); in helper_float_cvtd_l()
271 update_fcr31(env, GETPC()); in helper_float_cvtd_l()
275 uint64_t helper_float_cvt_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvt_l_d() argument
279 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_cvt_l_d()
280 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_l_d()
284 update_fcr31(env, GETPC()); in helper_float_cvt_l_d()
288 uint64_t helper_float_cvt_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_cvt_l_s() argument
292 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_cvt_l_s()
293 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_l_s()
297 update_fcr31(env, GETPC()); in helper_float_cvt_l_s()
301 uint64_t helper_float_cvtps_pw(CPUMIPSState *env, uint64_t dt0) in helper_float_cvtps_pw() argument
306 fst2 = int32_to_float32(dt0 & 0XFFFFFFFF, &env->active_fpu.fp_status); in helper_float_cvtps_pw()
307 fsth2 = int32_to_float32(dt0 >> 32, &env->active_fpu.fp_status); in helper_float_cvtps_pw()
308 update_fcr31(env, GETPC()); in helper_float_cvtps_pw()
312 uint64_t helper_float_cvtpw_ps(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvtpw_ps() argument
318 wt2 = float32_to_int32(fdt0 & 0XFFFFFFFF, &env->active_fpu.fp_status); in helper_float_cvtpw_ps()
319 excp = get_float_exception_flags(&env->active_fpu.fp_status); in helper_float_cvtpw_ps()
324 set_float_exception_flags(0, &env->active_fpu.fp_status); in helper_float_cvtpw_ps()
325 wth2 = float32_to_int32(fdt0 >> 32, &env->active_fpu.fp_status); in helper_float_cvtpw_ps()
326 excph = get_float_exception_flags(&env->active_fpu.fp_status); in helper_float_cvtpw_ps()
331 set_float_exception_flags(excp | excph, &env->active_fpu.fp_status); in helper_float_cvtpw_ps()
332 update_fcr31(env, GETPC()); in helper_float_cvtpw_ps()
337 uint32_t helper_float_cvts_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvts_d() argument
341 fst2 = float64_to_float32(fdt0, &env->active_fpu.fp_status); in helper_float_cvts_d()
342 update_fcr31(env, GETPC()); in helper_float_cvts_d()
346 uint32_t helper_float_cvts_w(CPUMIPSState *env, uint32_t wt0) in helper_float_cvts_w() argument
350 fst2 = int32_to_float32(wt0, &env->active_fpu.fp_status); in helper_float_cvts_w()
351 update_fcr31(env, GETPC()); in helper_float_cvts_w()
355 uint32_t helper_float_cvts_l(CPUMIPSState *env, uint64_t dt0) in helper_float_cvts_l() argument
359 fst2 = int64_to_float32(dt0, &env->active_fpu.fp_status); in helper_float_cvts_l()
360 update_fcr31(env, GETPC()); in helper_float_cvts_l()
364 uint32_t helper_float_cvts_pl(CPUMIPSState *env, uint32_t wt0) in helper_float_cvts_pl() argument
369 update_fcr31(env, GETPC()); in helper_float_cvts_pl()
373 uint32_t helper_float_cvts_pu(CPUMIPSState *env, uint32_t wth0) in helper_float_cvts_pu() argument
378 update_fcr31(env, GETPC()); in helper_float_cvts_pu()
382 uint32_t helper_float_cvt_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_cvt_w_s() argument
386 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_cvt_w_s()
387 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_w_s()
391 update_fcr31(env, GETPC()); in helper_float_cvt_w_s()
395 uint32_t helper_float_cvt_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvt_w_d() argument
399 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_cvt_w_d()
400 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_w_d()
404 update_fcr31(env, GETPC()); in helper_float_cvt_w_d()
408 uint64_t helper_float_round_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_round_l_d() argument
413 &env->active_fpu.fp_status); in helper_float_round_l_d()
414 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_round_l_d()
415 restore_rounding_mode(env); in helper_float_round_l_d()
416 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_l_d()
420 update_fcr31(env, GETPC()); in helper_float_round_l_d()
424 uint64_t helper_float_round_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_round_l_s() argument
429 &env->active_fpu.fp_status); in helper_float_round_l_s()
430 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_round_l_s()
431 restore_rounding_mode(env); in helper_float_round_l_s()
432 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_l_s()
436 update_fcr31(env, GETPC()); in helper_float_round_l_s()
440 uint32_t helper_float_round_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_round_w_d() argument
445 &env->active_fpu.fp_status); in helper_float_round_w_d()
446 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_round_w_d()
447 restore_rounding_mode(env); in helper_float_round_w_d()
448 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_w_d()
452 update_fcr31(env, GETPC()); in helper_float_round_w_d()
456 uint32_t helper_float_round_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_round_w_s() argument
461 &env->active_fpu.fp_status); in helper_float_round_w_s()
462 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_round_w_s()
463 restore_rounding_mode(env); in helper_float_round_w_s()
464 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_w_s()
468 update_fcr31(env, GETPC()); in helper_float_round_w_s()
472 uint64_t helper_float_trunc_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_trunc_l_d() argument
477 &env->active_fpu.fp_status); in helper_float_trunc_l_d()
478 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_l_d()
482 update_fcr31(env, GETPC()); in helper_float_trunc_l_d()
486 uint64_t helper_float_trunc_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_trunc_l_s() argument
490 dt2 = float32_to_int64_round_to_zero(fst0, &env->active_fpu.fp_status); in helper_float_trunc_l_s()
491 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_l_s()
495 update_fcr31(env, GETPC()); in helper_float_trunc_l_s()
499 uint32_t helper_float_trunc_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_trunc_w_d() argument
503 wt2 = float64_to_int32_round_to_zero(fdt0, &env->active_fpu.fp_status); in helper_float_trunc_w_d()
504 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_w_d()
508 update_fcr31(env, GETPC()); in helper_float_trunc_w_d()
512 uint32_t helper_float_trunc_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_trunc_w_s() argument
516 wt2 = float32_to_int32_round_to_zero(fst0, &env->active_fpu.fp_status); in helper_float_trunc_w_s()
517 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_w_s()
521 update_fcr31(env, GETPC()); in helper_float_trunc_w_s()
525 uint64_t helper_float_ceil_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_ceil_l_d() argument
529 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_l_d()
530 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_ceil_l_d()
531 restore_rounding_mode(env); in helper_float_ceil_l_d()
532 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_l_d()
536 update_fcr31(env, GETPC()); in helper_float_ceil_l_d()
540 uint64_t helper_float_ceil_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_ceil_l_s() argument
544 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_l_s()
545 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_ceil_l_s()
546 restore_rounding_mode(env); in helper_float_ceil_l_s()
547 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_l_s()
551 update_fcr31(env, GETPC()); in helper_float_ceil_l_s()
555 uint32_t helper_float_ceil_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_ceil_w_d() argument
559 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_w_d()
560 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_ceil_w_d()
561 restore_rounding_mode(env); in helper_float_ceil_w_d()
562 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_w_d()
566 update_fcr31(env, GETPC()); in helper_float_ceil_w_d()
570 uint32_t helper_float_ceil_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_ceil_w_s() argument
574 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_w_s()
575 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_ceil_w_s()
576 restore_rounding_mode(env); in helper_float_ceil_w_s()
577 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_w_s()
581 update_fcr31(env, GETPC()); in helper_float_ceil_w_s()
585 uint64_t helper_float_floor_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_floor_l_d() argument
589 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_l_d()
590 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_floor_l_d()
591 restore_rounding_mode(env); in helper_float_floor_l_d()
592 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_l_d()
596 update_fcr31(env, GETPC()); in helper_float_floor_l_d()
600 uint64_t helper_float_floor_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_floor_l_s() argument
604 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_l_s()
605 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_floor_l_s()
606 restore_rounding_mode(env); in helper_float_floor_l_s()
607 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_l_s()
611 update_fcr31(env, GETPC()); in helper_float_floor_l_s()
615 uint32_t helper_float_floor_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_floor_w_d() argument
619 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_w_d()
620 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_floor_w_d()
621 restore_rounding_mode(env); in helper_float_floor_w_d()
622 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_w_d()
626 update_fcr31(env, GETPC()); in helper_float_floor_w_d()
630 uint32_t helper_float_floor_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_floor_w_s() argument
634 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_w_s()
635 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_floor_w_s()
636 restore_rounding_mode(env); in helper_float_floor_w_s()
637 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_w_s()
641 update_fcr31(env, GETPC()); in helper_float_floor_w_s()
645 uint64_t helper_float_cvt_2008_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvt_2008_l_d() argument
649 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_cvt_2008_l_d()
650 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_2008_l_d()
656 update_fcr31(env, GETPC()); in helper_float_cvt_2008_l_d()
660 uint64_t helper_float_cvt_2008_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_cvt_2008_l_s() argument
664 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_cvt_2008_l_s()
665 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_2008_l_s()
671 update_fcr31(env, GETPC()); in helper_float_cvt_2008_l_s()
675 uint32_t helper_float_cvt_2008_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_cvt_2008_w_d() argument
679 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_cvt_2008_w_d()
680 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_2008_w_d()
686 update_fcr31(env, GETPC()); in helper_float_cvt_2008_w_d()
690 uint32_t helper_float_cvt_2008_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_cvt_2008_w_s() argument
694 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_cvt_2008_w_s()
695 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_cvt_2008_w_s()
701 update_fcr31(env, GETPC()); in helper_float_cvt_2008_w_s()
705 uint64_t helper_float_round_2008_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_round_2008_l_d() argument
710 &env->active_fpu.fp_status); in helper_float_round_2008_l_d()
711 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_round_2008_l_d()
712 restore_rounding_mode(env); in helper_float_round_2008_l_d()
713 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_2008_l_d()
719 update_fcr31(env, GETPC()); in helper_float_round_2008_l_d()
723 uint64_t helper_float_round_2008_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_round_2008_l_s() argument
728 &env->active_fpu.fp_status); in helper_float_round_2008_l_s()
729 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_round_2008_l_s()
730 restore_rounding_mode(env); in helper_float_round_2008_l_s()
731 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_2008_l_s()
737 update_fcr31(env, GETPC()); in helper_float_round_2008_l_s()
741 uint32_t helper_float_round_2008_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_round_2008_w_d() argument
746 &env->active_fpu.fp_status); in helper_float_round_2008_w_d()
747 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_round_2008_w_d()
748 restore_rounding_mode(env); in helper_float_round_2008_w_d()
749 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_2008_w_d()
755 update_fcr31(env, GETPC()); in helper_float_round_2008_w_d()
759 uint32_t helper_float_round_2008_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_round_2008_w_s() argument
764 &env->active_fpu.fp_status); in helper_float_round_2008_w_s()
765 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_round_2008_w_s()
766 restore_rounding_mode(env); in helper_float_round_2008_w_s()
767 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_round_2008_w_s()
773 update_fcr31(env, GETPC()); in helper_float_round_2008_w_s()
777 uint64_t helper_float_trunc_2008_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_trunc_2008_l_d() argument
781 dt2 = float64_to_int64_round_to_zero(fdt0, &env->active_fpu.fp_status); in helper_float_trunc_2008_l_d()
782 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_2008_l_d()
788 update_fcr31(env, GETPC()); in helper_float_trunc_2008_l_d()
792 uint64_t helper_float_trunc_2008_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_trunc_2008_l_s() argument
796 dt2 = float32_to_int64_round_to_zero(fst0, &env->active_fpu.fp_status); in helper_float_trunc_2008_l_s()
797 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_2008_l_s()
803 update_fcr31(env, GETPC()); in helper_float_trunc_2008_l_s()
807 uint32_t helper_float_trunc_2008_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_trunc_2008_w_d() argument
811 wt2 = float64_to_int32_round_to_zero(fdt0, &env->active_fpu.fp_status); in helper_float_trunc_2008_w_d()
812 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_2008_w_d()
818 update_fcr31(env, GETPC()); in helper_float_trunc_2008_w_d()
822 uint32_t helper_float_trunc_2008_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_trunc_2008_w_s() argument
826 wt2 = float32_to_int32_round_to_zero(fst0, &env->active_fpu.fp_status); in helper_float_trunc_2008_w_s()
827 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_trunc_2008_w_s()
833 update_fcr31(env, GETPC()); in helper_float_trunc_2008_w_s()
837 uint64_t helper_float_ceil_2008_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_ceil_2008_l_d() argument
841 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_2008_l_d()
842 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_ceil_2008_l_d()
843 restore_rounding_mode(env); in helper_float_ceil_2008_l_d()
844 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_2008_l_d()
850 update_fcr31(env, GETPC()); in helper_float_ceil_2008_l_d()
854 uint64_t helper_float_ceil_2008_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_ceil_2008_l_s() argument
858 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_2008_l_s()
859 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_ceil_2008_l_s()
860 restore_rounding_mode(env); in helper_float_ceil_2008_l_s()
861 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_2008_l_s()
867 update_fcr31(env, GETPC()); in helper_float_ceil_2008_l_s()
871 uint32_t helper_float_ceil_2008_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_ceil_2008_w_d() argument
875 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_2008_w_d()
876 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_ceil_2008_w_d()
877 restore_rounding_mode(env); in helper_float_ceil_2008_w_d()
878 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_2008_w_d()
884 update_fcr31(env, GETPC()); in helper_float_ceil_2008_w_d()
888 uint32_t helper_float_ceil_2008_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_ceil_2008_w_s() argument
892 set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); in helper_float_ceil_2008_w_s()
893 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_ceil_2008_w_s()
894 restore_rounding_mode(env); in helper_float_ceil_2008_w_s()
895 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_ceil_2008_w_s()
901 update_fcr31(env, GETPC()); in helper_float_ceil_2008_w_s()
905 uint64_t helper_float_floor_2008_l_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_floor_2008_l_d() argument
909 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_2008_l_d()
910 dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); in helper_float_floor_2008_l_d()
911 restore_rounding_mode(env); in helper_float_floor_2008_l_d()
912 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_2008_l_d()
918 update_fcr31(env, GETPC()); in helper_float_floor_2008_l_d()
922 uint64_t helper_float_floor_2008_l_s(CPUMIPSState *env, uint32_t fst0) in helper_float_floor_2008_l_s() argument
926 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_2008_l_s()
927 dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); in helper_float_floor_2008_l_s()
928 restore_rounding_mode(env); in helper_float_floor_2008_l_s()
929 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_2008_l_s()
935 update_fcr31(env, GETPC()); in helper_float_floor_2008_l_s()
939 uint32_t helper_float_floor_2008_w_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_floor_2008_w_d() argument
943 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_2008_w_d()
944 wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); in helper_float_floor_2008_w_d()
945 restore_rounding_mode(env); in helper_float_floor_2008_w_d()
946 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_2008_w_d()
952 update_fcr31(env, GETPC()); in helper_float_floor_2008_w_d()
956 uint32_t helper_float_floor_2008_w_s(CPUMIPSState *env, uint32_t fst0) in helper_float_floor_2008_w_s() argument
960 set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); in helper_float_floor_2008_w_s()
961 wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); in helper_float_floor_2008_w_s()
962 restore_rounding_mode(env); in helper_float_floor_2008_w_s()
963 if (get_float_exception_flags(&env->active_fpu.fp_status) in helper_float_floor_2008_w_s()
969 update_fcr31(env, GETPC()); in helper_float_floor_2008_w_s()
1016 uint64_t helper_float_recip_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_recip_d() argument
1020 fdt2 = float64_div(float64_one, fdt0, &env->active_fpu.fp_status); in helper_float_recip_d()
1021 update_fcr31(env, GETPC()); in helper_float_recip_d()
1025 uint32_t helper_float_recip_s(CPUMIPSState *env, uint32_t fst0) in helper_float_recip_s() argument
1029 fst2 = float32_div(float32_one, fst0, &env->active_fpu.fp_status); in helper_float_recip_s()
1030 update_fcr31(env, GETPC()); in helper_float_recip_s()
1034 uint64_t helper_float_rsqrt_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_rsqrt_d() argument
1038 fdt2 = float64_sqrt(fdt0, &env->active_fpu.fp_status); in helper_float_rsqrt_d()
1039 fdt2 = float64_div(float64_one, fdt2, &env->active_fpu.fp_status); in helper_float_rsqrt_d()
1040 update_fcr31(env, GETPC()); in helper_float_rsqrt_d()
1044 uint32_t helper_float_rsqrt_s(CPUMIPSState *env, uint32_t fst0) in helper_float_rsqrt_s() argument
1048 fst2 = float32_sqrt(fst0, &env->active_fpu.fp_status); in helper_float_rsqrt_s()
1049 fst2 = float32_div(float32_one, fst2, &env->active_fpu.fp_status); in helper_float_rsqrt_s()
1050 update_fcr31(env, GETPC()); in helper_float_rsqrt_s()
1054 uint64_t helper_float_recip1_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_recip1_d() argument
1058 fdt2 = float64_div(float64_one, fdt0, &env->active_fpu.fp_status); in helper_float_recip1_d()
1059 update_fcr31(env, GETPC()); in helper_float_recip1_d()
1063 uint32_t helper_float_recip1_s(CPUMIPSState *env, uint32_t fst0) in helper_float_recip1_s() argument
1067 fst2 = float32_div(float32_one, fst0, &env->active_fpu.fp_status); in helper_float_recip1_s()
1068 update_fcr31(env, GETPC()); in helper_float_recip1_s()
1072 uint64_t helper_float_recip1_ps(CPUMIPSState *env, uint64_t fdt0) in helper_float_recip1_ps() argument
1078 &env->active_fpu.fp_status); in helper_float_recip1_ps()
1079 fsth2 = float32_div(float32_one, fdt0 >> 32, &env->active_fpu.fp_status); in helper_float_recip1_ps()
1080 update_fcr31(env, GETPC()); in helper_float_recip1_ps()
1084 uint64_t helper_float_rsqrt1_d(CPUMIPSState *env, uint64_t fdt0) in helper_float_rsqrt1_d() argument
1088 fdt2 = float64_sqrt(fdt0, &env->active_fpu.fp_status); in helper_float_rsqrt1_d()
1089 fdt2 = float64_div(float64_one, fdt2, &env->active_fpu.fp_status); in helper_float_rsqrt1_d()
1090 update_fcr31(env, GETPC()); in helper_float_rsqrt1_d()
1094 uint32_t helper_float_rsqrt1_s(CPUMIPSState *env, uint32_t fst0) in helper_float_rsqrt1_s() argument
1098 fst2 = float32_sqrt(fst0, &env->active_fpu.fp_status); in helper_float_rsqrt1_s()
1099 fst2 = float32_div(float32_one, fst2, &env->active_fpu.fp_status); in helper_float_rsqrt1_s()
1100 update_fcr31(env, GETPC()); in helper_float_rsqrt1_s()
1104 uint64_t helper_float_rsqrt1_ps(CPUMIPSState *env, uint64_t fdt0) in helper_float_rsqrt1_ps() argument
1109 fstl2 = float32_sqrt(fdt0 & 0XFFFFFFFF, &env->active_fpu.fp_status); in helper_float_rsqrt1_ps()
1110 fsth2 = float32_sqrt(fdt0 >> 32, &env->active_fpu.fp_status); in helper_float_rsqrt1_ps()
1111 fstl2 = float32_div(float32_one, fstl2, &env->active_fpu.fp_status); in helper_float_rsqrt1_ps()
1112 fsth2 = float32_div(float32_one, fsth2, &env->active_fpu.fp_status); in helper_float_rsqrt1_ps()
1113 update_fcr31(env, GETPC()); in helper_float_rsqrt1_ps()
1117 uint64_t helper_float_rint_d(CPUMIPSState *env, uint64_t fs) in helper_float_rint_d() argument
1121 fdret = float64_round_to_int(fs, &env->active_fpu.fp_status); in helper_float_rint_d()
1122 update_fcr31(env, GETPC()); in helper_float_rint_d()
1126 uint32_t helper_float_rint_s(CPUMIPSState *env, uint32_t fs) in helper_float_rint_s() argument
1130 fdret = float32_round_to_int(fs, &env->active_fpu.fp_status); in helper_float_rint_s()
1131 update_fcr31(env, GETPC()); in helper_float_rint_s()
1175 uint64_t helper_float_class_d(CPUMIPSState *env, uint64_t arg) in helper_float_class_d() argument
1177 return float_class_d(arg, &env->active_fpu.fp_status); in helper_float_class_d()
1209 uint32_t helper_float_class_s(CPUMIPSState *env, uint32_t arg) in helper_float_class_s() argument
1211 return float_class_s(arg, &env->active_fpu.fp_status); in helper_float_class_s()
1216 uint64_t helper_float_add_d(CPUMIPSState *env, in helper_float_add_d() argument
1221 dt2 = float64_add(fdt0, fdt1, &env->active_fpu.fp_status); in helper_float_add_d()
1222 update_fcr31(env, GETPC()); in helper_float_add_d()
1226 uint32_t helper_float_add_s(CPUMIPSState *env, in helper_float_add_s() argument
1231 wt2 = float32_add(fst0, fst1, &env->active_fpu.fp_status); in helper_float_add_s()
1232 update_fcr31(env, GETPC()); in helper_float_add_s()
1236 uint64_t helper_float_add_ps(CPUMIPSState *env, in helper_float_add_ps() argument
1246 wtl2 = float32_add(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_add_ps()
1247 wth2 = float32_add(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_add_ps()
1248 update_fcr31(env, GETPC()); in helper_float_add_ps()
1252 uint64_t helper_float_sub_d(CPUMIPSState *env, in helper_float_sub_d() argument
1257 dt2 = float64_sub(fdt0, fdt1, &env->active_fpu.fp_status); in helper_float_sub_d()
1258 update_fcr31(env, GETPC()); in helper_float_sub_d()
1262 uint32_t helper_float_sub_s(CPUMIPSState *env, in helper_float_sub_s() argument
1267 wt2 = float32_sub(fst0, fst1, &env->active_fpu.fp_status); in helper_float_sub_s()
1268 update_fcr31(env, GETPC()); in helper_float_sub_s()
1272 uint64_t helper_float_sub_ps(CPUMIPSState *env, in helper_float_sub_ps() argument
1282 wtl2 = float32_sub(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_sub_ps()
1283 wth2 = float32_sub(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_sub_ps()
1284 update_fcr31(env, GETPC()); in helper_float_sub_ps()
1288 uint64_t helper_float_mul_d(CPUMIPSState *env, in helper_float_mul_d() argument
1293 dt2 = float64_mul(fdt0, fdt1, &env->active_fpu.fp_status); in helper_float_mul_d()
1294 update_fcr31(env, GETPC()); in helper_float_mul_d()
1298 uint32_t helper_float_mul_s(CPUMIPSState *env, in helper_float_mul_s() argument
1303 wt2 = float32_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_mul_s()
1304 update_fcr31(env, GETPC()); in helper_float_mul_s()
1308 uint64_t helper_float_mul_ps(CPUMIPSState *env, in helper_float_mul_ps() argument
1318 wtl2 = float32_mul(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_mul_ps()
1319 wth2 = float32_mul(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_mul_ps()
1320 update_fcr31(env, GETPC()); in helper_float_mul_ps()
1324 uint64_t helper_float_div_d(CPUMIPSState *env, in helper_float_div_d() argument
1329 dt2 = float64_div(fdt0, fdt1, &env->active_fpu.fp_status); in helper_float_div_d()
1330 update_fcr31(env, GETPC()); in helper_float_div_d()
1334 uint32_t helper_float_div_s(CPUMIPSState *env, in helper_float_div_s() argument
1339 wt2 = float32_div(fst0, fst1, &env->active_fpu.fp_status); in helper_float_div_s()
1340 update_fcr31(env, GETPC()); in helper_float_div_s()
1344 uint64_t helper_float_div_ps(CPUMIPSState *env, in helper_float_div_ps() argument
1354 wtl2 = float32_div(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_div_ps()
1355 wth2 = float32_div(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_div_ps()
1356 update_fcr31(env, GETPC()); in helper_float_div_ps()
1362 uint64_t helper_float_recip2_d(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt2) in helper_float_recip2_d() argument
1364 fdt2 = float64_mul(fdt0, fdt2, &env->active_fpu.fp_status); in helper_float_recip2_d()
1366 &env->active_fpu.fp_status)); in helper_float_recip2_d()
1367 update_fcr31(env, GETPC()); in helper_float_recip2_d()
1371 uint32_t helper_float_recip2_s(CPUMIPSState *env, uint32_t fst0, uint32_t fst2) in helper_float_recip2_s() argument
1373 fst2 = float32_mul(fst0, fst2, &env->active_fpu.fp_status); in helper_float_recip2_s()
1375 &env->active_fpu.fp_status)); in helper_float_recip2_s()
1376 update_fcr31(env, GETPC()); in helper_float_recip2_s()
1380 uint64_t helper_float_recip2_ps(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt2) in helper_float_recip2_ps() argument
1387 fstl2 = float32_mul(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_recip2_ps()
1388 fsth2 = float32_mul(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_recip2_ps()
1390 &env->active_fpu.fp_status)); in helper_float_recip2_ps()
1392 &env->active_fpu.fp_status)); in helper_float_recip2_ps()
1393 update_fcr31(env, GETPC()); in helper_float_recip2_ps()
1397 uint64_t helper_float_rsqrt2_d(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt2) in helper_float_rsqrt2_d() argument
1399 fdt2 = float64_mul(fdt0, fdt2, &env->active_fpu.fp_status); in helper_float_rsqrt2_d()
1400 fdt2 = float64_sub(fdt2, float64_one, &env->active_fpu.fp_status); in helper_float_rsqrt2_d()
1402 &env->active_fpu.fp_status)); in helper_float_rsqrt2_d()
1403 update_fcr31(env, GETPC()); in helper_float_rsqrt2_d()
1407 uint32_t helper_float_rsqrt2_s(CPUMIPSState *env, uint32_t fst0, uint32_t fst2) in helper_float_rsqrt2_s() argument
1409 fst2 = float32_mul(fst0, fst2, &env->active_fpu.fp_status); in helper_float_rsqrt2_s()
1410 fst2 = float32_sub(fst2, float32_one, &env->active_fpu.fp_status); in helper_float_rsqrt2_s()
1412 &env->active_fpu.fp_status)); in helper_float_rsqrt2_s()
1413 update_fcr31(env, GETPC()); in helper_float_rsqrt2_s()
1417 uint64_t helper_float_rsqrt2_ps(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt2) in helper_float_rsqrt2_ps() argument
1424 fstl2 = float32_mul(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_rsqrt2_ps()
1425 fsth2 = float32_mul(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_rsqrt2_ps()
1426 fstl2 = float32_sub(fstl2, float32_one, &env->active_fpu.fp_status); in helper_float_rsqrt2_ps()
1427 fsth2 = float32_sub(fsth2, float32_one, &env->active_fpu.fp_status); in helper_float_rsqrt2_ps()
1429 &env->active_fpu.fp_status)); in helper_float_rsqrt2_ps()
1431 &env->active_fpu.fp_status)); in helper_float_rsqrt2_ps()
1432 update_fcr31(env, GETPC()); in helper_float_rsqrt2_ps()
1436 uint64_t helper_float_addr_ps(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt1) in helper_float_addr_ps() argument
1445 fstl2 = float32_add(fstl0, fsth0, &env->active_fpu.fp_status); in helper_float_addr_ps()
1446 fsth2 = float32_add(fstl1, fsth1, &env->active_fpu.fp_status); in helper_float_addr_ps()
1447 update_fcr31(env, GETPC()); in helper_float_addr_ps()
1451 uint64_t helper_float_mulr_ps(CPUMIPSState *env, uint64_t fdt0, uint64_t fdt1) in helper_float_mulr_ps() argument
1460 fstl2 = float32_mul(fstl0, fsth0, &env->active_fpu.fp_status); in helper_float_mulr_ps()
1461 fsth2 = float32_mul(fstl1, fsth1, &env->active_fpu.fp_status); in helper_float_mulr_ps()
1462 update_fcr31(env, GETPC()); in helper_float_mulr_ps()
1467 uint32_t helper_float_max_s(CPUMIPSState *env, uint32_t fs, uint32_t ft) in helper_float_max_s() argument
1471 fdret = float32_maxnum(fs, ft, &env->active_fpu.fp_status); in helper_float_max_s()
1473 update_fcr31(env, GETPC()); in helper_float_max_s()
1477 uint64_t helper_float_max_d(CPUMIPSState *env, uint64_t fs, uint64_t ft) in helper_float_max_d() argument
1481 fdret = float64_maxnum(fs, ft, &env->active_fpu.fp_status); in helper_float_max_d()
1483 update_fcr31(env, GETPC()); in helper_float_max_d()
1487 uint32_t helper_float_maxa_s(CPUMIPSState *env, uint32_t fs, uint32_t ft) in helper_float_maxa_s() argument
1491 fdret = float32_maxnummag(fs, ft, &env->active_fpu.fp_status); in helper_float_maxa_s()
1493 update_fcr31(env, GETPC()); in helper_float_maxa_s()
1497 uint64_t helper_float_maxa_d(CPUMIPSState *env, uint64_t fs, uint64_t ft) in helper_float_maxa_d() argument
1501 fdret = float64_maxnummag(fs, ft, &env->active_fpu.fp_status); in helper_float_maxa_d()
1503 update_fcr31(env, GETPC()); in helper_float_maxa_d()
1507 uint32_t helper_float_min_s(CPUMIPSState *env, uint32_t fs, uint32_t ft) in helper_float_min_s() argument
1511 fdret = float32_minnum(fs, ft, &env->active_fpu.fp_status); in helper_float_min_s()
1513 update_fcr31(env, GETPC()); in helper_float_min_s()
1517 uint64_t helper_float_min_d(CPUMIPSState *env, uint64_t fs, uint64_t ft) in helper_float_min_d() argument
1521 fdret = float64_minnum(fs, ft, &env->active_fpu.fp_status); in helper_float_min_d()
1523 update_fcr31(env, GETPC()); in helper_float_min_d()
1527 uint32_t helper_float_mina_s(CPUMIPSState *env, uint32_t fs, uint32_t ft) in helper_float_mina_s() argument
1531 fdret = float32_minnummag(fs, ft, &env->active_fpu.fp_status); in helper_float_mina_s()
1533 update_fcr31(env, GETPC()); in helper_float_mina_s()
1537 uint64_t helper_float_mina_d(CPUMIPSState *env, uint64_t fs, uint64_t ft) in helper_float_mina_d() argument
1541 fdret = float64_minnummag(fs, ft, &env->active_fpu.fp_status); in helper_float_mina_d()
1543 update_fcr31(env, GETPC()); in helper_float_mina_d()
1550 uint64_t helper_float_madd_d(CPUMIPSState *env, uint64_t fst0, in helper_float_madd_d() argument
1553 fst0 = float64_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_madd_d()
1554 fst0 = float64_add(fst0, fst2, &env->active_fpu.fp_status); in helper_float_madd_d()
1556 update_fcr31(env, GETPC()); in helper_float_madd_d()
1560 uint32_t helper_float_madd_s(CPUMIPSState *env, uint32_t fst0, in helper_float_madd_s() argument
1563 fst0 = float32_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_madd_s()
1564 fst0 = float32_add(fst0, fst2, &env->active_fpu.fp_status); in helper_float_madd_s()
1566 update_fcr31(env, GETPC()); in helper_float_madd_s()
1570 uint64_t helper_float_madd_ps(CPUMIPSState *env, uint64_t fdt0, in helper_float_madd_ps() argument
1580 fstl0 = float32_mul(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_madd_ps()
1581 fstl0 = float32_add(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_madd_ps()
1582 fsth0 = float32_mul(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_madd_ps()
1583 fsth0 = float32_add(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_madd_ps()
1585 update_fcr31(env, GETPC()); in helper_float_madd_ps()
1589 uint64_t helper_float_msub_d(CPUMIPSState *env, uint64_t fst0, in helper_float_msub_d() argument
1592 fst0 = float64_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_msub_d()
1593 fst0 = float64_sub(fst0, fst2, &env->active_fpu.fp_status); in helper_float_msub_d()
1595 update_fcr31(env, GETPC()); in helper_float_msub_d()
1599 uint32_t helper_float_msub_s(CPUMIPSState *env, uint32_t fst0, in helper_float_msub_s() argument
1602 fst0 = float32_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_msub_s()
1603 fst0 = float32_sub(fst0, fst2, &env->active_fpu.fp_status); in helper_float_msub_s()
1605 update_fcr31(env, GETPC()); in helper_float_msub_s()
1609 uint64_t helper_float_msub_ps(CPUMIPSState *env, uint64_t fdt0, in helper_float_msub_ps() argument
1619 fstl0 = float32_mul(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_msub_ps()
1620 fstl0 = float32_sub(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_msub_ps()
1621 fsth0 = float32_mul(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_msub_ps()
1622 fsth0 = float32_sub(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_msub_ps()
1624 update_fcr31(env, GETPC()); in helper_float_msub_ps()
1628 uint64_t helper_float_nmadd_d(CPUMIPSState *env, uint64_t fst0, in helper_float_nmadd_d() argument
1631 fst0 = float64_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_nmadd_d()
1632 fst0 = float64_add(fst0, fst2, &env->active_fpu.fp_status); in helper_float_nmadd_d()
1635 update_fcr31(env, GETPC()); in helper_float_nmadd_d()
1639 uint32_t helper_float_nmadd_s(CPUMIPSState *env, uint32_t fst0, in helper_float_nmadd_s() argument
1642 fst0 = float32_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_nmadd_s()
1643 fst0 = float32_add(fst0, fst2, &env->active_fpu.fp_status); in helper_float_nmadd_s()
1646 update_fcr31(env, GETPC()); in helper_float_nmadd_s()
1650 uint64_t helper_float_nmadd_ps(CPUMIPSState *env, uint64_t fdt0, in helper_float_nmadd_ps() argument
1660 fstl0 = float32_mul(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_nmadd_ps()
1661 fstl0 = float32_add(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_nmadd_ps()
1663 fsth0 = float32_mul(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_nmadd_ps()
1664 fsth0 = float32_add(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_nmadd_ps()
1667 update_fcr31(env, GETPC()); in helper_float_nmadd_ps()
1671 uint64_t helper_float_nmsub_d(CPUMIPSState *env, uint64_t fst0, in helper_float_nmsub_d() argument
1674 fst0 = float64_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_nmsub_d()
1675 fst0 = float64_sub(fst0, fst2, &env->active_fpu.fp_status); in helper_float_nmsub_d()
1678 update_fcr31(env, GETPC()); in helper_float_nmsub_d()
1682 uint32_t helper_float_nmsub_s(CPUMIPSState *env, uint32_t fst0, in helper_float_nmsub_s() argument
1685 fst0 = float32_mul(fst0, fst1, &env->active_fpu.fp_status); in helper_float_nmsub_s()
1686 fst0 = float32_sub(fst0, fst2, &env->active_fpu.fp_status); in helper_float_nmsub_s()
1689 update_fcr31(env, GETPC()); in helper_float_nmsub_s()
1693 uint64_t helper_float_nmsub_ps(CPUMIPSState *env, uint64_t fdt0, in helper_float_nmsub_ps() argument
1703 fstl0 = float32_mul(fstl0, fstl1, &env->active_fpu.fp_status); in helper_float_nmsub_ps()
1704 fstl0 = float32_sub(fstl0, fstl2, &env->active_fpu.fp_status); in helper_float_nmsub_ps()
1706 fsth0 = float32_mul(fsth0, fsth1, &env->active_fpu.fp_status); in helper_float_nmsub_ps()
1707 fsth0 = float32_sub(fsth0, fsth2, &env->active_fpu.fp_status); in helper_float_nmsub_ps()
1710 update_fcr31(env, GETPC()); in helper_float_nmsub_ps()
1715 uint32_t helper_float_maddf_s(CPUMIPSState *env, uint32_t fs, in helper_float_maddf_s() argument
1721 &env->active_fpu.fp_status); in helper_float_maddf_s()
1723 update_fcr31(env, GETPC()); in helper_float_maddf_s()
1727 uint64_t helper_float_maddf_d(CPUMIPSState *env, uint64_t fs, in helper_float_maddf_d() argument
1733 &env->active_fpu.fp_status); in helper_float_maddf_d()
1735 update_fcr31(env, GETPC()); in helper_float_maddf_d()
1739 uint32_t helper_float_msubf_s(CPUMIPSState *env, uint32_t fs, in helper_float_msubf_s() argument
1745 &env->active_fpu.fp_status); in helper_float_msubf_s()
1747 update_fcr31(env, GETPC()); in helper_float_msubf_s()
1751 uint64_t helper_float_msubf_d(CPUMIPSState *env, uint64_t fs, in helper_float_msubf_d() argument
1757 &env->active_fpu.fp_status); in helper_float_msubf_d()
1759 update_fcr31(env, GETPC()); in helper_float_msubf_d()
1766 void helper_cmp_d_ ## op(CPUMIPSState *env, uint64_t fdt0, \
1771 update_fcr31(env, GETPC()); \
1773 SET_FP_COND(cc, env->active_fpu); \
1775 CLEAR_FP_COND(cc, env->active_fpu); \
1777 void helper_cmpabs_d_ ## op(CPUMIPSState *env, uint64_t fdt0, \
1784 update_fcr31(env, GETPC()); \
1786 SET_FP_COND(cc, env->active_fpu); \
1788 CLEAR_FP_COND(cc, env->active_fpu); \
1796 &env->active_fpu.fp_status), 0))
1798 &env->active_fpu.fp_status))
1800 &env->active_fpu.fp_status))
1802 &env->active_fpu.fp_status)
1804 &env->active_fpu.fp_status))
1806 &env->active_fpu.fp_status))
1808 &env->active_fpu.fp_status)
1810 &env->active_fpu.fp_status))
1812 &env->active_fpu.fp_status))
1814 &env->active_fpu.fp_status)
1816 &env->active_fpu.fp_status))
1822 &env->active_fpu.fp_status), 0))
1824 &env->active_fpu.fp_status))
1826 &env->active_fpu.fp_status))
1828 &env->active_fpu.fp_status)
1830 &env->active_fpu.fp_status))
1832 &env->active_fpu.fp_status))
1834 &env->active_fpu.fp_status)
1836 &env->active_fpu.fp_status))
1838 &env->active_fpu.fp_status))
1840 &env->active_fpu.fp_status)
1842 &env->active_fpu.fp_status))
1845 void helper_cmp_s_ ## op(CPUMIPSState *env, uint32_t fst0, \
1850 update_fcr31(env, GETPC()); \
1852 SET_FP_COND(cc, env->active_fpu); \
1854 CLEAR_FP_COND(cc, env->active_fpu); \
1856 void helper_cmpabs_s_ ## op(CPUMIPSState *env, uint32_t fst0, \
1863 update_fcr31(env, GETPC()); \
1865 SET_FP_COND(cc, env->active_fpu); \
1867 CLEAR_FP_COND(cc, env->active_fpu); \
1875 &env->active_fpu.fp_status), 0))
1877 &env->active_fpu.fp_status))
1879 &env->active_fpu.fp_status))
1881 &env->active_fpu.fp_status)
1883 &env->active_fpu.fp_status))
1885 &env->active_fpu.fp_status))
1887 &env->active_fpu.fp_status)
1889 &env->active_fpu.fp_status))
1891 &env->active_fpu.fp_status))
1893 &env->active_fpu.fp_status)
1895 &env->active_fpu.fp_status))
1901 &env->active_fpu.fp_status), 0))
1903 &env->active_fpu.fp_status))
1905 &env->active_fpu.fp_status))
1907 &env->active_fpu.fp_status)
1909 &env->active_fpu.fp_status))
1911 &env->active_fpu.fp_status))
1913 &env->active_fpu.fp_status)
1915 &env->active_fpu.fp_status))
1917 &env->active_fpu.fp_status))
1919 &env->active_fpu.fp_status)
1921 &env->active_fpu.fp_status))
1924 void helper_cmp_ps_ ## op(CPUMIPSState *env, uint64_t fdt0, \
1935 update_fcr31(env, GETPC()); \
1937 SET_FP_COND(cc, env->active_fpu); \
1939 CLEAR_FP_COND(cc, env->active_fpu); \
1941 SET_FP_COND(cc + 1, env->active_fpu); \
1943 CLEAR_FP_COND(cc + 1, env->active_fpu); \
1945 void helper_cmpabs_ps_ ## op(CPUMIPSState *env, uint64_t fdt0, \
1956 update_fcr31(env, GETPC()); \
1958 SET_FP_COND(cc, env->active_fpu); \
1960 CLEAR_FP_COND(cc, env->active_fpu); \
1962 SET_FP_COND(cc + 1, env->active_fpu); \
1964 CLEAR_FP_COND(cc + 1, env->active_fpu); \
1972 &env->active_fpu.fp_status), 0),
1974 &env->active_fpu.fp_status), 0))
1976 &env->active_fpu.fp_status),
1978 &env->active_fpu.fp_status))
1980 &env->active_fpu.fp_status),
1982 &env->active_fpu.fp_status))
1984 &env->active_fpu.fp_status)
1986 &env->active_fpu.fp_status),
1988 &env->active_fpu.fp_status)
1990 &env->active_fpu.fp_status))
1992 &env->active_fpu.fp_status),
1994 &env->active_fpu.fp_status))
1996 &env->active_fpu.fp_status)
1998 &env->active_fpu.fp_status),
2000 &env->active_fpu.fp_status)
2002 &env->active_fpu.fp_status))
2004 &env->active_fpu.fp_status),
2006 &env->active_fpu.fp_status))
2008 &env->active_fpu.fp_status)
2010 &env->active_fpu.fp_status),
2012 &env->active_fpu.fp_status)
2014 &env->active_fpu.fp_status))
2020 &env->active_fpu.fp_status), 0),
2022 &env->active_fpu.fp_status), 0))
2024 &env->active_fpu.fp_status),
2026 &env->active_fpu.fp_status))
2028 &env->active_fpu.fp_status),
2030 &env->active_fpu.fp_status))
2032 &env->active_fpu.fp_status)
2034 &env->active_fpu.fp_status),
2036 &env->active_fpu.fp_status)
2038 &env->active_fpu.fp_status))
2040 &env->active_fpu.fp_status),
2042 &env->active_fpu.fp_status))
2044 &env->active_fpu.fp_status)
2046 &env->active_fpu.fp_status),
2048 &env->active_fpu.fp_status)
2050 &env->active_fpu.fp_status))
2052 &env->active_fpu.fp_status),
2054 &env->active_fpu.fp_status))
2056 &env->active_fpu.fp_status)
2058 &env->active_fpu.fp_status),
2060 &env->active_fpu.fp_status)
2062 &env->active_fpu.fp_status))
2066 uint64_t helper_r6_cmp_d_ ## op(CPUMIPSState *env, uint64_t fdt0, \
2071 update_fcr31(env, GETPC()); \
2084 &env->active_fpu.fp_status), 0))
2086 &env->active_fpu.fp_status)))
2088 &env->active_fpu.fp_status)))
2090 &env->active_fpu.fp_status)
2092 &env->active_fpu.fp_status)))
2094 &env->active_fpu.fp_status)))
2096 &env->active_fpu.fp_status)
2098 &env->active_fpu.fp_status)))
2100 &env->active_fpu.fp_status)))
2102 &env->active_fpu.fp_status)
2104 &env->active_fpu.fp_status)))
2110 &env->active_fpu.fp_status), 0))
2112 &env->active_fpu.fp_status)))
2114 &env->active_fpu.fp_status)))
2116 &env->active_fpu.fp_status)
2118 &env->active_fpu.fp_status)))
2120 &env->active_fpu.fp_status)))
2122 &env->active_fpu.fp_status)
2124 &env->active_fpu.fp_status)))
2126 &env->active_fpu.fp_status)))
2128 &env->active_fpu.fp_status)
2130 &env->active_fpu.fp_status)))
2132 &env->active_fpu.fp_status)
2134 &env->active_fpu.fp_status)))
2136 &env->active_fpu.fp_status)
2138 &env->active_fpu.fp_status)
2140 &env->active_fpu.fp_status)))
2142 &env->active_fpu.fp_status)
2144 &env->active_fpu.fp_status)))
2146 &env->active_fpu.fp_status)
2148 &env->active_fpu.fp_status)))
2150 &env->active_fpu.fp_status)
2152 &env->active_fpu.fp_status)
2154 &env->active_fpu.fp_status)))
2156 &env->active_fpu.fp_status)
2158 &env->active_fpu.fp_status)))
2161 uint32_t helper_r6_cmp_s_ ## op(CPUMIPSState *env, uint32_t fst0, \
2166 update_fcr31(env, GETPC()); \
2179 &env->active_fpu.fp_status), 0))
2181 &env->active_fpu.fp_status)))
2183 &env->active_fpu.fp_status)))
2185 &env->active_fpu.fp_status)
2187 &env->active_fpu.fp_status)))
2189 &env->active_fpu.fp_status)))
2191 &env->active_fpu.fp_status)
2193 &env->active_fpu.fp_status)))
2195 &env->active_fpu.fp_status)))
2197 &env->active_fpu.fp_status)
2199 &env->active_fpu.fp_status)))
2205 &env->active_fpu.fp_status), 0))
2207 &env->active_fpu.fp_status)))
2209 &env->active_fpu.fp_status)))
2211 &env->active_fpu.fp_status)
2213 &env->active_fpu.fp_status)))
2215 &env->active_fpu.fp_status)))
2217 &env->active_fpu.fp_status)
2219 &env->active_fpu.fp_status)))
2221 &env->active_fpu.fp_status)))
2223 &env->active_fpu.fp_status)
2225 &env->active_fpu.fp_status)))
2227 &env->active_fpu.fp_status)
2229 &env->active_fpu.fp_status)))
2231 &env->active_fpu.fp_status)
2233 &env->active_fpu.fp_status)
2235 &env->active_fpu.fp_status)))
2237 &env->active_fpu.fp_status)
2239 &env->active_fpu.fp_status)))
2241 &env->active_fpu.fp_status)
2243 &env->active_fpu.fp_status)))
2245 &env->active_fpu.fp_status)
2247 &env->active_fpu.fp_status)
2249 &env->active_fpu.fp_status)))
2251 &env->active_fpu.fp_status)
2253 &env->active_fpu.fp_status)))