diff options
author | Kaz Kojima <kkojima@rr.iij4u.or.jp> | 2000-08-23 04:39:56 +0900 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2000-08-22 20:39:56 +0100 |
commit | 89e43e33153195963cf124b257a322f0b7f9c2df (patch) | |
tree | 7fe06cf6c995654ed8649782fbd20893f45b5b68 | |
parent | 7405dc3753cde327b396793e219268e7b378b39e (diff) | |
download | gcc-89e43e33153195963cf124b257a322f0b7f9c2df.zip gcc-89e43e33153195963cf124b257a322f0b7f9c2df.tar.gz gcc-89e43e33153195963cf124b257a322f0b7f9c2df.tar.bz2 |
sh.md (cmpeqdi_t splitter): Fix a reverse testing.
* config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
* config/sh/sh.c (prepare_scc_operands): Apply force_reg to
sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
const0_rtx.
From-SVN: r35889
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 1 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5f56c85..236b38f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing. + + * config/sh/sh.c (prepare_scc_operands): Apply force_reg to + sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't + const0_rtx. + 2000-08-22 Nick Clifton <nickc@redhat.com> * config/arm/lib1funcs.asm (__umodsi3): Before performing any diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 3eeb183..9e2ced6 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -524,6 +524,7 @@ prepare_scc_operands (code) if ((code != EQ && code != NE && (sh_compare_op1 != const0_rtx || code == GTU || code == GEU || code == LTU || code == LEU)) + || (mode == DImode && sh_compare_op1 != const0_rtx) || (TARGET_SH3E && GET_MODE_CLASS (mode) == MODE_FLOAT)) sh_compare_op1 = force_reg (mode, sh_compare_op1); diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 8702114..051acb8 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -636,7 +636,7 @@ (match_operand:DI 1 "arith_reg_or_0_operand" "N,r")))] "reload_completed" [(set (reg:SI 18) (eq:SI (match_dup 2) (match_dup 3))) - (set (pc) (if_then_else (ne (reg:SI 18) (const_int 0)) + (set (pc) (if_then_else (eq (reg:SI 18) (const_int 0)) (label_ref (match_dup 6)) (pc))) (set (reg:SI 18) (eq:SI (match_dup 4) (match_dup 5))) |