diff options
author | Geoffrey Keating <geoffk@redhat.com> | 2001-12-03 23:01:44 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2001-12-03 23:01:44 +0000 |
commit | a76033a004d088679af685a8f4decec6f9cc90df (patch) | |
tree | 64c791825a2440da1885d44bded41186b4c9148e /gcc/emit-rtl.c | |
parent | 251931f3ad609ff984a367e8225f3a26233a47ed (diff) | |
download | gcc-a76033a004d088679af685a8f4decec6f9cc90df.zip gcc-a76033a004d088679af685a8f4decec6f9cc90df.tar.gz gcc-a76033a004d088679af685a8f4decec6f9cc90df.tar.bz2 |
emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension of array elements.
* emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension
of array elements.
From-SVN: r47568
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 9528b29..3c2d847 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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 } |