aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-19 18:09:04 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-19 18:09:04 -0400
commit98c131c38295833821a84f9dc834b7a2dc127856 (patch)
tree3f34a63a400e1d0d261a2ec30afbb9c87aa766f0 /gcc
parent25f3f9bf4433de4ab3881d15c3ec6bc54c31e301 (diff)
downloadgcc-98c131c38295833821a84f9dc834b7a2dc127856.zip
gcc-98c131c38295833821a84f9dc834b7a2dc127856.tar.gz
gcc-98c131c38295833821a84f9dc834b7a2dc127856.tar.bz2
(define_function_unit): Add support for RIOS2 asymmetric integer
units. From-SVN: r5813
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.md33
1 files changed, 19 insertions, 14 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index e3edf56..c083c3c 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -47,22 +47,22 @@
(define_function_unit "lsu" 1 0
(and (eq_attr "type" "load")
- (eq_attr "cpu" "ppc603,ppc604,ppc620"))
+ (eq_attr "cpu" "rios2,ppc603,ppc604,ppc620"))
2 0)
(define_function_unit "lsu" 1 0
(and (eq_attr "type" "fpload")
- (eq_attr "cpu" "ppc603,ppc604,ppc620"))
+ (eq_attr "cpu" "rios2,ppc603,ppc604,ppc620"))
2 0)
(define_function_unit "iu" 1 0
(and (eq_attr "type" "load")
- (eq_attr "cpu" "rios1,rios2"))
+ (eq_attr "cpu" "rios1"))
2 0)
(define_function_unit "iu" 1 0
(and (eq_attr "type" "fpload")
- (eq_attr "cpu" "rios1,rios2"))
+ (eq_attr "cpu" "rios1"))
3 0)
(define_function_unit "iu" 1 0
@@ -72,11 +72,6 @@
(define_function_unit "iu" 1 0
(and (eq_attr "type" "imul")
- (eq_attr "cpu" "rios2"))
- 2 0)
-
-(define_function_unit "iu" 1 0
- (and (eq_attr "type" "imul")
(eq_attr "cpu" "ppc601,ppc603,ppc604,ppc620"))
5 0)
@@ -87,11 +82,6 @@
(define_function_unit "iu" 1 0
(and (eq_attr "type" "idiv")
- (eq_attr "cpu" "rios2"))
- 13 0)
-
-(define_function_unit "iu" 1 0
- (and (eq_attr "type" "idiv")
(eq_attr "cpu" "ppc601,ppc603,ppc604,ppc620"))
36 0)
@@ -173,6 +163,21 @@
(eq_attr "cpu" "ppc603,ppc604,ppc620"))
31 0)
+(define_function_unit "iu2" 2 0
+ (and (eq_attr "type" "integer")
+ (eq_attr "cpu" "rios2"))
+ 1 0
+ [(eq_attr "type" "imul,idiv")])
+(define_function_unit "imuldiv" 1 0
+ (and (eq_attr "type" "imul")
+ (eq_attr "cpu" "rios2"))
+ 2 0
+ [(eq_attr "type" "integer")])
+(define_function_unit "imuldiv" 1 0
+ (and (eq_attr "type" "idiv")
+ (eq_attr "cpu" "rios2"))
+ 13 0
+ [(eq_attr "type" "integer")])
(define_function_unit "fpu2" 2 0
(and (eq_attr "type" "fp")
(eq_attr "cpu" "rios2"))