+2012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54089
+ * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
+ of trying to emit ashlsi3_n.
+
2012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
Steven Bosscher <steven@gcc.gnu.org>
}
else if (!satisfies_constraint_P27 (operands[2]))
{
- emit_insn (gen_ashlsi3_n (operands[0], operands[1], operands[2]));
+ /* This must happen before reload, otherwise the constant will be moved
+ into a register due to the "r" constraint, after which this split
+ cannot be done anymore.
+ Unfortunately the move insn will not always be eliminated. */
+ emit_move_insn (operands[0], operands[1]);
+ gen_shifty_op (ASHIFT, operands);
DONE;
}