Module Name: src Committed By: matt Date: Tue Apr 30 01:45:14 UTC 2013
Modified Files: src/lib/libm/arch/arm: fenv.c Log Message: Make this compile for earmhf To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libm/arch/arm/fenv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libm/arch/arm/fenv.c diff -u src/lib/libm/arch/arm/fenv.c:1.1 src/lib/libm/arch/arm/fenv.c:1.2 --- src/lib/libm/arch/arm/fenv.c:1.1 Sun Apr 28 21:06:34 2013 +++ src/lib/libm/arch/arm/fenv.c Tue Apr 30 01:45:13 2013 @@ -28,20 +28,20 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: fenv.c,v 1.1 2013/04/28 21:06:34 matt Exp $"); +__RCSID("$NetBSD: fenv.c,v 1.2 2013/04/30 01:45:13 matt Exp $"); #include <sys/types.h> #include <assert.h> #include <fenv.h> #include <string.h> #include <unistd.h> +#include <inttypes.h> #ifdef __SOFTFP__ #include <ieeefp.h> #include <sys/signal.h> #include <sys/siginfo.h> #else -#include <inttypes.h> #include <arm/armreg.h> #endif @@ -56,7 +56,9 @@ const fenv_t __fe_dfl_env = VFP_FPSCR_FZ int feclearexcept(int excepts) { +#ifndef lint _DIAGASSERT((except & ~FE_EXCEPT_ALL) == 0); +#endif #ifdef __SOFTFP__ int old = fpresetsticky(excepts); return old & ~excepts; @@ -93,7 +95,9 @@ fegetexceptflag(fexcept_t *flagp, int ex int feraiseexcept(int excepts) { +#ifndef lint _DIAGASSERT((except & ~FE_EXCEPT_ALL) == 0); +#endif #ifdef __SOFTFP__ excepts &= fpgetsticky(); @@ -116,7 +120,7 @@ feraiseexcept(int excepts) sigqueueinfo(getpid(), &info); } #else - uint32_t fpscr = armreg_fpscr_read(); + int fpscr = armreg_fpscr_read(); fpscr = (fpscr & ~VFP_FPSCR_ESUM) | __SHIFTIN(excepts, VFP_FPSCR_ESUM); armreg_fpscr_write(fpscr); #endif @@ -135,7 +139,9 @@ feraiseexcept(int excepts) int fesetexceptflag(const fexcept_t *flagp, int excepts) { +#ifndef lint _DIAGASSERT((except & ~FE_EXCEPT_ALL) == 0); +#endif #ifdef __SOFTFP__ fpsetsticky((fpgetsticky() & ~excepts) | (excepts & *flagp)); #else @@ -184,7 +190,9 @@ fegetround(void) int fesetround(int round) { +#ifndef lint _DIAGASSERT(!(round & ~__SHIFTOUT(VFP_FPSCR_RMODE, VFP_FPSCR_RMODE))); +#endif #ifdef __SOFTFP__ (void)fpsetround(round); #else @@ -262,8 +270,9 @@ fesetenv(const fenv_t *envp) int feupdateenv(const fenv_t *envp) { +#ifndef lint _DIAGASSERT(envp != NULL); - +#endif #ifdef __SOFTFP__ (void)fpsetround(__SHIFTIN(*envp, VFP_FPSCR_RMODE)); (void)fpsetmask(fpgetmask() | __SHIFTOUT(*envp, VFP_FPSCR_ESUM));