This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: Remove SHIFT_COUNT_TRUNCATED from double-int.c


On Mon, Nov 4, 2013 at 9:36 PM, Richard Sandiford
<rdsandiford@googlemail.com> wrote:
> ...as suggested by Richard.  This means that out-of-range shift values
> produce the same results on all targets at the tree level.  The rtl level
> isn't affected since it explicitly truncates the count.
>
> Tested on mips64-linux-gnu.  OK to install?

Ok (assuming you didn't pick TARGET_LOONGSON_VECTORS).

Thanks,
Richard.

> Thanks,
> Richard
>
>
> gcc/
>         * double-int.c (lshift_double, rshift_double): Remove
>         SHIFT_COUNT_TRUNCATED handling.
>
> Index: gcc/double-int.c
> ===================================================================
> --- gcc/double-int.c    2013-09-28 09:41:49.490113799 +0100
> +++ gcc/double-int.c    2013-11-04 15:49:56.963164424 +0000
> @@ -20,7 +20,7 @@ Free Software Foundation; either version
>  #include "config.h"
>  #include "system.h"
>  #include "coretypes.h"
> -#include "tm.h"                        /* For SHIFT_COUNT_TRUNCATED.  */
> +#include "tm.h"                        /* For BITS_PER_UNIT and *_BIG_ENDIAN.  */
>  #include "tree.h"
>
>  static int add_double_with_sign (unsigned HOST_WIDE_INT, HOST_WIDE_INT,
> @@ -237,9 +237,6 @@ rshift_double (unsigned HOST_WIDE_INT l1
>               ? -((unsigned HOST_WIDE_INT) h1 >> (HOST_BITS_PER_WIDE_INT - 1))
>               : 0);
>
> -  if (SHIFT_COUNT_TRUNCATED)
> -    count %= prec;
> -
>    if (count >= HOST_BITS_PER_DOUBLE_INT)
>      {
>        /* Shifting by the host word size is undefined according to the
> @@ -295,9 +292,6 @@ lshift_double (unsigned HOST_WIDE_INT l1
>  {
>    unsigned HOST_WIDE_INT signmask;
>
> -  if (SHIFT_COUNT_TRUNCATED)
> -    count %= prec;
> -
>    if (count >= HOST_BITS_PER_DOUBLE_INT)
>      {
>        /* Shifting by the host word size is undefined according to the


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