Commit e553bfb9 by Jim Wilson

(prepare_scc_operands, from_compare): Force constant 0 into

register for unsigned comparisons.

From-SVN: r8891
parent 97b65a3e
...@@ -823,7 +823,9 @@ prepare_scc_operands (code) ...@@ -823,7 +823,9 @@ prepare_scc_operands (code)
} }
sh_compare_op0 = force_reg (SImode, sh_compare_op0); sh_compare_op0 = force_reg (SImode, sh_compare_op0);
if (code != EQ && code != NE && sh_compare_op1 != const0_rtx) if (code != EQ && code != NE
&& (sh_compare_op1 != const0_rtx
|| code == GTU || code == GEU || code == LTU || code == LEU))
sh_compare_op1 = force_reg (SImode, sh_compare_op1); sh_compare_op1 = force_reg (SImode, sh_compare_op1);
emit_insn (gen_rtx (SET, VOIDmode, emit_insn (gen_rtx (SET, VOIDmode,
...@@ -2013,7 +2015,8 @@ from_compare (operands, code) ...@@ -2013,7 +2015,8 @@ from_compare (operands, code)
{ {
/* Force args into regs, since we can't use constants here */ /* Force args into regs, since we can't use constants here */
sh_compare_op0 = force_reg (SImode, sh_compare_op0); sh_compare_op0 = force_reg (SImode, sh_compare_op0);
if (sh_compare_op1 != const0_rtx) if (sh_compare_op1 != const0_rtx
|| code == GTU || code == GEU || code == LTU || code == LEU)
sh_compare_op1 = force_reg (SImode, sh_compare_op1); sh_compare_op1 = force_reg (SImode, sh_compare_op1);
} }
operands[1] = sh_compare_op0; operands[1] = sh_compare_op0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment