Lines Matching refs:info

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