Commit 80e6edb0 by J"orn Rennecke Committed by Joern Rennecke

rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point values.

	* rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
	values.

From-SVN: r108479
parent ce9d5668
2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
* rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
values.
2005-12-13 Nathan Sidwell <nathan@codesourcery.com> 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
* config/mt/t-mt (MULTILIB_OPTIONS): Add ms2 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
......
...@@ -44,9 +44,12 @@ gen_lowpart_general (enum machine_mode mode, rtx x) ...@@ -44,9 +44,12 @@ gen_lowpart_general (enum machine_mode mode, rtx x)
if (result) if (result)
return result; return result;
else if (REG_P (x)) /* If it's a REG, it must be a hard reg that's not valid in MODE. */
else if (REG_P (x)
/* Or we could have a subreg of a floating point value. */
|| (GET_CODE (x) == SUBREG
&& FLOAT_MODE_P (GET_MODE (SUBREG_REG (x)))))
{ {
/* Must be a hard reg that's not valid in MODE. */
result = gen_lowpart_common (mode, copy_to_reg (x)); result = gen_lowpart_common (mode, copy_to_reg (x));
gcc_assert (result != 0); gcc_assert (result != 0);
return result; return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment