Lines Matching defs:info

187 __fex_get_op(siginfo_t *sip, ucontext_t *uap, fex_info_t *info)
202 info->op1.type = fex_nodata;
204 info->op2.type = fex_int;
205 info->op2.val.i = *(int*)FPreg(rs2);
208 info->op2.type = fex_llong;
209 info->op2.val.l = *(long long*)FPREG(rs2);
214 info->op1.type = info->op2.type = fex_float;
215 info->op1.val.f = *(float*)FPreg(rs1);
216 info->op2.val.f = *(float*)FPreg(rs2);
220 info->op1.type = info->op2.type = fex_double;
221 info->op1.val.d = *(double*)FPREG(rs1);
222 info->op2.val.d = *(double*)FPREG(rs2);
226 info->op1.type = info->op2.type = fex_ldouble;
227 info->op1.val.q = *(long double*)FPREG(rs1);
228 info->op2.val.q = *(long double*)FPREG(rs2);
235 info->op = fex_other;
236 info->res.type = fex_nodata;
239 info->op = fex_cmp;
242 c = (info->op1.val.f == info->op2.val.f);
246 c = (info->op1.val.d == info->op2.val.d);
250 c = (info->op1.val.q == info->op2.val.q);
254 c = (info->op1.val.f < info->op2.val.f);
258 c = (info->op1.val.d < info->op2.val.d);
262 c = (info->op1.val.q < info->op2.val.q);
270 info->op = fex_add;
271 info->res.type = fex_float;
272 info->res.val.f = info->op1.val.f + info->op2.val.f;
276 info->op = fex_add;
277 info->res.type = fex_double;
278 info->res.val.d = info->op1.val.d + info->op2.val.d;
282 info->op = fex_add;
283 info->res.type = fex_ldouble;
284 info->res.val.q = info->op1.val.q + info->op2.val.q;
288 info->op = fex_sub;
289 info->res.type = fex_float;
290 info->res.val.f = info->op1.val.f - info->op2.val.f;
294 info->op = fex_sub;
295 info->res.type = fex_double;
296 info->res.val.d = info->op1.val.d - info->op2.val.d;
300 info->op = fex_sub;
301 info->res.type = fex_ldouble;
302 info->res.val.q = info->op1.val.q - info->op2.val.q;
306 info->op = fex_mul;
307 info->res.type = fex_float;
308 info->res.val.f = info->op1.val.f * info->op2.val.f;
312 info->op = fex_mul;
313 info->res.type = fex_double;
314 info->res.val.d = info->op1.val.d * info->op2.val.d;
318 info->op = fex_mul;
319 info->res.type = fex_ldouble;
320 info->res.val.q = info->op1.val.q * info->op2.val.q;
324 info->op = fex_mul;
325 info->res.type = fex_double;
326 info->res.val.d = (double)info->op1.val.f * (double)info->op2.val.f;
330 info->op = fex_mul;
331 info->res.type = fex_ldouble;
332 info->res.val.q = (long double)info->op1.val.d *
333 (long double)info->op2.val.d;
337 info->op = fex_div;
338 info->res.type = fex_float;
339 info->res.val.f = info->op1.val.f / info->op2.val.f;
343 info->op = fex_div;
344 info->res.type = fex_double;
345 info->res.val.d = info->op1.val.d / info->op2.val.d;
349 info->op = fex_div;
350 info->res.type = fex_ldouble;
351 info->res.val.q = info->op1.val.q / info->op2.val.q;
355 info->op = fex_sqrt;
356 info->op1 = info->op2;
357 info->op2.type = fex_nodata;
358 info->res.type = fex_float;
359 info->res.val.f = sqrtf(info->op1.val.f);
363 info->op = fex_sqrt;
364 info->op1 = info->op2;
365 info->op2.type = fex_nodata;
366 info->res.type = fex_double;
367 info->res.val.d = sqrt(info->op1.val.d);
371 info->op = fex_sqrt;
372 info->op1 = info->op2;
373 info->op2.type = fex_nodata;
374 info->res.type = fex_ldouble;
376 _Qp_sqrt(&info->res.val.q, &info->op1.val.q);
378 info->res.val.q = _Q_sqrt(info->op1.val.q);
383 info->op = fex_cnvt;
384 info->op1 = info->op2;
385 info->op2.type = fex_nodata;
388 info->res.type = fex_int;
389 info->res.val.i = (int) info->op1.val.f;
393 info->res.type = fex_int;
394 info->res.val.i = (int) info->op1.val.d;
398 info->res.type = fex_int;
399 info->res.val.i = (int) info->op1.val.q;
403 info->res.type = fex_llong;
404 info->res.val.l = (long long) info->op1.val.f;
408 info->res.type = fex_llong;
409 info->res.val.l = (long long) info->op1.val.d;
413 info->res.type = fex_llong;
414 info->res.val.l = (long long) info->op1.val.q;
418 info->res.type = fex_float;
419 info->res.val.f = (float) info->op1.val.i;
423 info->res.type = fex_float;
424 info->res.val.f = (float) info->op1.val.l;
428 info->res.type = fex_double;
429 info->res.val.d = (double) info->op1.val.l;
433 info->res.type = fex_float;
434 info->res.val.f = (float) info->op1.val.d;
438 info->res.type = fex_float;
439 info->res.val.f = (float) info->op1.val.q;
443 info->res.type = fex_double;
444 info->res.val.d = (double) info->op1.val.f;
448 info->res.type = fex_double;
449 info->res.val.d = (double) info->op1.val.q;
453 info->res.type = fex_ldouble;
454 info->res.val.q = (long double) info->op1.val.f;
458 info->res.type = fex_ldouble;
459 info->res.val.q = (long double) info->op1.val.d;
466 info->flags = (int)__fenv_get_ex(fsr);
476 __fex_st_result(siginfo_t *sip, ucontext_t *uap, fex_info_t *info)
506 if (info->res.type == fex_nodata) {
524 (void) __fex_get_op(sip, uap, info);
525 if (info->res.type != fex_nodata)
534 info->op1.val.f = *(float*)FPreg(rs1);
535 info->op2.val.f = *(float*)FPreg(rs2);
539 info->op1.val.d = *(double*)FPREG(rs1);
540 info->op2.val.d = *(double*)FPREG(rs2);
544 info->op1.val.q = *(long double*)FPREG(rs1);
545 info->op2.val.q = *(long double*)FPREG(rs2);
552 info->res.type = fex_float;
553 info->res.val.f = fscl * (fscl * info->op1.val.f +
554 fscl * info->op2.val.f);
558 info->res.type = fex_double;
559 info->res.val.d = dscl * (dscl * info->op1.val.d +
560 dscl * info->op2.val.d);
564 info->res.type = fex_ldouble;
565 info->res.val.q = qscl * (qscl * info->op1.val.q +
566 qscl * info->op2.val.q);
570 info->res.type = fex_float;
571 info->res.val.f = fscl * (fscl * info->op1.val.f -
572 fscl * info->op2.val.f);
576 info->res.type = fex_double;
577 info->res.val.d = dscl * (dscl * info->op1.val.d -
578 dscl * info->op2.val.d);
582 info->res.type = fex_ldouble;
583 info->res.val.q = qscl * (qscl * info->op1.val.q -
584 qscl * info->op2.val.q);
588 info->res.type = fex_float;
589 info->res.val.f = (fscl * info->op1.val.f) *
590 (fscl * info->op2.val.f);
594 info->res.type = fex_double;
595 info->res.val.d = (dscl * info->op1.val.d) *
596 (dscl * info->op2.val.d);
600 info->res.type = fex_ldouble;
601 info->res.val.q = (qscl * info->op1.val.q) *
602 (qscl * info->op2.val.q);
606 info->res.type = fex_float;
607 info->res.val.f = (fscl * info->op1.val.f) /
608 (info->op2.val.f / fscl);
612 info->res.type = fex_double;
613 info->res.val.d = (dscl * info->op1.val.d) /
614 (info->op2.val.d / dscl);
618 info->res.type = fex_ldouble;
619 info->res.val.q = (qscl * info->op1.val.q) /
620 (info->op2.val.q / qscl);
624 info->res.type = fex_float;
625 info->res.val.f = (float) (fscl * (fscl * info->op1.val.d));
629 info->res.type = fex_float;
630 info->res.val.f = (float) (fscl * (fscl * info->op1.val.q));
634 info->res.type = fex_double;
635 info->res.val.d = (double) (dscl * (dscl * info->op1.val.q));
639 if (info->res.type == fex_nodata)
648 switch (info->res.type) {
650 info->res.val.i = (int) info->res.val.l;
654 info->res.val.i = (int) info->res.val.f;
658 info->res.val.i = (int) info->res.val.d;
662 info->res.val.i = (int) info->res.val.q;
668 *(int*)FPreg(rd) = info->res.val.i;
674 switch (info->res.type) {
676 info->res.val.l = (long long) info->res.val.i;
680 info->res.val.l = (long long) info->res.val.f;
684 info->res.val.l = (long long) info->res.val.d;
688 info->res.val.l = (long long) info->res.val.q;
694 *(long long*)FPREG(rd) = info->res.val.l;
698 switch (info->res.type) {
700 info->res.val.f = (float) info->res.val.i;
704 info->res.val.f = (float) info->res.val.l;
708 info->res.val.f = (float) info->res.val.d;
712 info->res.val.f = (float) info->res.val.q;
718 *(float*)FPreg(rd) = info->res.val.f;
722 switch (info->res.type) {
724 info->res.val.d = (double) info->res.val.i;
728 info->res.val.d = (double) info->res.val.l;
732 info->res.val.d = (double) info->res.val.f;
736 info->res.val.d = (double) info->res.val.q;
742 *(double*)FPREG(rd) = info->res.val.d;
746 switch (info->res.type) {
748 info->res.val.q = (long double) info->res.val.i;
752 info->res.val.q = (long double) info->res.val.l;
756 info->res.val.q = (long double) info->res.val.f;
760 info->res.val.q = (long double) info->res.val.d;
766 *(long double*)FPREG(rd) = info->res.val.q;
775 switch (info->res.type) {
777 info->res.val.d = (double) info->res.val.i;
781 info->res.val.d = (double) info->res.val.l;
785 info->res.val.d = (double) info->res.val.f;
789 info->res.val.d = (double) info->res.val.q;
795 *(double*)FPREG(rd) = info->res.val.d;
799 switch (info->res.type) {
801 info->res.val.q = (long double) info->res.val.i;
805 info->res.val.q = (long double) info->res.val.l;
809 info->res.val.q = (long double) info->res.val.f;
813 info->res.val.q = (long double) info->res.val.d;
819 *(long double*)FPREG(rd) = info->res.val.q;
827 switch (info->res.type) {
829 info->res.val.f = (float) info->res.val.i;
833 info->res.val.f = (float) info->res.val.l;
837 info->res.val.f = (float) info->res.val.d;
841 info->res.val.f = (float) info->res.val.q;
847 *(float*)FPreg(rd) = info->res.val.f;
851 switch (info->res.type) {
853 info->res.val.d = (double) info->res.val.i;
857 info->res.val.d = (double) info->res.val.l;
861 info->res.val.d = (double) info->res.val.f;
865 info->res.val.d = (double) info->res.val.q;
871 *(double*)FPREG(rd) = info->res.val.d;
875 switch (info->res.type) {
877 info->res.val.q = (long double) info->res.val.i;
881 info->res.val.q = (long double) info->res.val.l;
885 info->res.val.q = (long double) info->res.val.f;
889 info->res.val.q = (long double) info->res.val.d;
895 *(long double*)FPREG(rd) = info->res.val.q;