This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: [PATCH 9/13] AArch64: Cleanup fenv implementation
- From: "Wilco Dijkstra" <wdijkstr at arm dot com>
- To: <marcus dot shawcroft at gmail dot com>
- Cc: <libc-alpha at sourceware dot org>
- Date: Thu, 18 Dec 2014 15:57:15 -0000
- Subject: RE: [PATCH 9/13] AArch64: Cleanup fenv implementation
- Authentication-results: sourceware.org; auth=none
- References:
ping
> -----Original Message-----
> From: Wilco Dijkstra [mailto:wdijkstr@arm.com]
> Sent: 23 October 2014 18:36
> To: 'libc-alpha@sourceware.org'
> Subject: [PATCH 9/13] AArch64: Cleanup fenv implementation
>
> Call libc_fesetround_aarch64 from math_private.h rather than duplicating functionality.
>
> ChangeLog:
> 2014-10-23 Wilco Dijkstra <wdijkstr@arm.com>
>
> * sysdeps/aarch64/fpu/fesetround.c (fesetround):
> Call libc_fesetround_aarch64.
>
> ---
> sysdeps/aarch64/fpu/fesetround.c | 26 +++++---------------------
> 1 file changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/sysdeps/aarch64/fpu/fesetround.c b/sysdeps/aarch64/fpu/fesetround.c
> index d34706d..540ef48 100644
> --- a/sysdeps/aarch64/fpu/fesetround.c
> +++ b/sysdeps/aarch64/fpu/fesetround.c
> @@ -16,32 +16,16 @@
> License along with the GNU C Library; if not, see
> <http://www.gnu.org/licenses/>. */
>
> -#include <fenv.h>
> +#include <math_private.h>
> #include <fpu_control.h>
>
> int
> fesetround (int round)
> {
> - fpu_control_t fpcr;
> - fpu_control_t fpcr_new;
> + if (round & ~_FPU_FPCR_RM_MASK)
> + return 1;
>
> - switch (round)
> - {
> - case FE_TONEAREST:
> - case FE_UPWARD:
> - case FE_DOWNWARD:
> - case FE_TOWARDZERO:
> - _FPU_GETCW (fpcr);
> - fpcr_new = (fpcr & ~FE_TOWARDZERO) | round;
> -
> - if (fpcr != fpcr_new)
> - _FPU_SETCW (fpcr_new);
> - return 0;
> -
> - default:
> - return 1;
> - }
> -
> - return 1;
> + libc_fesetround_aarch64 (round);
> + return 0;
> }
> libm_hidden_def (fesetround)
> --
> 1.9.1