emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits (rather than units...
authorJ"orn Rennecke <joern.rennecke@st.com>
Tue, 26 Jul 2005 14:58:43 +0000 (14:58 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 26 Jul 2005 14:58:43 +0000 (15:58 +0100)
* 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
gcc/emit-rtl.c

index feeaab36d9d3009c6f7d701b30046f78097c5e8f..c6b3bc2d54ad201cc72980ba7cadb53a209a1d46 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
+
+       * 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  <kazu@codesourcery.com>
 
        * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
index fc34f6ecb51a476f651f158172cda3fa42295731..ba3ae57dcbab36ecdf68eda04c917e03f831e528 100644 (file)
@@ -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);