===================================================================
@@ -76,7 +76,7 @@ simple_move_operand (rtx x)
if (GET_CODE (x) == SUBREG)
x = SUBREG_REG (x);
- if (!OBJECT_P (x))
+ if (!OBJECT_P (x) && !CONSTANT_P (x))
return false;
if (GET_CODE (x) == LABEL_REF
@@ -131,7 +131,7 @@ simple_move (rtx insn)
registers. That means that we can't decompose if this is a
non-integer mode for which there is no integer mode of the same
size. */
- mode = GET_MODE (SET_SRC (set));
+ mode = GET_MODE (SET_DEST (set));
if (!SCALAR_INT_MODE_P (mode)
&& (mode_for_size (GET_MODE_SIZE (mode) * BITS_PER_UNIT, MODE_INT, 0)
== BLKmode))