aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm1020e.md
diff options
context:
space:
mode:
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-23 10:39:10 +0000
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2016-03-23 10:39:10 +0000
commit9ada59d2ab98f2a92f9d496c420004f0fbebafce (patch)
tree335b7464ac84540e2711a2eece69e699fdbb21e2 /gcc/config/arm/arm1020e.md
parentdc834ba11cb5919cfd70496f51c8b5ec9a2910e5 (diff)
[ARM] Reduce size of arm1020e automaton
* config/arm/arm1020e.md (1020call_op): Reduce reservation duration. (v10_fdivs): Likewise. (v10_fdivd): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234422 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/arm1020e.md')
-rw-r--r--gcc/config/arm/arm1020e.md11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/arm/arm1020e.md b/gcc/config/arm/arm1020e.md
index 7cdab57ddb3..84a300d8045 100644
--- a/gcc/config/arm/arm1020e.md
+++ b/gcc/config/arm/arm1020e.md
@@ -246,13 +246,14 @@
(eq_attr "type" "branch"))
"1020a_e")
-;; The latency for a call is not predictable. Therefore, we use 32 as
-;; roughly equivalent to positive infinity.
+;; The latency for a call is not predictable. Therefore, we model as blocking
+;; execution for a number of cycles but we can't do anything more accurate
+;; than that.
(define_insn_reservation "1020call_op" 32
(and (eq_attr "tune" "arm1020e,arm1022e")
(eq_attr "type" "call"))
- "1020a_e*32")
+ "1020a_e*4")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; VFP
@@ -300,12 +301,12 @@
(define_insn_reservation "v10_fdivs" 18
(and (eq_attr "vfp10" "yes")
(eq_attr "type" "fdivs, fsqrts"))
- "1020a_e+v10_ds*14")
+ "1020a_e+v10_ds*4")
(define_insn_reservation "v10_fdivd" 32
(and (eq_attr "vfp10" "yes")
(eq_attr "type" "fdivd, fsqrtd"))
- "1020a_e+v10_fmac+v10_ds*28")
+ "1020a_e+v10_fmac+v10_ds*4")
(define_insn_reservation "v10_floads" 4
(and (eq_attr "vfp10" "yes")