Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Feb 2010 09:09:12 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r203989 - in stable/8/lib/msun: amd64 i387
Message-ID:  <201002170909.o1H99C2G095444@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Wed Feb 17 09:09:12 2010
New Revision: 203989
URL: http://svn.freebsd.org/changeset/base/203989

Log:
  MFC r203441:
  Placate new binutils, by using 16-bit %ax instead of 32-bit %eax as an
  argument for fnstsw. Explicitely specify sizes for the XMM control and
  status word and X87 control and status words.

Modified:
  stable/8/lib/msun/amd64/fenv.c
  stable/8/lib/msun/amd64/fenv.h
  stable/8/lib/msun/i387/fenv.c
  stable/8/lib/msun/i387/fenv.h
Directory Properties:
  stable/8/lib/msun/   (props changed)

Modified: stable/8/lib/msun/amd64/fenv.c
==============================================================================
--- stable/8/lib/msun/amd64/fenv.c	Wed Feb 17 09:03:38 2010	(r203988)
+++ stable/8/lib/msun/amd64/fenv.c	Wed Feb 17 09:09:12 2010	(r203989)
@@ -86,7 +86,7 @@ fegetenv(fenv_t *envp)
 int
 feholdexcept(fenv_t *envp)
 {
-	int mxcsr;
+	__uint32_t mxcsr;
 
 	__stmxcsr(&mxcsr);
 	__fnstenv(&envp->__x87);
@@ -101,7 +101,8 @@ feholdexcept(fenv_t *envp)
 int
 feupdateenv(const fenv_t *envp)
 {
-	int mxcsr, status;
+	__uint32_t mxcsr;
+	__uint16_t status;
 
 	__fnstsw(&status);
 	__stmxcsr(&mxcsr);
@@ -113,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);
@@ -129,7 +131,8 @@ __feenableexcept(int mask)
 int
 __fedisableexcept(int mask)
 {
-	int mxcsr, control, omask;
+	__uint32_t mxcsr, omask;
+	__uint16_t control;
 
 	mask &= FE_ALL_EXCEPT;
 	__fnstcw(&control);

Modified: stable/8/lib/msun/amd64/fenv.h
==============================================================================
--- stable/8/lib/msun/amd64/fenv.h	Wed Feb 17 09:03:38 2010	(r203988)
+++ stable/8/lib/msun/amd64/fenv.h	Wed Feb 17 09:09:12 2010	(r203989)
@@ -110,7 +110,8 @@ feclearexcept(int __excepts)
 static __inline int
 fegetexceptflag(fexcept_t *__flagp, int __excepts)
 {
-	int __mxcsr, __status;
+	__uint32_t __mxcsr;
+	__uint16_t __status;
 
 	__stmxcsr(&__mxcsr);
 	__fnstsw(&__status);
@@ -124,7 +125,8 @@ int feraiseexcept(int __excepts);
 static __inline int
 fetestexcept(int __excepts)
 {
-	int __mxcsr, __status;
+	__uint32_t __mxcsr;
+	__uint16_t __status;
 
 	__stmxcsr(&__mxcsr);
 	__fnstsw(&__status);
@@ -134,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
@@ -149,7 +151,8 @@ fegetround(void)
 static __inline int
 fesetround(int __round)
 {
-	int __mxcsr, __control;
+	__uint32_t __mxcsr;
+	__uint16_t __control;
 
 	if (__round & ~_ROUND_MASK)
 		return (-1);
@@ -197,7 +200,7 @@ int fedisableexcept(int __mask);
 static __inline int
 fegetexcept(void)
 {
-	int __control;
+	__uint16_t __control;
 
 	/*
 	 * We assume that the masks for the x87 and the SSE unit are

Modified: stable/8/lib/msun/i387/fenv.c
==============================================================================
--- stable/8/lib/msun/i387/fenv.c	Wed Feb 17 09:03:38 2010	(r203988)
+++ stable/8/lib/msun/i387/fenv.c	Wed Feb 17 09:09:12 2010	(r203989)
@@ -87,7 +87,7 @@ int
 fesetexceptflag(const fexcept_t *flagp, int excepts)
 {
 	fenv_t env;
-	int mxcsr;
+	__uint32_t mxcsr;
 
 	__fnstenv(&env);
 	env.__status &= ~excepts;
@@ -117,7 +117,7 @@ feraiseexcept(int excepts)
 int
 fegetenv(fenv_t *envp)
 {
-	int mxcsr;
+	__uint32_t mxcsr;
 
 	__fnstenv(envp);
 	/*
@@ -135,7 +135,7 @@ fegetenv(fenv_t *envp)
 int
 feholdexcept(fenv_t *envp)
 {
-	int mxcsr;
+	__uint32_t mxcsr;
 
 	__fnstenv(envp);
 	__fnclex();
@@ -152,7 +152,8 @@ feholdexcept(fenv_t *envp)
 int
 feupdateenv(const fenv_t *envp)
 {
-	int mxcsr, status;
+	__uint32_t mxcsr;
+	__uint16_t status;
 
 	__fnstsw(&status);
 	if (__HAS_SSE())
@@ -167,7 +168,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);
@@ -188,7 +190,8 @@ __feenableexcept(int mask)
 int
 __fedisableexcept(int mask)
 {
-	int mxcsr, control, omask;
+	__uint32_t mxcsr, omask;
+	__uint16_t control;
 
 	mask &= FE_ALL_EXCEPT;
 	__fnstcw(&control);

Modified: stable/8/lib/msun/i387/fenv.h
==============================================================================
--- stable/8/lib/msun/i387/fenv.h	Wed Feb 17 09:03:38 2010	(r203988)
+++ stable/8/lib/msun/i387/fenv.h	Wed Feb 17 09:09:12 2010	(r203989)
@@ -114,7 +114,7 @@ static __inline int
 feclearexcept(int __excepts)
 {
 	fenv_t __env;
-	int __mxcsr;
+	__uint32_t __mxcsr;
 
 	if (__excepts == FE_ALL_EXCEPT) {
 		__fnclex();
@@ -134,7 +134,8 @@ feclearexcept(int __excepts)
 static __inline int
 fegetexceptflag(fexcept_t *__flagp, int __excepts)
 {
-	int __mxcsr, __status;
+	__uint32_t __mxcsr;
+	__uint16_t __status;
 
 	__fnstsw(&__status);
 	if (__HAS_SSE())
@@ -151,7 +152,8 @@ int feraiseexcept(int __excepts);
 static __inline int
 fetestexcept(int __excepts)
 {
-	int __mxcsr, __status;
+	__uint32_t __mxcsr;
+	__uint16_t __status;
 
 	__fnstsw(&__status);
 	if (__HAS_SSE())
@@ -164,7 +166,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
@@ -179,7 +181,8 @@ fegetround(void)
 static __inline int
 fesetround(int __round)
 {
-	int __mxcsr, __control;
+	__uint32_t __mxcsr;
+	__uint16_t __control;
 
 	if (__round & ~_ROUND_MASK)
 		return (-1);
@@ -206,7 +209,7 @@ static __inline int
 fesetenv(const fenv_t *__envp)
 {
 	fenv_t __env = *__envp;
-	int __mxcsr;
+	__uint32_t __mxcsr;
 
 	__mxcsr = __get_mxcsr(__env);
 	__set_mxcsr(__env, 0xffffffff);
@@ -234,7 +237,7 @@ int fedisableexcept(int __mask);
 static __inline int
 fegetexcept(void)
 {
-	int __control;
+	__uint16_t __control;
 
 	/*
 	 * We assume that the masks for the x87 and the SSE unit are



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002170909.o1H99C2G095444>