Lines Matching refs:significand
45 .significand = VFP_DOUBLE_SIGNIFICAND_QNAN,
51 str, d->sign != 0, d->exponent, d->significand); in vfp_double_dump()
56 int bits = 31 - fls(vd->significand >> 32); in vfp_double_normalise_denormal()
58 bits = 63 - fls(vd->significand); in vfp_double_normalise_denormal()
64 vd->significand <<= bits; in vfp_double_normalise_denormal()
72 u64 significand, incr; in vfp_double_normaliseround() local
81 if (vd->exponent == 2047 && (vd->significand == 0 || exceptions)) in vfp_double_normaliseround()
87 if (vd->significand == 0) { in vfp_double_normaliseround()
93 significand = vd->significand; in vfp_double_normaliseround()
95 shift = 32 - fls(significand >> 32); in vfp_double_normaliseround()
97 shift = 64 - fls(significand); in vfp_double_normaliseround()
100 significand <<= shift; in vfp_double_normaliseround()
105 vd->significand = significand; in vfp_double_normaliseround()
114 significand = vfp_shiftright64jamming(significand, -exponent); in vfp_double_normaliseround()
118 vd->significand = significand; in vfp_double_normaliseround()
121 if (!(significand & ((1ULL << (VFP_DOUBLE_LOW_BITS + 1)) - 1))) in vfp_double_normaliseround()
133 if ((significand & (1ULL << (VFP_DOUBLE_LOW_BITS + 1))) == 0) in vfp_double_normaliseround()
145 if ((significand + incr) < significand) { in vfp_double_normaliseround()
147 significand = (significand >> 1) | (significand & 1); in vfp_double_normaliseround()
151 vd->significand = significand; in vfp_double_normaliseround()
160 if (significand & ((1 << (VFP_DOUBLE_LOW_BITS + 1)) - 1)) in vfp_double_normaliseround()
166 significand += incr; in vfp_double_normaliseround()
175 vd->significand = 0x7fffffffffffffffULL; in vfp_double_normaliseround()
178 vd->significand = 0; in vfp_double_normaliseround()
181 if (significand >> (VFP_DOUBLE_LOW_BITS + 1) == 0) in vfp_double_normaliseround()
183 if (exponent || significand > 0x8000000000000000ULL) in vfp_double_normaliseround()
188 vd->significand = significand >> 1; in vfp_double_normaliseround()
236 nan->significand |= VFP_DOUBLE_SIGNIFICAND_QNAN; in vfp_propagate_nan()
318 vdd.significand = (u64)vfp_estimate_sqrt_significand(vdm.exponent, vdm.significand >> 32) << 31; in vfp_double_fsqrt()
322 vdm.significand >>= 1 + (vdm.exponent & 1); in vfp_double_fsqrt()
323 vdd.significand += 2 + vfp_estimate_div128to64(vdm.significand, 0, vdd.significand); in vfp_double_fsqrt()
330 if ((vdd.significand & VFP_DOUBLE_LOW_BITS_MASK) <= 5) { in vfp_double_fsqrt()
331 if (vdd.significand < 2) { in vfp_double_fsqrt()
332 vdd.significand = ~0ULL; in vfp_double_fsqrt()
335 vdm.significand <<= 2; in vfp_double_fsqrt()
336 mul64to128(&termh, &terml, vdd.significand, vdd.significand); in vfp_double_fsqrt()
337 sub128(&remh, &reml, vdm.significand, 0, termh, terml); in vfp_double_fsqrt()
339 vdd.significand -= 1; in vfp_double_fsqrt()
340 shift64left(&termh, &terml, vdd.significand); in vfp_double_fsqrt()
344 vdd.significand |= (remh | reml) != 0; in vfp_double_fsqrt()
347 vdd.significand = vfp_shiftright64jamming(vdd.significand, 1); in vfp_double_fsqrt()
460 vsd.significand = vfp_hi64to32jamming(vdm.significand); in vfp_double_fcvts()
468 vsd.significand |= VFP_SINGLE_SIGNIFICAND_QNAN; in vfp_double_fcvts()
489 vdm.significand = (u64)m; in vfp_double_fuito()
501 vdm.significand = vdm.sign ? -m : m; in vfp_double_fsito()
535 d = (vdm.significand << 1) >> shift; in vfp_double_ftoui()
536 rem = vdm.significand << (65 - shift); in vfp_double_ftoui()
562 if (vdm.exponent | vdm.significand) { in vfp_double_ftoui()
614 d = (vdm.significand << 1) >> shift; in vfp_double_ftosi()
615 rem = vdm.significand << (65 - shift); in vfp_double_ftosi()
639 if (vdm.exponent | vdm.significand) { in vfp_double_ftosi()
731 if (vdn->significand & (1ULL << 63) || in vfp_double_add()
732 vdm->significand & (1ULL << 63)) { in vfp_double_add()
767 m_sig = vfp_shiftright64jamming(vdm->significand, exp_diff); in vfp_double_add()
773 m_sig = vdn->significand - m_sig; in vfp_double_add()
782 m_sig += vdn->significand; in vfp_double_add()
784 vdd->significand = m_sig; in vfp_double_add()
814 if (vdn->significand || (vdm->exponent == 2047 && vdm->significand)) in vfp_double_multiply()
816 if ((vdm->exponent | vdm->significand) == 0) { in vfp_double_multiply()
821 vdd->significand = 0; in vfp_double_multiply()
829 if ((vdm->exponent | vdm->significand) == 0) { in vfp_double_multiply()
831 vdd->significand = 0; in vfp_double_multiply()
841 vdd->significand = vfp_hi64multiply64(vdn->significand, vdm->significand); in vfp_double_multiply()
857 if (vdn.exponent == 0 && vdn.significand) in vfp_double_multiply_accumulate()
861 if (vdm.exponent == 0 && vdm.significand) in vfp_double_multiply_accumulate()
869 if (vdn.exponent == 0 && vdn.significand) in vfp_double_multiply_accumulate()
924 if (vdn.exponent == 0 && vdn.significand) in vfp_double_fmul()
928 if (vdm.exponent == 0 && vdm.significand) in vfp_double_fmul()
944 if (vdn.exponent == 0 && vdn.significand) in vfp_double_fnmul()
948 if (vdm.exponent == 0 && vdm.significand) in vfp_double_fnmul()
966 if (vdn.exponent == 0 && vdn.significand) in vfp_double_fadd()
970 if (vdm.exponent == 0 && vdm.significand) in vfp_double_fadd()
987 if (vdn.exponent == 0 && vdn.significand) in vfp_double_fsub()
991 if (vdm.exponent == 0 && vdm.significand) in vfp_double_fsub()
1067 vdm.significand <<= 1; in vfp_double_fdiv()
1068 if (vdm.significand <= (2 * vdn.significand)) { in vfp_double_fdiv()
1069 vdn.significand >>= 1; in vfp_double_fdiv()
1072 vdd.significand = vfp_estimate_div128to64(vdn.significand, 0, vdm.significand); in vfp_double_fdiv()
1073 if ((vdd.significand & 0x1ff) <= 2) { in vfp_double_fdiv()
1075 mul64to128(&termh, &terml, vdm.significand, vdd.significand); in vfp_double_fdiv()
1076 sub128(&remh, &reml, vdn.significand, 0, termh, terml); in vfp_double_fdiv()
1078 vdd.significand -= 1; in vfp_double_fdiv()
1079 add128(&remh, &reml, remh, reml, 0, vdm.significand); in vfp_double_fdiv()
1081 vdd.significand |= (reml != 0); in vfp_double_fdiv()
1097 vdd.significand = 0; in vfp_double_fdiv()
1104 vdd.significand = 0; in vfp_double_fdiv()