aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/power4.md
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2014-05-23 18:39:42 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2014-05-23 18:39:42 +0200
commit441e02a5c44543f0afba3549b9939e54bafcff11 (patch)
tree644c325d467970b746fbf036a3cb795b69d108fe /gcc/config/rs6000/power4.md
parent58ee9e663594196b2b76669df15e12c1aeff53bf (diff)
downloadgcc-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.md6
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")