rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove do all the work.
commitc5af628dbe90df6244b33bd7c6a89fbd124068b8
authorNathan Froyd <froydnj@codesourcery.com>
Fri, 16 Jul 2010 15:25:43 +0000 (16 15:25 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Fri, 16 Jul 2010 15:25:43 +0000 (16 15:25 +0000)
treeb6415535bcf129a547077d04dde2e0785807981c
parent8d63d4055e5e853eb82141ee6bb7823904423f3c
rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove do all the work.

* config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
do all the work.
(rs6000_emit_int_cmove): Use function pointers for insn generation.
Don't force values into registers unnecessarily.
(output_isel): Assert that we're not given conditions we can't handle.
Delete corresponding code.
* config/rs6000/rs6000.md (isel_signed_<mode>): Use
scc_comparison_operator constraint.  Permit 0 for the consequent
operand.  Permit any GPR for the alternative operand.
(isel_unsigned_<mode>): Likewise.

From-SVN: r162263
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md