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
This commit is contained in:
J"orn Rennecke 2005-07-26 14:58:43 +00:00 committed by Joern Rennecke
parent 84fd360ddc
commit db48745242
2 changed files with 7 additions and 1 deletions

View 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,

View 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);