fenv: Explicitly specify sizes for control and status words.
authorPeter Avalos <pavalos@dragonflybsd.org>
Tue, 1 Feb 2011 07:06:52 +0000 (21:06 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Fri, 4 Feb 2011 06:46:06 +0000 (20:46 -1000)
Obtained-from: FreeBSD

lib/libm/arch/i386/fenv.c
lib/libm/arch/i386/fenv.h
lib/libm/arch/x86_64/fenv.c
lib/libm/arch/x86_64/fenv.h

index f272224..cc11250 100644 (file)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/msun/i387/fenv.c,v 1.3 2007/01/05 07:15:26 das Exp $
+ * $FreeBSD: src/lib/msun/i387/fenv.c,v 1.4 2010/02/03 20:23:47 kib Exp $
  */
 
 #include <sys/cdefs.h>
@@ -86,7 +86,7 @@ int
 fesetexceptflag(const fexcept_t *flagp, int excepts)
 {
        fenv_t env;
-       int mxcsr;
+       __uint32_t mxcsr;
 
        __fnstenv(&env);
        env.__status &= ~excepts;
@@ -116,7 +116,7 @@ feraiseexcept(int excepts)
 int
 fegetenv(fenv_t *envp)
 {
-       int mxcsr;
+       __uint32_t mxcsr;
 
        __fnstenv(envp);
        /*
@@ -134,7 +134,7 @@ fegetenv(fenv_t *envp)
 int
 feholdexcept(fenv_t *envp)
 {
-       int mxcsr;
+       __uint32_t mxcsr;
 
        __fnstenv(envp);
        __fnclex();
@@ -167,7 +167,8 @@ feupdateenv(const fenv_t *envp)
 int
 __feenableexcept(int mask)
 {
-       int mxcsr, control, omask;
+       __uint32_t mxcsr, omask;
+       __uint16_t control;
 
        mask &= FE_ALL_EXCEPT;
        __fnstcw(&control);
index 1bfe0a1..2186895 100644 (file)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/msun/i387/fenv.h,v 1.6 2007/01/06 21:46:23 das Exp $
+ * $FreeBSD: src/lib/msun/i387/fenv.h,v 1.7 2010/02/03 20:23:47 kib Exp $
  */
 
 #ifndef        _FENV_H_
@@ -106,7 +106,7 @@ static __inline int
 feclearexcept(int __excepts)
 {
        fenv_t __env;
-       int __mxcsr;
+       __uint32_t __mxcsr;
 
        if (__excepts == FE_ALL_EXCEPT) {
                __fnclex();
@@ -158,7 +158,7 @@ fetestexcept(int __excepts)
 static __inline int
 fegetround(void)
 {
-       int __control;
+       __uint16_t __control;
 
        /*
         * We assume that the x87 and the SSE unit agree on the
@@ -201,7 +201,7 @@ static __inline int
 fesetenv(const fenv_t *__envp)
 {
        fenv_t __env = *__envp;
-       int __mxcsr;
+       __uint32_t __mxcsr;
 
        __mxcsr = __env.__mxcsr;
        __env.__mxcsr = 0xffffffff;
index 6c9f6d6..0f91f56 100644 (file)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/msun/amd64/fenv.c,v 1.4 2007/01/05 07:15:26 das Exp $
+ * $FreeBSD: src/lib/msun/amd64/fenv.c,v 1.5 2010/02/03 20:23:47 kib Exp $
  */
 
 #include <sys/cdefs.h>
@@ -86,7 +86,7 @@ fegetenv(fenv_t *envp)
 int
 feholdexcept(fenv_t *envp)
 {
-       int mxcsr;
+       __uint32_t mxcsr;
 
        __stmxcsr(&mxcsr);
        __fnstenv(&envp->__x87);
@@ -114,7 +114,8 @@ feupdateenv(const fenv_t *envp)
 int
 __feenableexcept(int mask)
 {
-       int mxcsr, control, omask;
+       __uint32_t mxcsr, omask;
+       __uint16_t control;
 
        mask &= FE_ALL_EXCEPT;
        __fnstcw(&control);
index 1394548..807971a 100644 (file)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/msun/amd64/fenv.h,v 1.6 2007/01/06 21:46:23 das Exp $
+ * $FreeBSD: src/lib/msun/amd64/fenv.h,v 1.7 2010/02/03 20:23:47 kib Exp $
  */
 
 #ifndef        _FENV_H_
@@ -136,7 +136,7 @@ fetestexcept(int __excepts)
 static __inline int
 fegetround(void)
 {
-       int __control;
+       __uint16_t  __control;
 
        /*
         * We assume that the x87 and the SSE unit agree on the