summaryrefslogtreecommitdiffstats
path: root/lib/msun/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun/src')
-rw-r--r--lib/msun/src/e_acosl.c14
-rw-r--r--lib/msun/src/e_atan2l.c14
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/msun/src/e_acosl.c b/lib/msun/src/e_acosl.c
index 4e9df52..d33c8fe 100644
--- a/lib/msun/src/e_acosl.c
+++ b/lib/msun/src/e_acosl.c
@@ -27,9 +27,19 @@ __FBSDID("$FreeBSD$");
#include "math_private.h"
static const long double
-one= 1.00000000000000000000e+00,
+one= 1.00000000000000000000e+00;
+
+#ifdef __i386__
+/* XXX Work around the fact that gcc truncates long double constants on i386 */
+static volatile double
+pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1 */
+pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */
+#define pi ((long double)pi1 + pi2)
+#else
+static const long double
pi = 3.14159265358979323846264338327950280e+00L;
-
+#endif
+
long double
acosl(long double x)
{
diff --git a/lib/msun/src/e_atan2l.c b/lib/msun/src/e_atan2l.c
index 8368bbf..0071a7c 100644
--- a/lib/msun/src/e_atan2l.c
+++ b/lib/msun/src/e_atan2l.c
@@ -30,8 +30,18 @@ __FBSDID("$FreeBSD$");
static volatile long double
tiny = 1.0e-300;
static const long double
-zero = 0.0,
-pi = 3.14159265358979323846264338327950280e+00L;
+zero = 0.0;
+
+#ifdef __i386__
+/* XXX Work around the fact that gcc truncates long double constants on i386 */
+static volatile double
+pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1 */
+pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */
+#define pi ((long double)pi1 + pi2)
+#else
+static const long double
+pi = 3.14159265358979323846264338327950280e+00L;
+#endif
long double
atan2l(long double y, long double x)
OpenPOWER on IntegriCloud