1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00

Revert "ARM: Improve fenv implementation"

This reverts commit c0c08d02c8.
This commit is contained in:
Marcus Shawcroft
2014-05-19 09:08:59 +01:00
parent 834caf06f3
commit 18f8524d2c
13 changed files with 101 additions and 95 deletions

View File

@@ -17,35 +17,27 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
#include <fenv_private.h>
#include <fenv.h>
#include <fpu_control.h>
#include <arm-features.h>
int
feupdateenv (const fenv_t *envp)
{
fenv_t fenv;
fpu_control_t fpscr;
/* Fail if a VFP unit isn't present. */
if (!ARM_HAVE_VFP)
return 1;
if ((envp == FE_DFL_ENV) || (envp == FE_NOMASK_ENV))
{
fpu_control_t fpscr;
_FPU_GETCW (fpscr);
_FPU_GETCW (fpscr);
/* Install new environment. */
fesetenv (envp);
/* Preserve the reserved FPSCR flags. */
fpscr &= _FPU_RESERVED;
fpscr |= (envp == FE_DFL_ENV) ? _FPU_DEFAULT : _FPU_IEEE;
/* Create a valid fenv to pass to libc_feupdateenv_vfp. */
fenv.__cw = fpscr;
envp = &fenv;
}
libc_feupdateenv_vfp (envp);
/* Raise the saved exceptions. */
feraiseexcept (fpscr & FE_ALL_EXCEPT);
return 0;
}
libm_hidden_def (feupdateenv)