diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2014-05-23 18:39:42 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2014-05-23 18:39:42 +0200 |
commit | 441e02a5c44543f0afba3549b9939e54bafcff11 (patch) | |
tree | 644c325d467970b746fbf036a3cb795b69d108fe /gcc/config/rs6000/power4.md | |
parent | 58ee9e663594196b2b76669df15e12c1aeff53bf (diff) | |
download | gcc-441e02a5c44543f0afba3549b9939e54bafcff11.zip gcc-441e02a5c44543f0afba3549b9939e54bafcff11.tar.gz gcc-441e02a5c44543f0afba3549b9939e54bafcff11.tar.bz2 |
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.
From-SVN: r210869
Diffstat (limited to 'gcc/config/rs6000/power4.md')
-rw-r--r-- | gcc/config/rs6000/power4.md | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/rs6000/power4.md b/gcc/config/rs6000/power4.md index f905a0d..73eac1f 100644 --- a/gcc/config/rs6000/power4.md +++ b/gcc/config/rs6000/power4.md @@ -314,12 +314,14 @@ ; SPR move only executes in first IU. ; Integer division only executes in second IU. (define_insn_reservation "power4-idiv" 36 - (and (eq_attr "type" "idiv") + (and (eq_attr "type" "div") + (eq_attr "size" "32") (eq_attr "cpu" "power4")) "du1_power4+du2_power4,iu2_power4*35") (define_insn_reservation "power4-ldiv" 68 - (and (eq_attr "type" "ldiv") + (and (eq_attr "type" "div") + (eq_attr "size" "64") (eq_attr "cpu" "power4")) "du1_power4+du2_power4,iu2_power4*67") |