From a76033a004d088679af685a8f4decec6f9cc90df Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Mon, 3 Dec 2001 23:01:44 +0000 Subject: 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 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a3db409..e24faea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-12-03 Geoff Keating + + * emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension + of array elements. + 2001-12-03 Neil Booth PR c/4988 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 } -- cgit v1.1