diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1995-02-07 12:57:00 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1995-02-07 12:57:00 -0800 |
commit | e553bfb99a96003ab5e2ef7fff56087518302436 (patch) | |
tree | 280cb771362d8106b0e0b6f22f205cb6b6a2e8e7 /gcc | |
parent | 97b65a3e66724ccf7c2a2fb8e3f98460665d7016 (diff) | |
download | gcc-e553bfb99a96003ab5e2ef7fff56087518302436.zip gcc-e553bfb99a96003ab5e2ef7fff56087518302436.tar.gz gcc-e553bfb99a96003ab5e2ef7fff56087518302436.tar.bz2 |
(prepare_scc_operands, from_compare): Force constant 0 into
register for unsigned comparisons.
From-SVN: r8891
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sh/sh.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 0fc3953..7e6f325 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; |