From 61bfe38d89e04b89a7da1de54a588e723fe1a7e8 Mon Sep 17 00:00:00 2001 From: dannysmith Date: Thu, 25 Aug 2005 08:39:53 +0000 Subject: [PATCH] * mingwex/fe*.c: Revert previous changes. * include/fenv.h: Revert previous changes. Add Changelog entry for the reverted change. --- winsup/mingw/ChangeLog | 19 +++++++++++++++++++ winsup/mingw/include/fenv.h | 14 +++++++------- winsup/mingw/mingwex/feclearexcept.c | 4 +++- winsup/mingw/mingwex/fegetenv.c | 3 ++- winsup/mingw/mingwex/fegetexceptflag.c | 3 ++- winsup/mingw/mingwex/feraiseexcept.c | 3 ++- winsup/mingw/mingwex/fesetenv.c | 4 +++- winsup/mingw/mingwex/fesetexceptflag.c | 3 ++- winsup/mingw/mingwex/feupdateenv.c | 3 ++- 9 files changed, 42 insertions(+), 14 deletions(-) diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 61b73dd268..1d20520035 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,5 +1,24 @@ 2005-08-25 Danny Smith + * mingwex/fe*.c: Revert previous changes. + * include/fenv.h: Revert previous changes. + +2005-08-25 Danny Smith + + * mingwex/feclearexcept.c (feclearexcept): Change declaration. + Do not return a value. + * mingwex/fegetexceptflag.c (fegetexceptflag): Likewise. + * mingwex/feraiseexcept.c (feraiseexcept): Likewise. + * mingwex/fesetexceptflag.c (fesetexceptflag): Likewise. + * mingwex/fegetenv.c (fegetenv): Likewise. + * mingwex/fesetenv.c (fesetenv): Likewise. + * mingwex/feupdateenv.c (feupdateenv): Likewise. + * include/fenv.h (feclearexcept, fegetexceptflag, feraiseexcept, + fesetexceptflag, fegetenv, fesetenv, feupdateenv): Correct + prototypes. + +2005-08-25 Danny Smith + * mingwex/stdio/fseeko64.c (fseeko64): Flush stream before getting filelength for SEEK_END. diff --git a/winsup/mingw/include/fenv.h b/winsup/mingw/include/fenv.h index b57a7e0f5b..43dfd338a4 100644 --- a/winsup/mingw/include/fenv.h +++ b/winsup/mingw/include/fenv.h @@ -65,10 +65,10 @@ extern "C" { /*TODO: Some of these could be inlined */ /* 7.6.2 Exception */ -extern void __cdecl feclearexcept (int); -extern void __cdecl fegetexceptflag (fexcept_t * flagp, int excepts); -extern void __cdecl feraiseexcept (int excepts ); -extern void __cdecl fesetexceptflag (const fexcept_t *, int); +extern int __cdecl feclearexcept (int); +extern int __cdecl fegetexceptflag (fexcept_t * flagp, int excepts); +extern int __cdecl feraiseexcept (int excepts ); +extern int __cdecl fesetexceptflag (const fexcept_t *, int); extern int __cdecl fetestexcept (int excepts); /* 7.6.3 Rounding */ @@ -78,9 +78,9 @@ extern int __cdecl fesetround (int mode); /* 7.6.4 Environment */ -extern void __cdecl fegetenv (fenv_t * envp); -extern void __cdecl fesetenv (const fenv_t * ); -extern void __cdecl feupdateenv (const fenv_t *); +extern int __cdecl fegetenv (fenv_t * envp); +extern int __cdecl fesetenv (const fenv_t * ); +extern int __cdecl feupdateenv (const fenv_t *); extern int __cdecl feholdexcept (fenv_t *); #ifdef __cplusplus diff --git a/winsup/mingw/mingwex/feclearexcept.c b/winsup/mingw/mingwex/feclearexcept.c index 127efb999f..8c943893b5 100644 --- a/winsup/mingw/mingwex/feclearexcept.c +++ b/winsup/mingw/mingwex/feclearexcept.c @@ -4,10 +4,12 @@ The feclearexcept function clears the supported exceptions represented by its argument. */ -void feclearexcept (int excepts) +int feclearexcept (int excepts) { fenv_t _env; __asm__ volatile ("fnstenv %0;" : "=m" (_env)); /* get the env */ _env.__status_word &= ~(excepts & FE_ALL_EXCEPT); /* clear the except */ __asm__ volatile ("fldenv %0;" :: "m" (_env)); /*set the env */ + + return 0; } diff --git a/winsup/mingw/mingwex/fegetenv.c b/winsup/mingw/mingwex/fegetenv.c index 4553ce1a34..5ea5bd011f 100644 --- a/winsup/mingw/mingwex/fegetenv.c +++ b/winsup/mingw/mingwex/fegetenv.c @@ -4,8 +4,9 @@ The fegetenv function stores the current floating-point environment in the object pointed to by envp. */ -void fegetenv (fenv_t * envp) +int fegetenv (fenv_t * envp) { __asm__ ("fnstenv %0;": "=m" (*envp)); + return 0; } diff --git a/winsup/mingw/mingwex/fegetexceptflag.c b/winsup/mingw/mingwex/fegetexceptflag.c index 126751bf17..353e90dfae 100644 --- a/winsup/mingw/mingwex/fegetexceptflag.c +++ b/winsup/mingw/mingwex/fegetexceptflag.c @@ -6,9 +6,10 @@ representation of the exception flags indicated by the argument excepts in the object pointed to by the argument flagp. */ -void fegetexceptflag (fexcept_t * flagp, int excepts) +int fegetexceptflag (fexcept_t * flagp, int excepts) { unsigned short _sw; __asm__ ("fnstsw %%ax;": "=a" (_sw)); *flagp = _sw & excepts & FE_ALL_EXCEPT; + return 0; } diff --git a/winsup/mingw/mingwex/feraiseexcept.c b/winsup/mingw/mingwex/feraiseexcept.c index 7cc49fd8f7..b1ba870068 100644 --- a/winsup/mingw/mingwex/feraiseexcept.c +++ b/winsup/mingw/mingwex/feraiseexcept.c @@ -8,11 +8,12 @@ the inexact exception whenever it raises the overflow or underflow exception is implementation-defined. */ -void feraiseexcept (int excepts) +int feraiseexcept (int excepts) { fenv_t _env; __asm__ volatile ("fnstenv %0;" : "=m" (_env)); _env.__status_word |= excepts & FE_ALL_EXCEPT; __asm__ volatile ("fldenv %0;" "fwait;" : : "m" (_env)); + return 0; } diff --git a/winsup/mingw/mingwex/fesetenv.c b/winsup/mingw/mingwex/fesetenv.c index 2845015c3e..3d7b5604aa 100644 --- a/winsup/mingw/mingwex/fesetenv.c +++ b/winsup/mingw/mingwex/fesetenv.c @@ -13,7 +13,7 @@ extern void (*_imp___fpreset)( void ) ; -void fesetenv (const fenv_t * envp) +int fesetenv (const fenv_t * envp) { if (envp == FE_PC64_ENV) /* @@ -38,4 +38,6 @@ void fesetenv (const fenv_t * envp) else __asm__ ("fldenv %0;" : : "m" (*envp)); + + return 0; } diff --git a/winsup/mingw/mingwex/fesetexceptflag.c b/winsup/mingw/mingwex/fesetexceptflag.c index e4aecad3b6..7f4b8e5625 100644 --- a/winsup/mingw/mingwex/fesetexceptflag.c +++ b/winsup/mingw/mingwex/fesetexceptflag.c @@ -9,7 +9,7 @@ represented by the argument excepts. This function does not raise exceptions, but only sets the state of the flags. */ -void fesetexceptflag (const fexcept_t * flagp, int excepts) +int fesetexceptflag (const fexcept_t * flagp, int excepts) { fenv_t _env; @@ -18,4 +18,5 @@ void fesetexceptflag (const fexcept_t * flagp, int excepts) _env.__status_word &= ~excepts; _env.__status_word |= (*flagp & excepts); __asm__ volatile ("fldenv %0;" : : "m" (_env)); + return 0; } diff --git a/winsup/mingw/mingwex/feupdateenv.c b/winsup/mingw/mingwex/feupdateenv.c index fd01425ec1..f414837f5f 100644 --- a/winsup/mingw/mingwex/feupdateenv.c +++ b/winsup/mingw/mingwex/feupdateenv.c @@ -10,10 +10,11 @@ /* FIXME: this works but surely there must be a better way. */ -void feupdateenv (const fenv_t * envp) +int feupdateenv (const fenv_t * envp) { unsigned int _fexcept = fetestexcept (FE_ALL_EXCEPT); /*save excepts */ fesetenv (envp); /* install the env */ feraiseexcept (_fexcept); /* raise the execept */ + return 0; } -- 2.11.0