• 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:vsm

216 		  struct vfp_single *vsm, u32 fpscr)
223 if (vsm)
224 tm = vfp_single_type(vsm);
240 nan = vsm;
318 struct vfp_single vsm, vsd;
321 vfp_single_unpack(&vsm, m);
322 tm = vfp_single_type(&vsm);
327 ret = vfp_propagate_nan(vsp, &vsm, NULL, fpscr);
328 else if (vsm.sign == 0) {
330 vsp = &vsm;
351 vfp_single_normalise_denormal(&vsm);
356 if (vsm.sign)
359 vfp_single_dump("sqrt", &vsm);
365 vsd.exponent = ((vsm.exponent - 127) >> 1) + 127;
366 vsd.significand = vfp_estimate_sqrt_significand(vsm.exponent, vsm.significand) + 2;
379 vsm.significand <<= !(vsm.exponent & 1);
381 rem = ((u64)vsm.significand << 32) - term;
484 struct vfp_single vsm;
489 vfp_single_unpack(&vsm, m);
491 tm = vfp_single_type(&vsm);
500 vfp_single_normalise_denormal(&vsm);
502 vdd.sign = vsm.sign;
503 vdd.significand = (u64)vsm.significand << 32;
516 vdd.exponent = vsm.exponent + (1023 - 127);
549 struct vfp_single vsm;
554 vfp_single_unpack(&vsm, m);
555 vfp_single_dump("VSM", &vsm);
560 tm = vfp_single_type(&vsm);
565 vsm.sign = 0;
567 if (vsm.exponent >= 127 + 32) {
568 d = vsm.sign ? 0 : 0xffffffff;
570 } else if (vsm.exponent >= 127 - 1) {
571 int shift = 127 + 31 - vsm.exponent;
577 d = (vsm.significand << 1) >> shift;
578 rem = vsm.significand << (33 - shift);
586 } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vsm.sign != 0)) {
597 if (d && vsm.sign) {
604 if (vsm.exponent | vsm.significand) {
606 if (rmode == FPSCR_ROUND_PLUSINF && vsm.sign == 0)
608 else if (rmode == FPSCR_ROUND_MINUSINF && vsm.sign) {
629 struct vfp_single vsm;
634 vfp_single_unpack(&vsm, m);
635 vfp_single_dump("VSM", &vsm);
640 tm = vfp_single_type(&vsm);
641 if (vfp_single_type(&vsm) & VFP_DENORMAL)
647 } else if (vsm.exponent >= 127 + 32) {
652 if (vsm.sign)
655 } else if (vsm.exponent >= 127 - 1) {
656 int shift = 127 + 31 - vsm.exponent;
660 d = (vsm.significand << 1) >> shift;
661 rem = vsm.significand << (33 - shift);
669 } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vsm.sign != 0)) {
675 if (d > 0x7fffffff + (vsm.sign != 0)) {
676 d = 0x7fffffff + (vsm.sign != 0);
681 if (vsm.sign)
685 if (vsm.exponent | vsm.significand) {
687 if (rmode == FPSCR_ROUND_PLUSINF && vsm.sign == 0)
689 else if (rmode == FPSCR_ROUND_MINUSINF && vsm.sign)
730 struct vfp_single *vsm, u32 fpscr)
737 tm = vfp_single_type(vsm);
743 if (vsn->sign ^ vsm->sign) {
764 return vfp_propagate_nan(vsd, vsn, vsm, fpscr);
772 struct vfp_single *vsm, u32 fpscr)
777 vsm->significand & 0x80000000) {
780 vfp_single_dump("VSM", vsm);
788 if (vsn->exponent < vsm->exponent) {
790 vsn = vsm;
791 vsm = t;
799 return vfp_single_fadd_nonnumber(vsd, vsn, vsm, fpscr);
811 exp_diff = vsn->exponent - vsm->exponent;
812 m_sig = vfp_shiftright32jamming(vsm->significand, exp_diff);
817 if (vsn->sign ^ vsm->sign) {
835 vfp_single_multiply(struct vfp_single *vsd, struct vfp_single *vsn, struct vfp_single *vsm, u32 fpscr)
838 vfp_single_dump("VSM", vsm);
845 if (vsn->exponent < vsm->exponent) {
847 vsn = vsm;
848 vsm = t;
852 vsd->sign = vsn->sign ^ vsm->sign;
858 if (vsn->significand || (vsm->exponent == 255 && vsm->significand))
859 return vfp_propagate_nan(vsd, vsn, vsm, fpscr);
860 if ((vsm->exponent | vsm->significand) == 0) {
873 if ((vsm->exponent | vsm->significand) == 0) {
884 vsd->exponent = vsn->exponent + vsm->exponent - 127 + 2;
885 vsd->significand = vfp_hi64to32jamming((u64)vsn->significand * vsm->significand);
897 struct vfp_single vsd, vsp, vsn, vsm;
907 vfp_single_unpack(&vsm, m);
908 if (vsm.exponent == 0 && vsm.significand)
909 vfp_single_normalise_denormal(&vsm);
911 exceptions = vfp_single_multiply(&vsp, &vsn, &vsm, fpscr);
967 struct vfp_single vsd, vsn, vsm;
977 vfp_single_unpack(&vsm, m);
978 if (vsm.exponent == 0 && vsm.significand)
979 vfp_single_normalise_denormal(&vsm);
981 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr);
990 struct vfp_single vsd, vsn, vsm;
1000 vfp_single_unpack(&vsm, m);
1001 if (vsm.exponent == 0 && vsm.significand)
1002 vfp_single_normalise_denormal(&vsm);
1004 exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr);
1014 struct vfp_single vsd, vsn, vsm;
1027 vfp_single_unpack(&vsm, m);
1028 if (vsm.exponent == 0 && vsm.significand)
1029 vfp_single_normalise_denormal(&vsm);
1031 exceptions = vfp_single_add(&vsd, &vsn, &vsm, fpscr);
1052 struct vfp_single vsd, vsn, vsm;
1060 vfp_single_unpack(&vsm, m);
1062 vsd.sign = vsn.sign ^ vsm.sign;
1065 tm = vfp_single_type(&vsm);
1107 vfp_single_normalise_denormal(&vsm);
1112 vsd.exponent = vsn.exponent - vsm.exponent + 127 - 1;
1113 vsm.significand <<= 1;
1114 if (vsm.significand <= (2 * vsn.significand)) {
1120 do_div(significand, vsm.significand);
1124 vsd.significand |= ((u64)vsm.significand * vsd.significand != (u64)vsn.significand << 32);
1129 exceptions = vfp_propagate_nan(&vsd, &vsn, &vsm, fpscr);
1135 exceptions = vfp_propagate_nan(&vsd, &vsm, &vsn, fpscr);