diff options
author | kargl <kargl@FreeBSD.org> | 2012-07-26 03:50:24 +0000 |
---|---|---|
committer | kargl <kargl@FreeBSD.org> | 2012-07-26 03:50:24 +0000 |
commit | 20f821c4653c4a0a7821eccf56ed51ea2fd835a8 (patch) | |
tree | ba544cf6b065baaa83156cb035a4e08daff30391 /lib/msun/src | |
parent | 430cf8efee0b56a369f33b1a60883a776f71a1d2 (diff) | |
download | FreeBSD-src-20f821c4653c4a0a7821eccf56ed51ea2fd835a8.zip FreeBSD-src-20f821c4653c4a0a7821eccf56ed51ea2fd835a8.tar.gz |
Replace code that toggles between 53 and 64 bits on i386
class hardware with the ENTERI and RETURNI macros, which
are now available in math_private.h.
Suggested by: bde
Approved by: das (mentor)
Diffstat (limited to 'lib/msun/src')
-rw-r--r-- | lib/msun/src/s_cbrtl.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/lib/msun/src/s_cbrtl.c b/lib/msun/src/s_cbrtl.c index 23c9184..95ab956 100644 --- a/lib/msun/src/s_cbrtl.c +++ b/lib/msun/src/s_cbrtl.c @@ -51,23 +51,12 @@ cbrtl(long double x) if (k == BIAS + LDBL_MAX_EXP) return (x + x); -#ifdef __i386__ - fp_prec_t oprec; - - oprec = fpgetprec(); - if (oprec != FP_PE) - fpsetprec(FP_PE); -#endif + ENTERI(); if (k == 0) { /* If x = +-0, then cbrt(x) = +-0. */ - if ((u.bits.manh | u.bits.manl) == 0) { -#ifdef __i386__ - if (oprec != FP_PE) - fpsetprec(oprec); -#endif - return (x); - } + if ((u.bits.manh | u.bits.manl) == 0) + RETURNI(x); /* Adjust subnormal numbers. */ u.e *= 0x1.0p514; k = u.bits.exp; @@ -149,9 +138,5 @@ cbrtl(long double x) t=t+t*r; /* error <= 0.5 + 0.5/3 + epsilon */ t *= v.e; -#ifdef __i386__ - if (oprec != FP_PE) - fpsetprec(oprec); -#endif - return (t); + RETURNI(t); } |