Home
last modified time | relevance | path

Searched refs:fp_status (Results 1 – 25 of 72) sorted by relevance

123

/openbmc/qemu/target/mips/tcg/
H A Dfpu_helper.c173 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 Dfpu_helper.c32 &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 Dfpu_helper.c62 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 Dfpu_helper.c60 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 Dop_helper.c209 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 Dfpu_helper.c29 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 Dfpu_helper.c47 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 Dfop_helper.c50 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 Dfpu_helper.c115 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 Dop_helper.c149 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 Darch.c198 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 Dop_helper.c325 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 Dfma_emu.c392 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 Dfpu_helper.c59 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 Dfpu_helper.c42 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 Dhelper.c103 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 Dfpa11_cprt.c85 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 Dextended_cpdo.c56 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 Ddouble_cpdo.c56 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 Dfpa11_cpdo.c79 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 Dsingle_cpdo.c79 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 Dfpa11.c71 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 Dfpu_helper.c448 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 Dvfp_helper.c66 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 Dfpu_helper.h19 &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()

123