Lines Matching refs:vsd

69 #define vfp_single_normaliseround(sd,vsd,fpscr,except,func) __vfp_single_normaliseround(sd,vsd,fpsc…  argument
215 vfp_propagate_nan(struct vfp_single *vsd, struct vfp_single *vsn, in vfp_propagate_nan() argument
247 *vsd = *nan; in vfp_propagate_nan()
318 struct vfp_single vsm, vsd; in vfp_single_fsqrt() local
324 struct vfp_single *vsp = &vsd; in vfp_single_fsqrt()
364 vsd.sign = 0; in vfp_single_fsqrt()
365 vsd.exponent = ((vsm.exponent - 127) >> 1) + 127; in vfp_single_fsqrt()
366 vsd.significand = vfp_estimate_sqrt_significand(vsm.exponent, vsm.significand) + 2; in vfp_single_fsqrt()
368 vfp_single_dump("sqrt estimate", &vsd); in vfp_single_fsqrt()
373 if ((vsd.significand & VFP_SINGLE_LOW_BITS_MASK) <= 5) { in vfp_single_fsqrt()
374 if (vsd.significand < 2) { in vfp_single_fsqrt()
375 vsd.significand = 0xffffffff; in vfp_single_fsqrt()
380 term = (u64)vsd.significand * vsd.significand; in vfp_single_fsqrt()
386 vsd.significand -= 1; in vfp_single_fsqrt()
387 rem += ((u64)vsd.significand << 1) | 1; in vfp_single_fsqrt()
389 vsd.significand |= rem != 0; in vfp_single_fsqrt()
392 vsd.significand = vfp_shiftright32jamming(vsd.significand, 1); in vfp_single_fsqrt()
394 return vfp_single_normaliseround(sd, &vsd, fpscr, 0, "fsqrt"); in vfp_single_fsqrt()
729 vfp_single_fadd_nonnumber(struct vfp_single *vsd, struct vfp_single *vsn, in vfp_single_fadd_nonnumber() argument
764 return vfp_propagate_nan(vsd, vsn, vsm, fpscr); in vfp_single_fadd_nonnumber()
766 *vsd = *vsp; in vfp_single_fadd_nonnumber()
771 vfp_single_add(struct vfp_single *vsd, struct vfp_single *vsn, in vfp_single_add() argument
799 return vfp_single_fadd_nonnumber(vsd, vsn, vsm, fpscr); in vfp_single_add()
806 *vsd = *vsn; in vfp_single_add()
820 vsd->sign = vfp_sign_negate(vsd->sign); in vfp_single_add()
823 vsd->sign = (fpscr & FPSCR_RMODE_MASK) == in vfp_single_add()
829 vsd->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
852 vsd->sign = vsn->sign ^ vsm->sign; in vfp_single_multiply()
859 return vfp_propagate_nan(vsd, vsn, vsm, fpscr); in vfp_single_multiply()
861 *vsd = vfp_single_default_qnan; in vfp_single_multiply()
864 vsd->exponent = vsn->exponent; in vfp_single_multiply()
865 vsd->significand = 0; in vfp_single_multiply()
874 vsd->exponent = 0; in vfp_single_multiply()
875 vsd->significand = 0; 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()
887 vfp_single_dump("VSD", vsd); in vfp_single_multiply()
897 struct vfp_single vsd, vsp, vsn, vsm; in vfp_single_multiply_accumulate() local
923 exceptions |= vfp_single_add(&vsd, &vsn, &vsp, fpscr); in vfp_single_multiply_accumulate()
925 return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, func); in vfp_single_multiply_accumulate()
969 struct vfp_single vsd, vsn, vsm; in vfp_single_fmul() local
983 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); in vfp_single_fmul()
984 return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fmul"); in vfp_single_fmul()
992 struct vfp_single vsd, vsn, vsm; in vfp_single_fnmul() local
1006 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); in vfp_single_fnmul()
1007 vsd.sign = vfp_sign_negate(vsd.sign); in vfp_single_fnmul()
1008 return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fnmul"); in vfp_single_fnmul()
1016 struct vfp_single vsd, vsn, vsm; in vfp_single_fadd() local
1033 exceptions = vfp_single_add(&vsd, &vsn, &vsm, fpscr); in vfp_single_fadd()
1035 return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fadd"); in vfp_single_fadd()
1054 struct vfp_single vsd, vsn, vsm; in vfp_single_fdiv() local
1064 vsd.sign = vsn.sign ^ vsm.sign; in vfp_single_fdiv()
1114 vsd.exponent = vsn.exponent - vsm.exponent + 127 - 1; in vfp_single_fdiv()
1118 vsd.exponent++; in vfp_single_fdiv()
1123 vsd.significand = significand; in vfp_single_fdiv()
1125 if ((vsd.significand & 0x3f) == 0) in vfp_single_fdiv()
1126 vsd.significand |= ((u64)vsm.significand * vsd.significand != (u64)vsn.significand << 32); in vfp_single_fdiv()
1128 return vfp_single_normaliseround(sd, &vsd, fpscr, 0, "fdiv"); in vfp_single_fdiv()
1131 exceptions = vfp_propagate_nan(&vsd, &vsn, &vsm, fpscr); in vfp_single_fdiv()
1133 vfp_put_float(vfp_single_pack(&vsd), sd); in vfp_single_fdiv()
1137 exceptions = vfp_propagate_nan(&vsd, &vsm, &vsn, fpscr); in vfp_single_fdiv()
1141 vsd.exponent = 0; in vfp_single_fdiv()
1142 vsd.significand = 0; in vfp_single_fdiv()
1148 vsd.exponent = 255; in vfp_single_fdiv()
1149 vsd.significand = 0; in vfp_single_fdiv()