Lines Matching refs:vsn

215 vfp_propagate_nan(struct vfp_single *vsd, struct vfp_single *vsn,  in vfp_propagate_nan()  argument
221 tn = vfp_single_type(vsn); in vfp_propagate_nan()
238 nan = vsn; in vfp_propagate_nan()
729 vfp_single_fadd_nonnumber(struct vfp_single *vsd, struct vfp_single *vsn, in vfp_single_fadd_nonnumber() argument
736 tn = vfp_single_type(vsn); in vfp_single_fadd_nonnumber()
743 if (vsn->sign ^ vsm->sign) { in vfp_single_fadd_nonnumber()
753 vsp = vsn; in vfp_single_fadd_nonnumber()
759 vsp = vsn; in vfp_single_fadd_nonnumber()
764 return vfp_propagate_nan(vsd, vsn, vsm, fpscr); in vfp_single_fadd_nonnumber()
771 vfp_single_add(struct vfp_single *vsd, struct vfp_single *vsn, in vfp_single_add() argument
776 if (vsn->significand & 0x80000000 || in vfp_single_add()
779 vfp_single_dump("VSN", vsn); in vfp_single_add()
788 if (vsn->exponent < vsm->exponent) { in vfp_single_add()
789 struct vfp_single *t = vsn; in vfp_single_add()
790 vsn = vsm; in vfp_single_add()
798 if (vsn->exponent == 255) in vfp_single_add()
799 return vfp_single_fadd_nonnumber(vsd, vsn, vsm, fpscr); in vfp_single_add()
806 *vsd = *vsn; in vfp_single_add()
811 exp_diff = vsn->exponent - vsm->exponent; in vfp_single_add()
817 if (vsn->sign ^ vsm->sign) { in vfp_single_add()
818 m_sig = vsn->significand - m_sig; in vfp_single_add()
827 m_sig = vsn->significand + m_sig; in vfp_single_add()
835 vfp_single_multiply(struct vfp_single *vsd, struct vfp_single *vsn, struct vfp_single *vsm, u32 fps… in vfp_single_multiply() argument
837 vfp_single_dump("VSN", vsn); in vfp_single_multiply()
845 if (vsn->exponent < vsm->exponent) { in vfp_single_multiply()
846 struct vfp_single *t = vsn; in vfp_single_multiply()
847 vsn = vsm; in vfp_single_multiply()
852 vsd->sign = vsn->sign ^ vsm->sign; in vfp_single_multiply()
857 if (vsn->exponent == 255) { in vfp_single_multiply()
858 if (vsn->significand || (vsm->exponent == 255 && vsm->significand)) in vfp_single_multiply()
859 return vfp_propagate_nan(vsd, vsn, vsm, fpscr); in vfp_single_multiply()
864 vsd->exponent = vsn->exponent; in vfp_single_multiply()
884 vsd->exponent = vsn->exponent + vsm->exponent - 127 + 2; in vfp_single_multiply()
885 vsd->significand = vfp_hi64to32jamming((u64)vsn->significand * vsm->significand); in vfp_single_multiply()
897 struct vfp_single vsd, vsp, vsn, vsm; in vfp_single_multiply_accumulate() local
903 vfp_single_unpack(&vsn, v); in vfp_single_multiply_accumulate()
904 if (vsn.exponent == 0 && vsn.significand) in vfp_single_multiply_accumulate()
905 vfp_single_normalise_denormal(&vsn); in vfp_single_multiply_accumulate()
911 exceptions = vfp_single_multiply(&vsp, &vsn, &vsm, fpscr); in vfp_single_multiply_accumulate()
917 vfp_single_unpack(&vsn, v); in vfp_single_multiply_accumulate()
918 if (vsn.exponent == 0 && vsn.significand) in vfp_single_multiply_accumulate()
919 vfp_single_normalise_denormal(&vsn); in vfp_single_multiply_accumulate()
921 vsn.sign = vfp_sign_negate(vsn.sign); in vfp_single_multiply_accumulate()
923 exceptions |= vfp_single_add(&vsd, &vsn, &vsp, fpscr); in vfp_single_multiply_accumulate()
969 struct vfp_single vsd, vsn, vsm; in vfp_single_fmul() local
975 vfp_single_unpack(&vsn, n); in vfp_single_fmul()
976 if (vsn.exponent == 0 && vsn.significand) in vfp_single_fmul()
977 vfp_single_normalise_denormal(&vsn); in vfp_single_fmul()
983 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); in vfp_single_fmul()
992 struct vfp_single vsd, vsn, vsm; in vfp_single_fnmul() local
998 vfp_single_unpack(&vsn, n); in vfp_single_fnmul()
999 if (vsn.exponent == 0 && vsn.significand) in vfp_single_fnmul()
1000 vfp_single_normalise_denormal(&vsn); in vfp_single_fnmul()
1006 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); in vfp_single_fnmul()
1016 struct vfp_single vsd, vsn, vsm; in vfp_single_fadd() local
1025 vfp_single_unpack(&vsn, n); in vfp_single_fadd()
1026 if (vsn.exponent == 0 && vsn.significand) in vfp_single_fadd()
1027 vfp_single_normalise_denormal(&vsn); in vfp_single_fadd()
1033 exceptions = vfp_single_add(&vsd, &vsn, &vsm, fpscr); in vfp_single_fadd()
1054 struct vfp_single vsd, vsn, vsm; in vfp_single_fdiv() local
1061 vfp_single_unpack(&vsn, n); in vfp_single_fdiv()
1064 vsd.sign = vsn.sign ^ vsm.sign; in vfp_single_fdiv()
1066 tn = vfp_single_type(&vsn); in vfp_single_fdiv()
1107 vfp_single_normalise_denormal(&vsn); in vfp_single_fdiv()
1114 vsd.exponent = vsn.exponent - vsm.exponent + 127 - 1; in vfp_single_fdiv()
1116 if (vsm.significand <= (2 * vsn.significand)) { in vfp_single_fdiv()
1117 vsn.significand >>= 1; in vfp_single_fdiv()
1121 u64 significand = (u64)vsn.significand << 32; in vfp_single_fdiv()
1126 vsd.significand |= ((u64)vsm.significand * vsd.significand != (u64)vsn.significand << 32); in vfp_single_fdiv()
1131 exceptions = vfp_propagate_nan(&vsd, &vsn, &vsm, fpscr); in vfp_single_fdiv()
1137 exceptions = vfp_propagate_nan(&vsd, &vsm, &vsn, fpscr); in vfp_single_fdiv()