From db48745242e25f3b9b414cd9e01986fe2205ccc1 Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Tue, 26 Jul 2005 14:58:43 +0000 Subject: [PATCH] emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits (rather than units) against HOST_BITS_PER_WIDE_INT. * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits (rather than units) against HOST_BITS_PER_WIDE_INT. From-SVN: r102387 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index feeaab36d9d..c6b3bc2d54a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-07-26 J"orn Rennecke + + * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits + (rather than units) against HOST_BITS_PER_WIDE_INT. + 2005-07-26 Kazu Hirata * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index fc34f6ecb51..ba3ae57dcba 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1118,7 +1118,8 @@ gen_lowpart_common (enum machine_mode mode, rtx x) /* Unfortunately, this routine doesn't take a parameter for the mode of X, so we have to make one up. Yuk. */ innermode = GET_MODE (x); - if (GET_CODE (x) == CONST_INT && msize <= HOST_BITS_PER_WIDE_INT) + if (GET_CODE (x) == CONST_INT + && msize * BITS_PER_UNIT <= HOST_BITS_PER_WIDE_INT) innermode = mode_for_size (HOST_BITS_PER_WIDE_INT, MODE_INT, 0); else if (innermode == VOIDmode) innermode = mode_for_size (HOST_BITS_PER_WIDE_INT * 2, MODE_INT, 0);