diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-19 18:09:04 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-19 18:09:04 -0400 |
commit | 98c131c38295833821a84f9dc834b7a2dc127856 (patch) | |
tree | 3f34a63a400e1d0d261a2ec30afbb9c87aa766f0 /gcc | |
parent | 25f3f9bf4433de4ab3881d15c3ec6bc54c31e301 (diff) | |
download | gcc-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.md | 33 |
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")) |