* rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
values.
From-SVN: r108479
+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>
* config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
if (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));
gcc_assert (result != 0);
return result;