diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:39:42 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:39:42 +0000 |
commit | 90e4483f4e6b64239bdff4c1c83d8550f367153e (patch) | |
tree | 644c325d467970b746fbf036a3cb795b69d108fe /gcc/config/rs6000/6xx.md | |
parent | b6786e1446e2c12ca233191409fb36d60e5887a5 (diff) | |
download | gcc-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.md | 11 |
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") |