This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [powerpc] get_rounding_mode: utilize faster method to get rounding mode


"Paul A. Clarke" <pc@us.ibm.com> writes:

> From: "Paul A. Clarke" <pc@us.ibm.com>
>
> Add support to use 'mffsl' instruction if compiled for POWER9 (or later).
>
> Also, mask the result to avoid bleeding unrelated bits into the result of
> _FPU_GET_RC().
>
> 2019-06-05  Paul A. Clarke  <pc@us.ibm.com>
>
> 	* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Replace code
> 	with call to equivalent function.
> 	* sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status): New function.

As you explained, both entries have to be removed.

> 	* sysdeps/powerpc/fpu_control.h (_FPU_MASK_RC): New.
> 	  (__FPU_MFFS): New.
> 	  (__FPU_MFFSL): New.
> 	  (_FPU_GET_RC): New.
> 	  (_FPU_GETCW): Use __FPU_MFFS().

        ^ Extra spaces here.  Should be only 1 tab.

> 	* sysdeps/powerpc/powerpc64/get-rounding-mode.h: New file.

I also think this file is unnecessary.

> diff --git a/sysdeps/powerpc/powerpc64/get-rounding-mode.h b/sysdeps/powerpc/powerpc64/get-rounding-mode.h
> new file mode 100644
> index 0000000..e2fdbbb
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc64/get-rounding-mode.h
> @@ -0,0 +1,33 @@
> +/* Determine floating-point rounding mode within libc.  powerpc64 version.
> +   Copyright (C) 2019 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#ifndef _POWERPC64_GET_ROUNDING_MODE_H
> +#define _POWERPC64_GET_ROUNDING_MODE_H	1
> +
> +#include <fenv.h>
> +#include <fpu_control.h>
> +
> +/* Return the floating-point rounding mode.  */
> +
> +static inline int
> +get_rounding_mode (void)
> +{
> +  return _FPU_GET_RC ();
> +}
> +
> +#endif /* get-rounding-mode.h */

I don't understand why this file/function is needed.
Looks like another file that should be removed from this patch.

LGTM if you fix the ChangeLog and keep only the changes to
sysdeps/powerpc/fpu_control.h.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>

-- 
Tulio Magno


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]