summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/6xx.md
diff options
context:
space:
mode:
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-23 16:39:42 +0000
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-23 16:39:42 +0000
commit90e4483f4e6b64239bdff4c1c83d8550f367153e (patch)
tree644c325d467970b746fbf036a3cb795b69d108fe /gcc/config/rs6000/6xx.md
parentb6786e1446e2c12ca233191409fb36d60e5887a5 (diff)
downloadgcc-90e4483f4e6b64239bdff4c1c83d8550f367153e.tar.gz
rs6000: Make all divide instructions one type
This uses the attribute "size" to specify the differences: idiv -> div size=32 ldiv -> div size=64 It could use "dot" as well, but the current code doesn't handle that. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/6xx.md')
-rw-r--r--gcc/config/rs6000/6xx.md11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/config/rs6000/6xx.md b/gcc/config/rs6000/6xx.md
index 3a3271e6eff..3ff4caf2b01 100644
--- a/gcc/config/rs6000/6xx.md
+++ b/gcc/config/rs6000/6xx.md
@@ -123,22 +123,25 @@
"mciu_6xx*5")
(define_insn_reservation "ppc604-idiv" 20
- (and (eq_attr "type" "idiv")
+ (and (eq_attr "type" "div")
(eq_attr "cpu" "ppc604,ppc604e"))
"mciu_6xx*19")
(define_insn_reservation "ppc620-idiv" 37
- (and (eq_attr "type" "idiv")
+ (and (eq_attr "type" "div")
+ (eq_attr "size" "32")
(eq_attr "cpu" "ppc620"))
"mciu_6xx*36")
(define_insn_reservation "ppc630-idiv" 21
- (and (eq_attr "type" "idiv")
+ (and (eq_attr "type" "div")
+ (eq_attr "size" "32")
(eq_attr "cpu" "ppc630"))
"mciu_6xx*20")
(define_insn_reservation "ppc620-ldiv" 37
- (and (eq_attr "type" "ldiv")
+ (and (eq_attr "type" "div")
+ (eq_attr "size" "64")
(eq_attr "cpu" "ppc620,ppc630"))
"mciu_6xx*36")