]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/powerpc/nofpu/feupdateenv.c
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / powerpc / nofpu / feupdateenv.c
CommitLineData
10fdbe1a
RM
1/* Install given floating-point environment and raise exceptions
2 (soft-float edition).
bfff8b1b 3 Copyright (C) 2002-2017 Free Software Foundation, Inc.
10fdbe1a
RM
4 Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
5 This file is part of the GNU C Library.
6
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
11
12 The GNU C Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
ab84e3ff
PE
18 License along with the GNU C Library. If not, see
19 <http://www.gnu.org/licenses/>. */
10fdbe1a
RM
20
21#include "soft-fp.h"
22#include "soft-supp.h"
ce7a1add 23#include <signal.h>
10fdbe1a
RM
24
25int
26__feupdateenv (const fenv_t *envp)
27{
10fdbe1a
RM
28 int saved_exceptions;
29
30 /* Save currently set exceptions. */
73c1ce4f 31 saved_exceptions = __sim_exceptions_thread;
10fdbe1a
RM
32
33 /* Set environment. */
cd42798a 34 __fesetenv (envp);
10fdbe1a
RM
35
36 /* Raise old exceptions. */
73c1ce4f
JM
37 __sim_exceptions_thread |= saved_exceptions;
38 SIM_SET_GLOBAL (__sim_exceptions_global, __sim_exceptions_thread);
39 if (saved_exceptions & ~__sim_disabled_exceptions_thread)
ce7a1add 40 raise (SIGFPE);
10fdbe1a
RM
41
42 return 0;
43}
44
45#include <shlib-compat.h>
46#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
47strong_alias (__feupdateenv, __old_feupdateenv)
e97ed6dd 48compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
10fdbe1a
RM
49#endif
50
8116321f 51libm_hidden_def (__feupdateenv)
0b5c1204 52libm_hidden_ver (__feupdateenv, feupdateenv)
e97ed6dd 53versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);