summaryrefslogtreecommitdiffstats
path: root/lib/msun/mips
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun/mips')
-rw-r--r--lib/msun/mips/Symbol.map8
-rw-r--r--lib/msun/mips/fenv.c17
-rw-r--r--lib/msun/mips/fenv.h34
3 files changed, 45 insertions, 14 deletions
diff --git a/lib/msun/mips/Symbol.map b/lib/msun/mips/Symbol.map
index 3121177..971112e 100644
--- a/lib/msun/mips/Symbol.map
+++ b/lib/msun/mips/Symbol.map
@@ -3,3 +3,11 @@
*/
FBSD_1.0 {
};
+
+FBSD_1.3 {
+ fesetexceptflag;
+ feraiseexcept;
+ fegetenv;
+ feholdexcept;
+ feupdateenv;
+};
diff --git a/lib/msun/mips/fenv.c b/lib/msun/mips/fenv.c
index a6781e0..f96bb64 100644
--- a/lib/msun/mips/fenv.c
+++ b/lib/msun/mips/fenv.c
@@ -26,10 +26,27 @@
* $FreeBSD$
*/
+#define __fenv_static
#include <fenv.h>
+#ifdef __GNUC_GNU_INLINE__
+#error "This file must be compiled with C99 'inline' semantics"
+#endif
+
/*
* Hopefully the system ID byte is immutable, so it's valid to use
* this as a default environment.
*/
const fenv_t __fe_dfl_env = 0;
+
+extern inline int feclearexcept(int __excepts);
+extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts);
+extern inline int fesetexceptflag(const fexcept_t *__flagp, int __excepts);
+extern inline int feraiseexcept(int __excepts);
+extern inline int fetestexcept(int __excepts);
+extern inline int fegetround(void);
+extern inline int fesetround(int __round);
+extern inline int fegetenv(fenv_t *__envp);
+extern inline int feholdexcept(fenv_t *__envp);
+extern inline int fesetenv(const fenv_t *__envp);
+extern inline int feupdateenv(const fenv_t *__envp);
diff --git a/lib/msun/mips/fenv.h b/lib/msun/mips/fenv.h
index d540ae2..f114998 100644
--- a/lib/msun/mips/fenv.h
+++ b/lib/msun/mips/fenv.h
@@ -31,6 +31,10 @@
#include <sys/_types.h>
+#ifndef __fenv_static
+#define __fenv_static static
+#endif
+
typedef __uint32_t fenv_t;
typedef __uint32_t fexcept_t;
@@ -68,7 +72,7 @@ extern const fenv_t __fe_dfl_env;
#define __wfs(__fpsr)
#endif
-static __inline int
+__fenv_static inline int
feclearexcept(int __excepts)
{
fexcept_t __fpsr;
@@ -79,7 +83,7 @@ feclearexcept(int __excepts)
return (0);
}
-static __inline int
+__fenv_static inline int
fegetexceptflag(fexcept_t *__flagp, int __excepts)
{
fexcept_t __fpsr;
@@ -89,7 +93,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts)
return (0);
}
-static __inline int
+__fenv_static inline int
fesetexceptflag(const fexcept_t *__flagp, int __excepts)
{
fexcept_t __fpsr;
@@ -101,7 +105,7 @@ fesetexceptflag(const fexcept_t *__flagp, int __excepts)
return (0);
}
-static __inline int
+__fenv_static inline int
feraiseexcept(int __excepts)
{
fexcept_t __ex = __excepts;
@@ -110,7 +114,7 @@ feraiseexcept(int __excepts)
return (0);
}
-static __inline int
+__fenv_static inline int
fetestexcept(int __excepts)
{
fexcept_t __fpsr;
@@ -119,7 +123,7 @@ fetestexcept(int __excepts)
return (__fpsr & __excepts);
}
-static __inline int
+__fenv_static inline int
fegetround(void)
{
@@ -131,14 +135,14 @@ fegetround(void)
return (-1);
}
-static __inline int
+__fenv_static inline int
fesetround(int __round)
{
return (-1);
}
-static __inline int
+__fenv_static inline int
fegetenv(fenv_t *__envp)
{
@@ -146,7 +150,7 @@ fegetenv(fenv_t *__envp)
return (0);
}
-static __inline int
+__fenv_static inline int
feholdexcept(fenv_t *__envp)
{
fenv_t __env;
@@ -158,7 +162,7 @@ feholdexcept(fenv_t *__envp)
return (0);
}
-static __inline int
+__fenv_static inline int
fesetenv(const fenv_t *__envp)
{
@@ -166,7 +170,7 @@ fesetenv(const fenv_t *__envp)
return (0);
}
-static __inline int
+__fenv_static inline int
feupdateenv(const fenv_t *__envp)
{
fexcept_t __fpsr;
@@ -179,7 +183,9 @@ feupdateenv(const fenv_t *__envp)
#if __BSD_VISIBLE
-static __inline int
+/* We currently provide no external definitions of the functions below. */
+
+static inline int
feenableexcept(int __mask)
{
fenv_t __old_fpsr, __new_fpsr;
@@ -190,7 +196,7 @@ feenableexcept(int __mask)
return ((__old_fpsr >> _FPUSW_SHIFT) & FE_ALL_EXCEPT);
}
-static __inline int
+static inline int
fedisableexcept(int __mask)
{
fenv_t __old_fpsr, __new_fpsr;
@@ -201,7 +207,7 @@ fedisableexcept(int __mask)
return ((__old_fpsr >> _FPUSW_SHIFT) & FE_ALL_EXCEPT);
}
-static __inline int
+static inline int
fegetexcept(void)
{
fenv_t __fpsr;
OpenPOWER on IntegriCloud