aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
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 /gcc/config
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
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/sh/sh.md6
1 files changed, 5 insertions, 1 deletions
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)])
;; -------------------------------------------------------------------------