http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54963
--- Comment #8 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-10-30 09:22:31 UTC --- Author: olegendo Date: Tue Oct 30 09:22:14 2012 New Revision: 192983 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192983 Log: PR target/54963 * config/sh/iterators.md (SIDI): New mode iterator. * config/sh/sh.md (negdi2): Use parallel around operation and T_REG clobber in expander. (*negdi2): Mark output operand as early clobbered. Add T_REG clobber. Split after reload. Simplify split code. (abssi2, absdi2): Fold expanders into abs<mode>2. (*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split. Split insns before reload. (*negabssi2, *negabsdi2): Fold into *negabs<mode>2. Add T_REG clobber. Split insns before reload. (negsi_cond): Reformat. Use emit_move_insn instead of gen_movesi. (negdi_cond): Reformat. Use emit_move_insn instead of a pair of gen_movsi. Split insn before reload. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sh/iterators.md trunk/gcc/config/sh/sh.md