Lines Matching refs:info

569 __fex_get_op(siginfo_t *sip, ucontext_t *uap, fex_info_t *info)
593 info->op = fex_cnvt;
594 info->op2.type = fex_nodata;
601 info->op = fex_other;
602 info->op1.type = info->op2.type = info->res.type = fex_nodata;
603 info->flags = 0;
606 info->op1.type = fex_float;
607 info->op1.val.f = *(float *)ea;
608 info->res.type = fex_ldouble;
609 info->res.val.q = (long double) info->op1.val.f;
616 info->op = fex_other;
617 info->op1.type = info->op2.type = info->res.type = fex_nodata;
618 info->flags = 0;
621 info->op1.type = fex_double;
622 info->op1.val.d = *(double *)ea;
623 info->res.type = fex_ldouble;
624 info->res.val.q = (long double) info->op1.val.d;
634 info->res.type = fex_float;
638 info->op = fex_other;
639 info->op1.type = info->op2.type = info->res.type = fex_nodata;
640 info->flags = 0;
643 info->op1.type = fex_nodata;
644 info->res.val.f = *(float *)ea;
645 info->flags = FE_INEXACT;
648 info->op1.type = fex_ldouble;
649 info->op1.val.q = fpreg(uap, 0);
650 info->res.val.f = (float) info->op1.val.q;
659 info->res.type = fex_int;
663 info->op = fex_other;
664 info->op1.type = info->op2.type = info->res.type = fex_nodata;
665 info->flags = 0;
668 info->op1.type = fex_nodata;
669 info->res.val.i = *(int *)ea;
670 info->flags = FE_INEXACT;
673 info->op1.type = fex_ldouble;
674 info->op1.val.q = fpreg(uap, 0);
675 info->res.val.i = (int) info->op1.val.q;
684 info->res.type = fex_double;
688 info->op = fex_other;
689 info->op1.type = info->op2.type = info->res.type = fex_nodata;
690 info->flags = 0;
693 info->op1.type = fex_nodata;
694 info->res.val.d = *(double *)ea;
695 info->flags = FE_INEXACT;
698 info->op1.type = fex_ldouble;
699 info->op1.val.q = fpreg(uap, 0);
700 info->res.val.d = (double) info->op1.val.q;
709 info->res.type = fex_int;
713 info->op = fex_other;
714 info->op1.type = info->op2.type = info->res.type = fex_nodata;
715 info->flags = 0;
718 info->op1.type = fex_nodata;
719 info->res.val.i = *(short *)ea;
720 info->flags = FE_INEXACT;
723 info->op1.type = fex_ldouble;
724 info->op1.val.q = fpreg(uap, 0);
725 info->res.val.i = (short) info->op1.val.q;
732 info->op = fex_other;
733 info->op1.type = info->res.type = fex_nodata;
734 info->flags = 0;
740 info->res.type = fex_llong;
744 info->op = fex_other;
745 info->op1.type = info->op2.type = info->res.type = fex_nodata;
746 info->flags = 0;
749 info->op1.type = fex_nodata;
750 info->res.val.l = *(long long *)ea;
751 info->flags = FE_INEXACT;
754 info->op1.type = fex_ldouble;
755 info->op1.val.q = fpreg(uap, 0);
756 info->res.val.l = (long long) info->op1.val.q;
764 info->op1.type = info->op2.type = fex_nodata;
765 info->res.type = fex_ldouble;
769 info->res.val.q = ((op == 0x1f2)? fpreg(uap, 1) :
779 info->res.val.q = fpreg(uap, op & 7);
789 info->res.val.q = fpreg(uap, (op - 1) & 7);
793 info->res.val.q = fpreg(uap, 0);
800 *(4+(short*)&x) |= (*(4+(short*)&info->res.val.q) & 0x8000);
801 info->res.val.q = x * two12288;
802 info->flags = FE_OVERFLOW | FE_INEXACT;
813 info->res.val.q = (info->res.val.q * twom12288) * twom12288mulp;
815 info->res.val.q = (info->res.val.q * twom12288) * twom12288;
817 info->flags = (cwsw & FE_INEXACT) | FE_UNDERFLOW;
822 info->flags = FE_INEXACT;
838 info->op = fex_other;
842 info->op = fex_sqrt;
846 info->op = fex_other;
865 info->op = fex_add;
869 info->op = fex_mul;
874 info->op = fex_sub;
879 info->op = fex_div;
890 info->op1.type = fex_ldouble;
891 info->op1.val.q = fpreg(uap, 0);
894 info->op = fex_other;
897 info->op = fex_cmp;
898 info->op2.type = fex_ldouble;
899 info->op2.val.q = 0.0l;
900 info->res.type = fex_nodata;
901 c = (info->op1.val.q < info->op2.val.q);
905 info->res.type = fex_ldouble;
906 info->res.val.q = f2xm1(info->op1.val.q);
910 info->op2.type = fex_ldouble;
911 info->op2.val.q = fpreg(uap, 1);
912 info->res.type = fex_ldouble;
913 info->res.val.q = fyl2x(info->op1.val.q, info->op2.val.q);
917 info->res.type = fex_ldouble;
918 info->res.val.q = fptan(info->op1.val.q);
922 info->op2.type = fex_ldouble;
923 info->op2.val.q = fpreg(uap, 1);
924 info->res.type = fex_ldouble;
925 info->res.val.q = fpatan(info->op1.val.q, info->op2.val.q);
929 info->res.type = fex_ldouble;
930 info->res.val.q = fxtract(info->op1.val.q);
934 info->op2.type = fex_ldouble;
935 info->op2.val.q = fpreg(uap, 1);
936 info->res.type = fex_ldouble;
937 info->res.val.q = fprem1(info->op1.val.q, info->op2.val.q);
941 info->op2.type = fex_ldouble;
942 info->op2.val.q = fpreg(uap, 1);
943 info->res.type = fex_ldouble;
944 info->res.val.q = fprem(info->op1.val.q, info->op2.val.q);
948 info->op2.type = fex_ldouble;
949 info->op2.val.q = fpreg(uap, 1);
950 info->res.type = fex_ldouble;
951 info->res.val.q = fyl2xp1(info->op1.val.q, info->op2.val.q);
955 info->op = fex_sqrt;
956 info->res.type = fex_ldouble;
957 info->res.val.q = fsqrt(info->op1.val.q);
961 info->res.type = fex_ldouble;
962 info->res.val.q = fsincos(info->op1.val.q);
966 info->res.type = fex_ldouble;
967 info->res.val.q = frndint(info->op1.val.q);
971 info->op2.type = fex_ldouble;
972 info->op2.val.q = fpreg(uap, 1);
973 info->res.type = fex_ldouble;
974 info->res.val.q = fscale(info->op1.val.q, info->op2.val.q);
978 info->res.type = fex_ldouble;
979 info->res.val.q = fsin(info->op1.val.q);
983 info->res.type = fex_ldouble;
984 info->res.val.q = fcos(info->op1.val.q);
988 info->op = fex_cmp;
989 info->op2.type = fex_ldouble;
990 info->op2.val.q = fpreg(uap, 1);
991 info->res.type = fex_nodata;
992 c = (info->op1.val.q == info->op2.val.q);
1002 info->op = fex_cmp;
1003 info->op2.type = fex_ldouble;
1004 info->op2.val.q = fpreg(uap, op & 7);
1005 info->res.type = fex_nodata;
1006 c = (info->op1.val.q == info->op2.val.q);
1011 info->op = fex_cmp;
1012 info->op2.type = fex_ldouble;
1013 info->op2.val.q = fpreg(uap, op & 7);
1014 info->res.type = fex_nodata;
1015 c = (info->op1.val.q < info->op2.val.q);
1028 info->op = fex_other;
1029 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1030 info->flags = 0;
1033 info->op2.type = fex_float;
1034 info->op2.val.f = *(float *)ea;
1035 op2v = (long double) info->op2.val.f;
1039 info->op2.type = fex_ldouble;
1040 op2v = info->op2.val.q = fpreg(uap, op & 7);
1047 info->op = fex_other;
1048 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1049 info->flags = 0;
1052 info->op2.type = fex_int;
1053 info->op2.val.i = *(int *)ea;
1054 op2v = (long double) info->op2.val.i;
1061 info->op = fex_other;
1062 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1063 info->flags = 0;
1066 info->op2.type = fex_double;
1067 info->op2.val.d = *(double *)ea;
1068 op2v = (long double) info->op2.val.d;
1073 info->op2.type = fex_ldouble;
1074 info->op2.val.q = fpreg(uap, op & 7);
1075 t = info->op1;
1076 info->op1 = info->op2;
1077 info->op2 = t;
1078 op2v = info->op2.val.q;
1085 info->op = fex_other;
1086 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1087 info->flags = 0;
1090 info->op2.type = fex_int;
1091 info->op2.val.i = *(short *)ea;
1092 op2v = (long double) info->op2.val.i;
1096 info->op = fex_other;
1097 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1098 info->flags = 0;
1103 info->res.type = fex_ldouble;
1106 info->op = fex_add;
1107 info->res.val.q = info->op1.val.q + op2v;
1111 info->op = fex_mul;
1112 info->res.val.q = info->op1.val.q * op2v;
1117 info->op = fex_cmp;
1118 info->res.type = fex_nodata;
1119 c = (info->op1.val.q < op2v);
1123 info->op = fex_sub;
1124 info->res.val.q = info->op1.val.q - op2v;
1128 info->op = fex_sub;
1129 info->res.val.q = op2v - info->op1.val.q;
1130 t = info->op1;
1131 info->op1 = info->op2;
1132 info->op2 = t;
1136 info->op = fex_div;
1137 info->res.val.q = info->op1.val.q / op2v;
1141 info->op = fex_div;
1142 info->res.val.q = op2v / info->op1.val.q;
1143 t = info->op1;
1144 info->op1 = info->op2;
1145 info->op2 = t;
1149 info->op = fex_other;
1150 info->op1.type = info->op2.type = info->res.type = fex_nodata;
1151 info->flags = 0;
1157 info->flags = cwsw & FE_ALL_EXCEPT;
1238 __fex_st_result(siginfo_t *sip, ucontext_t *uap, fex_info_t *info)
1351 r = info->res;