Lines Matching refs:R
229 #define _FP_ADD_INTERNAL(fs, wc, R, X, Y, OP) \ argument
245 R##_e = Y##_e; \
256 R##_e = X##_e; \
259 R##_c = FP_CLS_NORMAL; \
263 R##_s = X##_s; \
264 _FP_FRAC_ADD_##wc(R, X, Y); \
265 if (_FP_FRAC_OVERP_##wc(fs, R)) \
267 _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
268 R##_e++; \
273 R##_s = X##_s; \
274 _FP_FRAC_SUB_##wc(R, X, Y); \
275 if (_FP_FRAC_ZEROP_##wc(R)) \
279 R##_s |= Y##_s; \
281 R##_s &= Y##_s; \
282 R##_c = FP_CLS_ZERO; \
286 if (_FP_FRAC_NEGP_##wc(R)) \
288 _FP_FRAC_SUB_##wc(R, Y, X); \
289 R##_s = Y##_s; \
293 _FP_FRAC_CLZ_##wc(diff, R); \
297 R##_e -= diff; \
298 _FP_FRAC_SLL_##wc(R, diff); \
306 _FP_CHOOSENAN(fs, wc, R, X, Y, OP); \
310 R##_e = X##_e; \
314 _FP_FRAC_COPY_##wc(R, X); \
315 R##_s = X##_s; \
316 R##_c = X##_c; \
320 R##_e = Y##_e; \
324 _FP_FRAC_COPY_##wc(R, Y); \
325 R##_s = Y##_s; \
326 R##_c = Y##_c; \
333 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
334 R##_s = _FP_NANSIGN_##fs; \
335 R##_c = FP_CLS_NAN; \
343 R##_s = X##_s; \
344 R##_c = FP_CLS_INF; \
349 R##_s = Y##_s; \
350 R##_c = FP_CLS_INF; \
356 R##_s = X##_s | Y##_s; \
358 R##_s = X##_s & Y##_s; \
359 R##_c = FP_CLS_ZERO; \
367 #define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL(fs, wc, R, X, Y, '+') argument
368 #define _FP_SUB(fs, wc, R, X, Y) \ argument
371 _FP_ADD_INTERNAL(fs, wc, R, X, Y, '-'); \
380 #define _FP_NEG(fs, wc, R, X) \ argument
382 _FP_FRAC_COPY_##wc(R, X); \
383 R##_c = X##_c; \
384 R##_e = X##_e; \
385 R##_s = 1 ^ X##_s; \
393 #define _FP_MUL(fs, wc, R, X, Y) \ argument
395 R##_s = X##_s ^ Y##_s; \
399 R##_c = FP_CLS_NORMAL; \
400 R##_e = X##_e + Y##_e + 1; \
402 _FP_MUL_MEAT_##fs(R,X,Y); \
404 if (_FP_FRAC_OVERP_##wc(fs, R)) \
405 _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
407 R##_e--; \
411 _FP_CHOOSENAN(fs, wc, R, X, Y, '*'); \
417 R##_s = X##_s; \
423 _FP_FRAC_COPY_##wc(R, X); \
424 R##_c = X##_c; \
430 R##_s = Y##_s; \
434 _FP_FRAC_COPY_##wc(R, Y); \
435 R##_c = Y##_c; \
440 R##_s = _FP_NANSIGN_##fs; \
441 R##_c = FP_CLS_NAN; \
442 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
456 #define _FP_DIV(fs, wc, R, X, Y) \ argument
458 R##_s = X##_s ^ Y##_s; \
462 R##_c = FP_CLS_NORMAL; \
463 R##_e = X##_e - Y##_e; \
465 _FP_DIV_MEAT_##fs(R,X,Y); \
469 _FP_CHOOSENAN(fs, wc, R, X, Y, '/'); \
475 R##_s = X##_s; \
476 _FP_FRAC_COPY_##wc(R, X); \
477 R##_c = X##_c; \
483 R##_s = Y##_s; \
484 _FP_FRAC_COPY_##wc(R, Y); \
485 R##_c = Y##_c; \
491 R##_c = FP_CLS_ZERO; \
498 R##_c = FP_CLS_INF; \
502 R##_s = _FP_NANSIGN_##fs; \
503 R##_c = FP_CLS_NAN; \
504 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
509 R##_s = _FP_NANSIGN_##fs; \
510 R##_c = FP_CLS_NAN; \
511 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
586 #define _FP_SQRT(fs, wc, R, X) \ argument
593 _FP_FRAC_COPY_##wc(R, X); \
594 R##_s = X##_s; \
595 R##_c = FP_CLS_NAN; \
600 R##_s = _FP_NANSIGN_##fs; \
601 R##_c = FP_CLS_NAN; /* NAN */ \
602 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
607 R##_s = 0; \
608 R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
612 R##_s = X##_s; \
613 R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \
616 R##_s = 0; \
619 R##_c = FP_CLS_NAN; /* sNAN */ \
620 R##_s = _FP_NANSIGN_##fs; \
621 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
625 R##_c = FP_CLS_NORMAL; \
628 R##_e = X##_e >> 1; \
630 _FP_FRAC_SET_##wc(R, _FP_ZEROFRAC_##wc); \
632 _FP_SQRT_MEAT_##wc(R, S, T, X, q); \