Lines Matching defs:vdn
207 vfp_propagate_nan(struct vfp_double *vdd, struct vfp_double *vdn,
213 tn = vfp_double_type(vdn);
230 nan = vdn;
683 vfp_double_fadd_nonnumber(struct vfp_double *vdd, struct vfp_double *vdn,
690 tn = vfp_double_type(vdn);
697 if (vdn->sign ^ vdm->sign) {
707 vdp = vdn;
713 vdp = vdn;
718 return vfp_propagate_nan(vdd, vdn, vdm, fpscr);
725 vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn,
731 if (vdn->significand & (1ULL << 63) ||
734 vfp_double_dump("VDN", vdn);
743 if (vdn->exponent < vdm->exponent) {
744 struct vfp_double *t = vdn;
745 vdn = vdm;
753 if (vdn->exponent == 2047)
754 return vfp_double_fadd_nonnumber(vdd, vdn, vdm, fpscr);
757 * We have two proper numbers, where 'vdn' is the larger magnitude.
761 *vdd = *vdn;
766 exp_diff = vdn->exponent - vdm->exponent;
772 if (vdn->sign ^ vdm->sign) {
773 m_sig = vdn->significand - m_sig;
782 m_sig += vdn->significand;
790 vfp_double_multiply(struct vfp_double *vdd, struct vfp_double *vdn,
793 vfp_double_dump("VDN", vdn);
801 if (vdn->exponent < vdm->exponent) {
802 struct vfp_double *t = vdn;
803 vdn = vdm;
808 vdd->sign = vdn->sign ^ vdm->sign;
813 if (vdn->exponent == 2047) {
814 if (vdn->significand || (vdm->exponent == 2047 && vdm->significand))
815 return vfp_propagate_nan(vdd, vdn, vdm, fpscr);
820 vdd->exponent = vdn->exponent;
840 vdd->exponent = vdn->exponent + vdm->exponent - 1023 + 2;
841 vdd->significand = vfp_hi64multiply64(vdn->significand, vdm->significand);
853 struct vfp_double vdd, vdp, vdn, vdm;
856 vfp_double_unpack(&vdn, vfp_get_double(dn));
857 if (vdn.exponent == 0 && vdn.significand)
858 vfp_double_normalise_denormal(&vdn);
864 exceptions = vfp_double_multiply(&vdp, &vdn, &vdm, fpscr);
868 vfp_double_unpack(&vdn, vfp_get_double(dd));
869 if (vdn.exponent == 0 && vdn.significand)
870 vfp_double_normalise_denormal(&vdn);
872 vdn.sign = vfp_sign_negate(vdn.sign);
874 exceptions |= vfp_double_add(&vdd, &vdn, &vdp, fpscr);
920 struct vfp_double vdd, vdn, vdm;
923 vfp_double_unpack(&vdn, vfp_get_double(dn));
924 if (vdn.exponent == 0 && vdn.significand)
925 vfp_double_normalise_denormal(&vdn);
931 exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr);
940 struct vfp_double vdd, vdn, vdm;
943 vfp_double_unpack(&vdn, vfp_get_double(dn));
944 if (vdn.exponent == 0 && vdn.significand)
945 vfp_double_normalise_denormal(&vdn);
951 exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr);
962 struct vfp_double vdd, vdn, vdm;
965 vfp_double_unpack(&vdn, vfp_get_double(dn));
966 if (vdn.exponent == 0 && vdn.significand)
967 vfp_double_normalise_denormal(&vdn);
973 exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr);
983 struct vfp_double vdd, vdn, vdm;
986 vfp_double_unpack(&vdn, vfp_get_double(dn));
987 if (vdn.exponent == 0 && vdn.significand)
988 vfp_double_normalise_denormal(&vdn);
999 exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr);
1009 struct vfp_double vdd, vdn, vdm;
1013 vfp_double_unpack(&vdn, vfp_get_double(dn));
1016 vdd.sign = vdn.sign ^ vdm.sign;
1018 tn = vfp_double_type(&vdn);
1059 vfp_double_normalise_denormal(&vdn);
1066 vdd.exponent = vdn.exponent - vdm.exponent + 1023 - 1;
1068 if (vdm.significand <= (2 * vdn.significand)) {
1069 vdn.significand >>= 1;
1072 vdd.significand = vfp_estimate_div128to64(vdn.significand, 0, vdm.significand);
1076 sub128(&remh, &reml, vdn.significand, 0, termh, terml);
1086 exceptions = vfp_propagate_nan(&vdd, &vdn, &vdm, fpscr);
1092 exceptions = vfp_propagate_nan(&vdd, &vdm, &vdn, fpscr);