diff --git a/libm/i387/fenv.c b/libm/i387/fenv.c index 2794faf81..aabe270d5 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 b124366ac..4281f10eb 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())