[PATCH v3] powerpc: Refactor fenvinline.h

Tulio Magno Quites Machado Filho tuliom@ascii.art.br
Tue Feb 25 18:23:00 GMT 2020


Rogerio Alves <rcardoso@linux.ibm.com> writes:

>  /* The weird 'i#*X' constraints on the following suppress a gcc
>     warning when __excepts is not a constant.  Otherwise, they mean the
> -   same as just plain 'i'.  */
> +   same as just plain 'i'. This warning only happens in old GCC 

2 spaces here ---------------^     trailing whitespace here ------^

> +   versions (gcc 3 or less). Otherwise plain 'i' works fine.  */

Likewise ----------------------^

> -	if (__e != 0)							      \
> -	  __asm__ __volatile__ ("mtfsb1 %0"				      \
> -				: : "i#*X" (__builtin_clz (__e)));	      \
> -        __ret = 0;							      \
> +	  __MTFSB1 ((__builtin_clz (__e)));				      \

Wrong indentation.

>          && __e != FE_INVALID)						      \
>        {									      \
> -	if (__e != 0)							      \
> -	  __asm__ __volatile__ ("mtfsb0 %0"				      \
> -				: : "i#*X" (__builtin_clz (__e)));	      \
> -        __ret = 0;							      \
> +	  __MTFSB0 ((__builtin_clz (__e)));				      \

Wrong indentation.

> @@ -80,15 +87,12 @@
>  #   define feclearexcept(__excepts) \
>    (__extension__  ({ 							      \
>      int __e = __excepts;						      \
> -    int __ret;								      \
> +    int __ret = 0;							      \
>      if (__builtin_constant_p (__e)					      \
> -        && (__e & (__e - 1)) == 0					      \
> +        && (__builtin_popcount (__e) == 1)				      \

I remember that Adhemerval disagreed with this particular change and I
don't remember seeing any agreement there.
Rogerio, if you agree with the removal of these lines I can remove this change
from the patch, fix the cosmetic issues and push the patch.
Does it look good for you?

-- 
Tulio Magno



More information about the Libc-alpha mailing list