diff options
Diffstat (limited to 'gcc/config/rs6000/rs64.md')
-rw-r--r-- | gcc/config/rs6000/rs64.md | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs64.md b/gcc/config/rs6000/rs64.md index 0260a1c9349..82ace4a7b1c 100644 --- a/gcc/config/rs6000/rs64.md +++ b/gcc/config/rs6000/rs64.md @@ -46,8 +46,9 @@ "lsu_rs64") (define_insn_reservation "rs64a-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" "rs64a")) "iu_rs64") @@ -98,8 +99,9 @@ "mciu_rs64*66") (define_insn_reservation "rs64a-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" "rs64a")) "iu_rs64,nothing,bpu_rs64") |