From e553bfb99a96003ab5e2ef7fff56087518302436 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 7 Feb 1995 12:57:00 -0800 Subject: [PATCH] (prepare_scc_operands, from_compare): Force constant 0 into register for unsigned comparisons. From-SVN: r8891 --- gcc/config/sh/sh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 0fc3953dafe..7e6f325759c 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -823,7 +823,9 @@ prepare_scc_operands (code) } 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); emit_insn (gen_rtx (SET, VOIDmode, @@ -2013,7 +2015,8 @@ from_compare (operands, code) { /* Force args into regs, since we can't use constants here */ 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); } operands[1] = sh_compare_op0; -- 2.30.2