diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:41:20 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:41:20 +0000 |
commit | 7d307a6aea683889259b036216e134ef23738ccb (patch) | |
tree | 9b3fa581539d8e25c226995953241901f465231f /gcc/config/rs6000/40x.md | |
parent | 90e4483f4e6b64239bdff4c1c83d8550f367153e (diff) | |
download | gcc-7d307a6aea683889259b036216e134ef23738ccb.tar.gz |
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210870 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/40x.md')
-rw-r--r-- | gcc/config/rs6000/40x.md | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/rs6000/40x.md b/gcc/config/rs6000/40x.md index 8ddccbacde4..30ac01df051 100644 --- a/gcc/config/rs6000/40x.md +++ b/gcc/config/rs6000/40x.md @@ -36,8 +36,9 @@ "iu_40x") (define_insn_reservation "ppc403-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" "ppc403,ppc405")) "iu_40x") @@ -52,8 +53,9 @@ "iu_40x,iu_40x,iu_40x") (define_insn_reservation "ppc403-compare" 3 - (and (eq_attr "type" "cmp,fast_compare,compare,delayed_compare,\ - var_delayed_compare") + (and (ior (eq_attr "type" "cmp,fast_compare,compare") + (and (eq_attr "type" "shift") + (eq_attr "dot" "yes"))) (eq_attr "cpu" "ppc403,ppc405")) "iu_40x,nothing,bpu_40x") |