emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension of array elements.
authorGeoffrey Keating <geoffk@redhat.com>
Mon, 3 Dec 2001 23:01:44 +0000 (23:01 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Mon, 3 Dec 2001 23:01:44 +0000 (23:01 +0000)
* emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension
of array elements.

From-SVN: r47568

gcc/ChangeLog
gcc/emit-rtl.c

index a3db409..e24faea 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-03  Geoff Keating  <geoffk@redhat.com>
+
+       * emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension
+       of array elements.
+
 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        PR c/4988
index 9528b29..3c2d847 100644 (file)
@@ -1062,10 +1062,10 @@ gen_lowpart_common (mode, x)
       if (HOST_BITS_PER_WIDE_INT != 64)
        abort ();
 
-      return immed_double_const (i[3 * endian]
-                                | ((HOST_WIDE_INT) i[1 + endian] << 32),
-                                i[2 - endian]
-                                | ((HOST_WIDE_INT) i[3 - 3 * endian] << 32),
+      return immed_double_const ((((unsigned long) i[3 * endian])
+                                 | ((HOST_WIDE_INT) i[1 + endian] << 32)),
+                                (((unsigned long) i[2 - endian])
+                                 | ((HOST_WIDE_INT) i[3 - 3 * endian] << 32)),
                                 mode);
 #endif
     }