summaryrefslogtreecommitdiff
path: root/gcc/config/sparc/leon.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/sparc/leon.md')
-rw-r--r--gcc/config/sparc/leon.md8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/sparc/leon.md b/gcc/config/sparc/leon.md
index aca92fc7bf..c579e394b5 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