• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/vfp/

Lines Matching refs:vdm

208 		  struct vfp_double *vdm, u32 fpscr)
215 if (vdm)
216 tm = vfp_double_type(vdm);
232 nan = vdm;
270 struct vfp_double vdm, vdd;
273 vfp_double_unpack(&vdm, vfp_get_double(dm));
274 tm = vfp_double_type(&vdm);
279 ret = vfp_propagate_nan(vdp, &vdm, NULL, fpscr);
280 else if (vdm.sign == 0) {
282 vdp = &vdm;
303 vfp_double_normalise_denormal(&vdm);
308 if (vdm.sign)
311 vfp_double_dump("sqrt", &vdm);
317 vdd.exponent = ((vdm.exponent - 1023) >> 1) + 1023;
318 vdd.significand = (u64)vfp_estimate_sqrt_significand(vdm.exponent, vdm.significand >> 32) << 31;
322 vdm.significand >>= 1 + (vdm.exponent & 1);
323 vdd.significand += 2 + vfp_estimate_div128to64(vdm.significand, 0, vdd.significand);
335 vdm.significand <<= 2;
337 sub128(&remh, &reml, vdm.significand, 0, termh, terml);
441 struct vfp_double vdm;
446 vfp_double_unpack(&vdm, vfp_get_double(dm));
448 tm = vfp_double_type(&vdm);
457 vfp_double_normalise_denormal(&vdm);
459 vsd.sign = vdm.sign;
460 vsd.significand = vfp_hi64to32jamming(vdm.significand);
473 vsd.exponent = vdm.exponent - (1023 - 127);
484 struct vfp_double vdm;
487 vdm.sign = 0;
488 vdm.exponent = 1023 + 63 - 1;
489 vdm.significand = (u64)m;
491 return vfp_double_normaliseround(dd, &vdm, fpscr, 0, "fuito");
496 struct vfp_double vdm;
499 vdm.sign = (m & 0x80000000) >> 16;
500 vdm.exponent = 1023 + 63 - 1;
501 vdm.significand = vdm.sign ? -m : m;
503 return vfp_double_normaliseround(dd, &vdm, fpscr, 0, "fsito");
508 struct vfp_double vdm;
513 vfp_double_unpack(&vdm, vfp_get_double(dm));
518 tm = vfp_double_type(&vdm);
523 vdm.sign = 0;
525 if (vdm.exponent >= 1023 + 32) {
526 d = vdm.sign ? 0 : 0xffffffff;
528 } else if (vdm.exponent >= 1023 - 1) {
529 int shift = 1023 + 63 - vdm.exponent;
535 d = (vdm.significand << 1) >> shift;
536 rem = vdm.significand << (65 - shift);
544 } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vdm.sign != 0)) {
555 if (d && vdm.sign) {
562 if (vdm.exponent | vdm.significand) {
564 if (rmode == FPSCR_ROUND_PLUSINF && vdm.sign == 0)
566 else if (rmode == FPSCR_ROUND_MINUSINF && vdm.sign) {
587 struct vfp_double vdm;
592 vfp_double_unpack(&vdm, vfp_get_double(dm));
593 vfp_double_dump("VDM", &vdm);
598 tm = vfp_double_type(&vdm);
605 } else if (vdm.exponent >= 1023 + 32) {
607 if (vdm.sign)
610 } else if (vdm.exponent >= 1023 - 1) {
611 int shift = 1023 + 63 - vdm.exponent; /* 58 */
614 d = (vdm.significand << 1) >> shift;
615 rem = vdm.significand << (65 - shift);
623 } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vdm.sign != 0)) {
629 if (d > 0x7fffffff + (vdm.sign != 0)) {
630 d = 0x7fffffff + (vdm.sign != 0);
635 if (vdm.sign)
639 if (vdm.exponent | vdm.significand) {
641 if (rmode == FPSCR_ROUND_PLUSINF && vdm.sign == 0)
643 else if (rmode == FPSCR_ROUND_MINUSINF && vdm.sign)
684 struct vfp_double *vdm, u32 fpscr)
691 tm = vfp_double_type(vdm);
697 if (vdn->sign ^ vdm->sign) {
718 return vfp_propagate_nan(vdd, vdn, vdm, fpscr);
726 struct vfp_double *vdm, u32 fpscr)
732 vdm->significand & (1ULL << 63)) {
735 vfp_double_dump("VDM", vdm);
743 if (vdn->exponent < vdm->exponent) {
745 vdn = vdm;
746 vdm = t;
754 return vfp_double_fadd_nonnumber(vdd, vdn, vdm, fpscr);
766 exp_diff = vdn->exponent - vdm->exponent;
767 m_sig = vfp_shiftright64jamming(vdm->significand, exp_diff);
772 if (vdn->sign ^ vdm->sign) {
791 struct vfp_double *vdm, u32 fpscr)
794 vfp_double_dump("VDM", vdm);
801 if (vdn->exponent < vdm->exponent) {
803 vdn = vdm;
804 vdm = t;
808 vdd->sign = vdn->sign ^ vdm->sign;
814 if (vdn->significand || (vdm->exponent == 2047 && vdm->significand))
815 return vfp_propagate_nan(vdd, vdn, vdm, fpscr);
816 if ((vdm->exponent | vdm->significand) == 0) {
829 if ((vdm->exponent | vdm->significand) == 0) {
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;
860 vfp_double_unpack(&vdm, vfp_get_double(dm));
861 if (vdm.exponent == 0 && vdm.significand)
862 vfp_double_normalise_denormal(&vdm);
864 exceptions = vfp_double_multiply(&vdp, &vdn, &vdm, fpscr);
918 struct vfp_double vdd, vdn, vdm;
925 vfp_double_unpack(&vdm, vfp_get_double(dm));
926 if (vdm.exponent == 0 && vdm.significand)
927 vfp_double_normalise_denormal(&vdm);
929 exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr);
938 struct vfp_double vdd, vdn, vdm;
945 vfp_double_unpack(&vdm, vfp_get_double(dm));
946 if (vdm.exponent == 0 && vdm.significand)
947 vfp_double_normalise_denormal(&vdm);
949 exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr);
960 struct vfp_double vdd, vdn, vdm;
967 vfp_double_unpack(&vdm, vfp_get_double(dm));
968 if (vdm.exponent == 0 && vdm.significand)
969 vfp_double_normalise_denormal(&vdm);
971 exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr);
981 struct vfp_double vdd, vdn, vdm;
988 vfp_double_unpack(&vdm, vfp_get_double(dm));
989 if (vdm.exponent == 0 && vdm.significand)
990 vfp_double_normalise_denormal(&vdm);
995 vdm.sign = vfp_sign_negate(vdm.sign);
997 exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr);
1007 struct vfp_double vdd, vdn, vdm;
1012 vfp_double_unpack(&vdm, vfp_get_double(dm));
1014 vdd.sign = vdn.sign ^ vdm.sign;
1017 tm = vfp_double_type(&vdm);
1059 vfp_double_normalise_denormal(&vdm);
1064 vdd.exponent = vdn.exponent - vdm.exponent + 1023 - 1;
1065 vdm.significand <<= 1;
1066 if (vdm.significand <= (2 * vdn.significand)) {
1070 vdd.significand = vfp_estimate_div128to64(vdn.significand, 0, vdm.significand);
1073 mul64to128(&termh, &terml, vdm.significand, vdd.significand);
1077 add128(&remh, &reml, remh, reml, 0, vdm.significand);
1084 exceptions = vfp_propagate_nan(&vdd, &vdn, &vdm, fpscr);
1090 exceptions = vfp_propagate_nan(&vdd, &vdm, &vdn, fpscr);