diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2014-05-23 18:41:20 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2014-05-23 18:41:20 +0200 |
commit | 892e7fa695536ae398afc23664ee30df3f59a5d3 (patch) | |
tree | 9b3fa581539d8e25c226995953241901f465231f /gcc/config/rs6000/601.md | |
parent | 441e02a5c44543f0afba3549b9939e54bafcff11 (diff) | |
download | gcc-892e7fa695536ae398afc23664ee30df3f59a5d3.zip gcc-892e7fa695536ae398afc23664ee30df3f59a5d3.tar.gz gcc-892e7fa695536ae398afc23664ee30df3f59a5d3.tar.bz2 |
rs6000: Make all shift instructions one type
This uses the attributes "var_shift" and "dot" to specify the differences:
var_shift_rotate -> shift var_shift=yes
delayed_compare -> shift var_shift=no dot=yes
var_delayed_compare -> shift var_shift=yes dot=yes
From-SVN: r210870
Diffstat (limited to 'gcc/config/rs6000/601.md')
-rw-r--r-- | gcc/config/rs6000/601.md | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/rs6000/601.md b/gcc/config/rs6000/601.md index 85892c8..f6eca7d 100644 --- a/gcc/config/rs6000/601.md +++ b/gcc/config/rs6000/601.md @@ -45,8 +45,9 @@ "iu_ppc601+fpu_ppc601") (define_insn_reservation "ppc601-integer" 1 - (and (eq_attr "type" "integer,insert,shift,\ - trap,var_shift_rotate,cntlz,exts,isel") + (and (ior (eq_attr "type" "integer,insert,trap,cntlz,exts,isel") + (and (eq_attr "type" "shift") + (eq_attr "dot" "no"))) (eq_attr "cpu" "ppc601")) "iu_ppc601") @@ -73,8 +74,9 @@ ; compare executes on integer unit, but feeds insns which ; execute on the branch unit. (define_insn_reservation "ppc601-compare" 3 - (and (eq_attr "type" "cmp,compare,delayed_compare,\ - var_delayed_compare") + (and (ior (eq_attr "type" "cmp,compare") + (and (eq_attr "type" "shift") + (eq_attr "dot" "yes"))) (eq_attr "cpu" "ppc601")) "iu_ppc601,nothing,bpu_ppc601") |