aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-01-12 14:14:56 +0000
committerNick Clifton <nickc@gcc.gnu.org>2005-01-12 14:14:56 +0000
commit98e20ffd24f21f59b5eb49edb45961a2790bf81a (patch)
treeac31004059bffcd8ba1a183337194fd21be140ed
parent409f61cd325af79b30cf0d9862643cb265c961f1 (diff)
downloadgcc-98e20ffd24f21f59b5eb49edb45961a2790bf81a.zip
gcc-98e20ffd24f21f59b5eb49edb45961a2790bf81a.tar.gz
gcc-98e20ffd24f21f59b5eb49edb45961a2790bf81a.tar.bz2
(udivsi3_sh2a...
(udivsi3_sh2a, divsi3_sh2a): Give these patterns an "in_delay_slot" attribute of "no" to prevent them being used in delay slots. This is forbidden because they might generate exceptions. From-SVN: r93225
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sh/sh.md6
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d666e25..63d96c1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-12 Nick Clifton <nickc@redhat.com>
+
+ * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
+ an "in_delay_slot" attribute of "no" to prevent them being used in
+ delay slots. This is forbidden because they might generate
+ exceptions.
+
2005-01-12 Alan Modra <amodra@bigpond.net.au>
PR target/19389
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index ce4da84..b725822 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1164,7 +1164,8 @@
(match_operand:SI 2 "arith_reg_operand" "z")))]
"TARGET_SH2A"
"divu %2,%1"
- [(set_attr "type" "arith")])
+ [(set_attr "type" "arith")
+ (set_attr "in_delay_slot" "no")])
;; We must use a pseudo-reg forced to reg 0 in the SET_DEST rather than
;; hard register 0. If we used hard register 0, then the next instruction
@@ -1348,7 +1349,8 @@
(match_operand:SI 2 "arith_reg_operand" "z")))]
"TARGET_SH2A"
"divs %2,%1"
- [(set_attr "type" "arith")])
+ [(set_attr "type" "arith")
+ (set_attr "in_delay_slot" "no")])
(define_insn "divsi3_i1"
[(set (match_operand:SI 0 "register_operand" "=z")