summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libm/i387/fenv.c3
-rw-r--r--libm/include/i387/fenv.h5
2 files changed, 5 insertions, 3 deletions
diff --git a/libm/i387/fenv.c b/libm/i387/fenv.c
index 2794faf..aabe270 100644
--- a/libm/i387/fenv.c
+++ b/libm/i387/fenv.c
@@ -153,7 +153,8 @@ feholdexcept(fenv_t *envp)
int
feupdateenv(const fenv_t *envp)
{
- int mxcsr, status;
+ int mxcsr;
+ short status;
__fnstsw(&status);
if (__HAS_SSE())
diff --git a/libm/include/i387/fenv.h b/libm/include/i387/fenv.h
index b124366..4281f10 100644
--- a/libm/include/i387/fenv.h
+++ b/libm/include/i387/fenv.h
@@ -102,7 +102,7 @@ extern const fenv_t __fe_dfl_env;
#define __fnclex() __asm __volatile("fnclex")
#define __fnstenv(__env) __asm __volatile("fnstenv %0" : "=m" (*(__env)))
#define __fnstcw(__cw) __asm __volatile("fnstcw %0" : "=m" (*(__cw)))
-#define __fnstsw(__sw) __asm __volatile("fnstsw %0" : "=am" (*(__sw)))
+#define __fnstsw(__sw) __asm __volatile("fnstsw %0" : "=a" (*(__sw)))
#define __fwait() __asm __volatile("fwait")
#define __ldmxcsr(__csr) __asm __volatile("ldmxcsr %0" : : "m" (__csr))
#define __stmxcsr(__csr) __asm __volatile("stmxcsr %0" : "=m" (*(__csr)))
@@ -148,7 +148,8 @@ int feraiseexcept(int __excepts);
static __inline int
fetestexcept(int __excepts)
{
- int __mxcsr, __status;
+ int __mxcsr;
+ short __status;
__fnstsw(&__status);
if (__HAS_SSE())