/openbmc/qemu/target/mips/tcg/ |
H A D | fpu_helper.c | 173 set_float_exception_flags(0, &env->active_fpu.fp_status); in helper_ctc1() 206 &env->active_fpu.fp_status); in update_fcr31() 216 set_float_exception_flags(0, &env->active_fpu.fp_status); in update_fcr31() 236 fdt0 = float64_sqrt(fdt0, &env->active_fpu.fp_status); in helper_float_sqrt_d() 243 fst0 = float32_sqrt(fst0, &env->active_fpu.fp_status); in helper_float_sqrt_s() 252 fdt2 = float32_to_float64(fst0, &env->active_fpu.fp_status); in helper_float_cvtd_s() 261 fdt2 = int32_to_float64(wt0, &env->active_fpu.fp_status); in helper_float_cvtd_w() 270 fdt2 = int64_to_float64(dt0, &env->active_fpu.fp_status); in helper_float_cvtd_l() 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() [all …]
|
/openbmc/qemu/target/loongarch/tcg/ |
H A D | fpu_helper.c | 32 &env->fp_status); in restore_fp_status() 33 set_flush_to_zero(0, &env->fp_status); in restore_fp_status() 34 set_float_2nan_prop_rule(float_2nan_prop_s_ab, &env->fp_status); in restore_fp_status() 60 int flags = get_float_exception_flags(&env->fp_status); in update_fcsr0_mask() 62 set_float_exception_flags(0, &env->fp_status); in update_fcsr0_mask() 90 fd = nanbox_s(float32_add((uint32_t)fj, (uint32_t)fk, &env->fp_status)); in helper_fadd_s() 99 fd = float64_add(fj, fk, &env->fp_status); in helper_fadd_d() 108 fd = nanbox_s(float32_sub((uint32_t)fj, (uint32_t)fk, &env->fp_status)); in helper_fsub_s() 117 fd = float64_sub(fj, fk, &env->fp_status); in helper_fsub_d() 126 fd = nanbox_s(float32_mul((uint32_t)fj, (uint32_t)fk, &env->fp_status)); in helper_fmul_s() [all …]
|
/openbmc/qemu/target/xtensa/ |
H A D | fpu_helper.c | 62 set_use_first_nan(use_first, &env->fp_status); in xtensa_use_first_nan() 64 &env->fp_status); in xtensa_use_first_nan() 77 set_float_rounding_mode(rounding_mode[v & 3], &env->fp_status); in HELPER() 94 set_float_rounding_mode(rounding_mode[v & 3], &env->fp_status); in HELPER() 113 set_float_exception_flags(fef, &env->fp_status); in HELPER() 119 int fef = get_float_exception_flags(&env->fp_status); in HELPER() 153 return float32_add(a, b, &env->fp_status); in HELPER() 158 return float32_sub(a, b, &env->fp_status); in HELPER() 163 return float32_mul(a, b, &env->fp_status); in HELPER() 169 return float32_muladd(b, c, a, 0, &env->fp_status); in HELPER() [all …]
|
/openbmc/qemu/target/m68k/ |
H A D | fpu_helper.c | 60 return floatx80_to_int32(val->d, &env->fp_status); in HELPER() 65 return floatx80_to_float32(val->d, &env->fp_status); in HELPER() 70 res->d = int32_to_floatx80(val, &env->fp_status); in HELPER() 75 res->d = float32_to_floatx80(val, &env->fp_status); in HELPER() 80 res->d = float64_to_floatx80(val, &env->fp_status); in HELPER() 85 return floatx80_to_float64(val->d, &env->fp_status); in HELPER() 90 res->d = floatx80_round_to_int(val->d, &env->fp_status); in HELPER() 97 set_floatx80_rounding_precision(floatx80_precision_x, &env->fp_status); in m68k_restore_precision_mode() 100 set_floatx80_rounding_precision(floatx80_precision_s, &env->fp_status); in m68k_restore_precision_mode() 103 set_floatx80_rounding_precision(floatx80_precision_d, &env->fp_status); in m68k_restore_precision_mode() [all …]
|
/openbmc/qemu/target/sh4/ |
H A D | op_helper.c | 209 set_float_rounding_mode(float_round_to_zero, &env->fp_status); in helper_ld_fpscr() 211 set_float_rounding_mode(float_round_nearest_even, &env->fp_status); in helper_ld_fpscr() 213 set_flush_to_zero((val & FPSCR_DN) != 0, &env->fp_status); in helper_ld_fpscr() 220 xcpt = get_float_exception_flags(&env->fp_status); in update_fpscr() 257 set_float_exception_flags(0, &env->fp_status); in helper_fadd_FT() 258 t0 = float32_add(t0, t1, &env->fp_status); in helper_fadd_FT() 265 set_float_exception_flags(0, &env->fp_status); in helper_fadd_DT() 266 t0 = float64_add(t0, t1, &env->fp_status); in helper_fadd_DT() 275 set_float_exception_flags(0, &env->fp_status); in helper_fcmp_eq_FT() 276 relation = float32_compare(t0, t1, &env->fp_status); in helper_fcmp_eq_FT() [all …]
|
/openbmc/qemu/target/riscv/ |
H A D | fpu_helper.c | 29 int soft = get_float_exception_flags(&env->fp_status); in riscv_cpu_get_fflags() 51 set_float_exception_flags(soft, &env->fp_status); in riscv_cpu_set_fflags() 81 set_float_rounding_mode(softrm, &env->fp_status); in helper_set_rounding_mode() 118 set_float_rounding_mode(softrm, &env->fp_status); in helper_set_rounding_mode_chkfrm() 128 &env->fp_status)); in do_fmadd_h() 138 &env->fp_status)); in do_fmadd_s() 150 return float64_muladd(frs1, frs2, frs3, 0, &env->fp_status); in helper_fmadd_d() 169 &env->fp_status); in helper_fmsub_d() 188 &env->fp_status); in helper_fnmsub_d() 208 float_muladd_negate_product, &env->fp_status); in helper_fnmadd_d() [all …]
|
/openbmc/qemu/target/hppa/ |
H A D | fpu_helper.c | 47 set_float_rounding_mode(rm, &env->fp_status); in HELPER() 50 set_flush_to_zero(d, &env->fp_status); in HELPER() 51 set_flush_inputs_to_zero(d, &env->fp_status); in HELPER() 57 set_float_2nan_prop_rule(float_2nan_prop_s_ab, &env->fp_status); in HELPER() 72 uint32_t soft_exp = get_float_exception_flags(&env->fp_status); in update_fr0_op() 80 set_float_exception_flags(0, &env->fp_status); in update_fr0_op() 98 float32 ret = float32_sqrt(arg, &env->fp_status); in HELPER() 105 float32 ret = float32_round_to_int(arg, &env->fp_status); in HELPER() 112 float32 ret = float32_add(a, b, &env->fp_status); in HELPER() 119 float32 ret = float32_sub(a, b, &env->fp_status); in HELPER() [all …]
|
/openbmc/qemu/target/sparc/ |
H A D | fop_helper.c | 50 target_ulong status = get_float_exception_flags(&env->fp_status); in check_ieee_exceptions() 55 set_float_exception_flags(0, &env->fp_status); in check_ieee_exceptions() 90 float32 ret = float32_add(src1, src2, &env->fp_status); in helper_fadds() 97 float32 ret = float32_sub(src1, src2, &env->fp_status); in helper_fsubs() 104 float32 ret = float32_mul(src1, src2, &env->fp_status); in helper_fmuls() 111 float32 ret = float32_div(src1, src2, &env->fp_status); in helper_fdivs() 118 float64 ret = float64_add(src1, src2, &env->fp_status); in helper_faddd() 125 float64 ret = float64_sub(src1, src2, &env->fp_status); in helper_fsubd() 132 float64 ret = float64_mul(src1, src2, &env->fp_status); in helper_fmuld() 139 float64 ret = float64_div(src1, src2, &env->fp_status); in helper_fdivd() [all …]
|
/openbmc/qemu/target/i386/tcg/ |
H A D | fpu_helper.c | 115 u.f64 = floatx80_to_float64(a, &env->fp_status); in floatx80_to_double() 127 return float64_to_floatx80(u.f64, &env->fp_status); in double_to_floatx80() 159 set_float_2nan_prop_rule(float_2nan_prop_x87, &env->fp_status); in cpu_init_fp_statuses() 180 uint8_t old_flags = get_float_exception_flags(&env->fp_status); in save_exception_flags() 181 set_float_exception_flags(0, &env->fp_status); in save_exception_flags() 187 uint8_t new_flags = get_float_exception_flags(&env->fp_status); in merge_exception_flags() 188 float_raise(old_flags, &env->fp_status); in merge_exception_flags() 201 floatx80 ret = floatx80_div(a, b, &env->fp_status); in helper_fdiv() 227 FT0 = float32_to_floatx80(u.f, &env->fp_status); in helper_flds_FT0() 240 FT0 = float64_to_floatx80(u.f, &env->fp_status); in helper_fldl_FT0() [all …]
|
/openbmc/qemu/target/microblaze/ |
H A D | op_helper.c | 149 set_float_exception_flags(0, &env->fp_status); in helper_fadd() 152 fd.f = float32_add(fa.f, fb.f, &env->fp_status); in helper_fadd() 154 flags = get_float_exception_flags(&env->fp_status); in helper_fadd() 164 set_float_exception_flags(0, &env->fp_status); in helper_frsub() 167 fd.f = float32_sub(fb.f, fa.f, &env->fp_status); in helper_frsub() 168 flags = get_float_exception_flags(&env->fp_status); in helper_frsub() 178 set_float_exception_flags(0, &env->fp_status); in helper_fmul() 181 fd.f = float32_mul(fa.f, fb.f, &env->fp_status); in helper_fmul() 182 flags = get_float_exception_flags(&env->fp_status); in helper_fmul() 193 set_float_exception_flags(0, &env->fp_status); in helper_fdiv() [all …]
|
/openbmc/qemu/target/hexagon/ |
H A D | arch.c | 198 set_float_exception_flags(0, &env->fp_status); in arch_fpop_start() 201 &env->fp_status); in arch_fpop_start() 228 int flags = get_float_exception_flags(&env->fp_status); in arch_fpop_end() 239 float_status *fp_status) in arch_sf_recip_common() argument 250 float_raise(float_flag_invalid, fp_status); in arch_sf_recip_common() 255 float_raise(float_flag_invalid, fp_status); in arch_sf_recip_common() 261 float_raise(float_flag_invalid, fp_status); in arch_sf_recip_common() 267 float_raise(float_flag_invalid, fp_status); in arch_sf_recip_common() 271 float_raise(float_flag_invalid, fp_status); in arch_sf_recip_common() 278 float_raise(float_flag_divbyzero, fp_status); in arch_sf_recip_common() [all …]
|
H A D | op_helper.c | 325 if (arch_sf_recip_common(&RsV, &RtV, &RdV, &adjust, &env->fp_status)) { in HELPER() 346 if (arch_sf_invsqrt_common(&RsV, &RdV, &adjust, &env->fp_status)) { in HELPER() 595 out_f64 = float32_to_float64(RsV, &env->fp_status); in HELPER() 604 out_f32 = float64_to_float32(RssV, &env->fp_status); in HELPER() 613 RdV = uint32_to_float32(RsV, &env->fp_status); in HELPER() 622 RddV = uint32_to_float64(RsV, &env->fp_status); in HELPER() 631 RdV = int32_to_float32(RsV, &env->fp_status); in HELPER() 640 RddV = int32_to_float64(RsV, &env->fp_status); in HELPER() 649 RdV = uint64_to_float32(RssV, &env->fp_status); in HELPER() 658 RddV = uint64_to_float64(RssV, &env->fp_status); in HELPER() [all …]
|
H A D | fma_emu.c | 392 static SUFFIX accum_round_##SUFFIX(Accum a, float_status * fp_status) \ 397 switch (fp_status->float_rounding_mode) { \ 436 float_raise(float_flag_underflow, fp_status); \ 441 float_raise(float_flag_inexact, fp_status); \ 442 switch (fp_status->float_rounding_mode) { \ 479 float_raise(float_flag_overflow, fp_status); \ 480 float_raise(float_flag_inexact, fp_status); \ 481 switch (fp_status->float_rounding_mode) { \ 530 float_status *fp_status) in special_fma() argument 544 float_raise(float_flag_invalid, fp_status); in special_fma() [all …]
|
/openbmc/qemu/target/openrisc/ |
H A D | fpu_helper.c | 59 int tmp = get_float_exception_flags(&env->fp_status); in HELPER() 62 set_float_exception_flags(0, &env->fp_status); in HELPER() 83 set_float_rounding_mode(rm_to_sf[extract32(val, 1, 2)], &env->fp_status); in cpu_set_fpcsr() 88 return int64_to_float64(val, &env->fp_status); in HELPER() 93 return int32_to_float32(val, &env->fp_status); in HELPER() 98 return float64_to_int64_round_to_zero(val, &env->fp_status); in HELPER() 103 return float32_to_int32_round_to_zero(val, &env->fp_status); in HELPER() 108 return float32_to_float64(val, &env->fp_status); in HELPER() 113 return float64_to_float32(val, &env->fp_status); in HELPER() 119 { return float64_ ## name(fdt0, fdt1, &env->fp_status); } \ [all …]
|
/openbmc/qemu/target/tricore/ |
H A D | fpu_helper.c | 42 return get_float_exception_flags(&env->fp_status) in f_get_excp_flags() 90 set_float_exception_flags(0, &env->fp_status); in f_update_psw_flags() 128 f_result = float32_##op(arg2, arg1, &env->fp_status); \ 154 f_result = float32_mul(arg1, arg2, &env->fp_status); in FADD_SUB() 243 if (float32_is_signaling_nan(arg1, &env->fp_status) in helper_qseed() 261 f_result = float32_div(arg1, arg2 , &env->fp_status); in helper_fdiv() 289 f_result = float32_muladd(arg1, arg2, arg3, 0, &env->fp_status); in helper_fmadd() 294 arg1 = float32_squash_input_denormal(arg1, &env->fp_status); in helper_fmadd() 295 arg2 = float32_squash_input_denormal(arg2, &env->fp_status); in helper_fmadd() 296 arg3 = float32_squash_input_denormal(arg3, &env->fp_status); in helper_fmadd() [all …]
|
H A D | helper.c | 103 set_float_rounding_mode(float_round_nearest_even, &env->fp_status); in fpu_set_state() 106 set_float_rounding_mode(float_round_up, &env->fp_status); in fpu_set_state() 109 set_float_rounding_mode(float_round_down, &env->fp_status); in fpu_set_state() 112 set_float_rounding_mode(float_round_to_zero, &env->fp_status); in fpu_set_state() 116 set_flush_inputs_to_zero(1, &env->fp_status); in fpu_set_state() 117 set_flush_to_zero(1, &env->fp_status); in fpu_set_state() 118 set_float_detect_tininess(float_tininess_before_rounding, &env->fp_status); in fpu_set_state() 119 set_default_nan_mode(1, &env->fp_status); in fpu_set_state()
|
/openbmc/qemu/linux-user/arm/nwfpe/ |
H A D | fpa11_cprt.c | 85 int32_to_float32(readRegister(getRd(opcode)), &fpa11->fp_status); in PerformFLT() 93 int32_to_float64(readRegister(getRd(opcode)), &fpa11->fp_status); in PerformFLT() 101 int32_to_floatx80(readRegister(getRd(opcode)), &fpa11->fp_status); in PerformFLT() 124 float32_to_int32(fpa11->fpreg[Fn].fSingle, &fpa11->fp_status)); in PerformFIX() 132 float64_to_int32(fpa11->fpreg[Fn].fDouble, &fpa11->fp_status)); in PerformFIX() 139 floatx80_to_int32(fpa11->fpreg[Fn].fExtended, &fpa11->fp_status)); in PerformFIX() 157 if (floatx80_lt(Fn,Fm, &fpa11->fp_status)) in PerformComparisonOperation() 163 if (floatx80_eq_quiet(Fn,Fm, &fpa11->fp_status)) in PerformComparisonOperation() 169 if (floatx80_lt(Fm,Fn, &fpa11->fp_status)) in PerformComparisonOperation() 205 rFn = float32_to_floatx80(fpa11->fpreg[Fn].fSingle, &fpa11->fp_status); in PerformComparison() [all …]
|
H A D | extended_cpdo.c | 56 rFm = float32_to_floatx80(fpa11->fpreg[Fm].fSingle, &fpa11->fp_status); in ExtendedCPDO() 60 rFm = float64_to_floatx80(fpa11->fpreg[Fm].fDouble, &fpa11->fp_status); in ExtendedCPDO() 77 rFn = float32_to_floatx80(fpa11->fpreg[Fn].fSingle, &fpa11->fp_status); in ExtendedCPDO() 81 rFn = float64_to_floatx80(fpa11->fpreg[Fn].fDouble, &fpa11->fp_status); in ExtendedCPDO() 97 fpa11->fpreg[Fd].fExtended = floatx80_add(rFn,rFm, &fpa11->fp_status); in ExtendedCPDO() 102 fpa11->fpreg[Fd].fExtended = floatx80_mul(rFn,rFm, &fpa11->fp_status); in ExtendedCPDO() 106 fpa11->fpreg[Fd].fExtended = floatx80_sub(rFn,rFm, &fpa11->fp_status); in ExtendedCPDO() 110 fpa11->fpreg[Fd].fExtended = floatx80_sub(rFm,rFn, &fpa11->fp_status); in ExtendedCPDO() 115 fpa11->fpreg[Fd].fExtended = floatx80_div(rFn,rFm, &fpa11->fp_status); in ExtendedCPDO() 120 fpa11->fpreg[Fd].fExtended = floatx80_div(rFm,rFn, &fpa11->fp_status); in ExtendedCPDO() [all …]
|
H A D | double_cpdo.c | 56 rFm = float32_to_float64(fpa11->fpreg[Fm].fSingle, &fpa11->fp_status); in DoubleCPDO() 82 rFn = float32_to_float64(fpa11->fpreg[Fn].fSingle, &fpa11->fp_status); in DoubleCPDO() 99 fpa11->fpreg[Fd].fDouble = float64_add(rFn,rFm, &fpa11->fp_status); in DoubleCPDO() 104 fpa11->fpreg[Fd].fDouble = float64_mul(rFn,rFm, &fpa11->fp_status); in DoubleCPDO() 108 fpa11->fpreg[Fd].fDouble = float64_sub(rFn,rFm, &fpa11->fp_status); in DoubleCPDO() 112 fpa11->fpreg[Fd].fDouble = float64_sub(rFm,rFn, &fpa11->fp_status); in DoubleCPDO() 117 fpa11->fpreg[Fd].fDouble = float64_div(rFn,rFm, &fpa11->fp_status); in DoubleCPDO() 122 fpa11->fpreg[Fd].fDouble = float64_div(rFm,rFn, &fpa11->fp_status); in DoubleCPDO() 136 fpa11->fpreg[Fd].fDouble = float64_rem(rFn,rFm, &fpa11->fp_status); in DoubleCPDO() 176 fpa11->fpreg[Fd].fDouble = float64_round_to_int(rFm, &fpa11->fp_status); in DoubleCPDO() [all …]
|
H A D | fpa11_cpdo.c | 79 float64_to_float32(fpa11->fpreg[Fd].fDouble, &fpa11->fp_status); in EmulateCPDO() 82 floatx80_to_float32(fpa11->fpreg[Fd].fExtended, &fpa11->fp_status); in EmulateCPDO() 90 float32_to_float64(fpa11->fpreg[Fd].fSingle, &fpa11->fp_status); in EmulateCPDO() 93 floatx80_to_float64(fpa11->fpreg[Fd].fExtended, &fpa11->fp_status); in EmulateCPDO() 101 float32_to_floatx80(fpa11->fpreg[Fd].fSingle, &fpa11->fp_status); in EmulateCPDO() 104 float64_to_floatx80(fpa11->fpreg[Fd].fDouble, &fpa11->fp_status); in EmulateCPDO()
|
H A D | single_cpdo.c | 79 fpa11->fpreg[Fd].fSingle = float32_add(rFn,rFm, &fpa11->fp_status); in SingleCPDO() 84 fpa11->fpreg[Fd].fSingle = float32_mul(rFn,rFm, &fpa11->fp_status); in SingleCPDO() 88 fpa11->fpreg[Fd].fSingle = float32_sub(rFn,rFm, &fpa11->fp_status); in SingleCPDO() 92 fpa11->fpreg[Fd].fSingle = float32_sub(rFm,rFn, &fpa11->fp_status); in SingleCPDO() 97 fpa11->fpreg[Fd].fSingle = float32_div(rFn,rFm, &fpa11->fp_status); in SingleCPDO() 102 fpa11->fpreg[Fd].fSingle = float32_div(rFm,rFn, &fpa11->fp_status); in SingleCPDO() 116 fpa11->fpreg[Fd].fSingle = float32_rem(rFn,rFm, &fpa11->fp_status); in SingleCPDO() 140 fpa11->fpreg[Fd].fSingle = float32_round_to_int(rFm, &fpa11->fp_status); in SingleCPDO() 144 fpa11->fpreg[Fd].fSingle = float32_sqrt(rFm, &fpa11->fp_status); in SingleCPDO()
|
H A D | fpa11.c | 71 set_float_2nan_prop_rule(float_2nan_prop_s_ab, &fpa11->fp_status); in resetFPA11() 113 set_float_rounding_mode(rounding_mode, &fpa11->fp_status); in SetRoundingMode() 149 set_floatx80_rounding_precision(rounding_precision, &fpa11->fp_status); in SetRoundingPrecision() 187 set_float_exception_flags(0, &fpa11->fp_status); in EmulateAll() 218 if(nRc == 1 && get_float_exception_flags(&fpa11->fp_status)) in EmulateAll() 221 nRc = -get_float_exception_flags(&fpa11->fp_status); in EmulateAll()
|
/openbmc/qemu/target/ppc/ |
H A D | fpu_helper.c | 448 int status = get_float_exception_flags(&env->fp_status); in do_float_check_status() 480 set_float_exception_flags(0, &env->fp_status); in helper_reset_fpstatus() 559 uint64_t ret = float64_to_##cvt(arg, &env->fp_status); \ 560 int flags = get_float_exception_flags(&env->fp_status); \ 582 float32 tmp = cvtr(arg, &env->fp_status); \ 583 farg.d = float32_to_float64(tmp, &env->fp_status); \ 585 farg.d = cvtr(arg, &env->fp_status); \ 599 FloatRoundMode old_rounding_mode = get_float_rounding_mode(&env->fp_status); in do_fri() 602 set_float_rounding_mode(rounding_mode, &env->fp_status); in do_fri() 603 arg = float64_round_to_int(arg, &env->fp_status); in do_fri() [all …]
|
/openbmc/qemu/target/arm/ |
H A D | vfp_helper.c | 66 i = get_float_exception_flags(&env->vfp.fp_status); in vfp_get_fpsr_from_host() 83 set_float_exception_flags(0, &env->vfp.fp_status); in vfp_clear_float_status_exc_flags() 111 set_float_rounding_mode(i, &env->vfp.fp_status); in vfp_set_fpcr_to_host() 123 set_flush_to_zero(ftz_enabled, &env->vfp.fp_status); in vfp_set_fpcr_to_host() 124 set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status); in vfp_set_fpcr_to_host() 128 set_default_nan_mode(dnan_enabled, &env->vfp.fp_status); in vfp_set_fpcr_to_host() 324 return float32_sqrt(a, &env->vfp.fp_status); in VFP_HELPER() 329 return float64_sqrt(a, &env->vfp.fp_status); in VFP_HELPER() 367 DO_VFP_cmp(s, float32, float32, fp_status) in DO_VFP_cmp() 368 DO_VFP_cmp(d, float64, float64, fp_status) in DO_VFP_cmp() [all …]
|
/openbmc/qemu/target/mips/ |
H A D | fpu_helper.h | 19 &env->active_fpu.fp_status); in restore_rounding_mode() 25 &env->active_fpu.fp_status); in restore_flush_mode() 36 set_snan_bit_is_one(!nan2008, &env->active_fpu.fp_status); in restore_snan_bit_mode() 37 set_default_nan_mode(!nan2008, &env->active_fpu.fp_status); in restore_snan_bit_mode() 66 &env->active_fpu.fp_status); in fp_reset()
|