aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2004-08-13 15:24:30 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2004-08-13 16:24:30 +0100
commit68fe56fccc2c843c8e74a8ae29ff811d07c5a655 (patch)
tree6bf230a2ceaf00d2fe946dd0957e2e5f2550562e
parenta688b3aca294c00257ed988d3af3d063d66424b6 (diff)
downloadgcc-68fe56fccc2c843c8e74a8ae29ff811d07c5a655.zip
gcc-68fe56fccc2c843c8e74a8ae29ff811d07c5a655.tar.gz
gcc-68fe56fccc2c843c8e74a8ae29ff811d07c5a655.tar.bz2
* sh.md (cbranch define_delay) Use cond_delay_slot for
non-anulled condition too. From-SVN: r85941
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 554930a..47c8fb2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.md (cbranch define_delay) Use cond_delay_slot for
+ non-anulled condition too.
+
2004-08-12 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (any_parallel_operand): New predicate.
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 8b2c6f2..cb7de40 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -524,12 +524,16 @@
;; Say that we have annulled true branches, since this gives smaller and
;; faster code when branches are predicted as not taken.
+;; ??? The non-annulled condition should really be "in_delay_slot",
+;; but insns that can be filled in non-annulled get priority over insns
+;; that can only be filled in anulled.
+
(define_delay
(and (eq_attr "type" "cbranch")
(ne (symbol_ref "TARGET_SH2") (const_int 0)))
;; SH2e has a hardware bug that pretty much prohibits the use of
;; annuled delay slots.
- [(eq_attr "in_delay_slot" "yes") (and (eq_attr "cond_delay_slot" "yes")
+ [(eq_attr "cond_delay_slot" "yes") (and (eq_attr "cond_delay_slot" "yes")
(not (eq_attr "cpu" "sh2e"))) (nil)])
;; -------------------------------------------------------------------------