diff options
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/sparc/leon.md | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5f2e14e..6a36140 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * config/sparc/leon.md (leon_load): Enable for all LEON variants if + -mfix-ut699 is not specified. + (leon3_load): Rename into... + (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699 + is specified. + 2015-06-30 Marek Polacek <polacek@redhat.com> * fold-const.c (fold_binary_loc): Move ~X | X folding ... diff --git a/gcc/config/sparc/leon.md b/gcc/config/sparc/leon.md index aca92fc..c579e39 100644 --- a/gcc/config/sparc/leon.md +++ b/gcc/config/sparc/leon.md @@ -24,12 +24,14 @@ (define_cpu_unit "leon_memory" "leon") (define_insn_reservation "leon_load" 1 - (and (eq_attr "cpu" "leon") (eq_attr "type" "load,sload")) + (and (eq_attr "cpu" "leon,leon3,leon3v7") + (and (eq_attr "fix_ut699" "false") (eq_attr "type" "load,sload"))) "leon_memory") ;; Use a double reservation to work around the load pipeline hazard on UT699. -(define_insn_reservation "leon3_load" 1 - (and (eq_attr "cpu" "leon3,leon3v7") (eq_attr "type" "load,sload")) +(define_insn_reservation "ut699_load" 1 + (and (eq_attr "cpu" "leon,leon3,leon3v7") + (and (eq_attr "fix_ut699" "true") (eq_attr "type" "load,sload"))) "leon_memory*2") (define_insn_reservation "leon_store" 2 |