aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-10 23:49:02 +0000
committercollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-10 23:49:02 +0000
commit116ae5d9b646c966fd9d1e63e2bd126dc13b1b24 (patch)
treef670c1c7fe42df5c555b4dc1c2f1199c7b0b11c2
parent0168fc5c6559e61e14c1d4edaf2914037840b1b9 (diff)
2015-03-10 Michael Collison <michael.collison@linaro.org>
Backport from trunk r217725. 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp): Split into... (cortex_a15_gp_to_vfp): ...This. (cortex_a15_fp_to_gp): ...And this. Define and comment bypass from vfp operations to fp->gp moves. git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@221339 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.linaro11
-rw-r--r--gcc/config/arm/cortex-a15-neon.md16
2 files changed, 24 insertions, 3 deletions
diff --git a/gcc/ChangeLog.linaro b/gcc/ChangeLog.linaro
index 73fca0a6707..36e0463d9c2 100644
--- a/gcc/ChangeLog.linaro
+++ b/gcc/ChangeLog.linaro
@@ -1,5 +1,16 @@
2015-03-10 Michael Collison <michael.collison@linaro.org>
+ Backport from trunk r217725.
+ 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
+ Split into...
+ (cortex_a15_gp_to_vfp): ...This.
+ (cortex_a15_fp_to_gp): ...And this.
+ Define and comment bypass from vfp operations to fp->gp moves.
+
+2015-03-10 Michael Collison <michael.collison@linaro.org>
+
Backport from trunk r217780.
2014-11-19 Wilco Dijkstra <wdijkstr@arm.com>
diff --git a/gcc/config/arm/cortex-a15-neon.md b/gcc/config/arm/cortex-a15-neon.md
index 02d4a530b2b..bc09cd6a4d7 100644
--- a/gcc/config/arm/cortex-a15-neon.md
+++ b/gcc/config/arm/cortex-a15-neon.md
@@ -655,10 +655,20 @@
(eq_attr "type" "fmov"))
"ca15_issue1,ca15_cx_perm")
-(define_insn_reservation "cortex_a15_vfp_to_from_gp" 5
+(define_insn_reservation "cortex_a15_gp_to_vfp" 5
(and (eq_attr "tune" "cortexa15")
- (eq_attr "type" "f_mcr, f_mcrr, f_mrc, f_mrrc"))
- "ca15_issue1,ca15_ls1+ca15_ls2")
+ (eq_attr "type" "f_mcr, f_mcrr"))
+ "ca15_issue1,ca15_ls")
+
+(define_insn_reservation "cortex_a15_mov_vfp_to_gp" 5
+ (and (eq_attr "tune" "cortexa15")
+ (eq_attr "type" "f_mrc, f_mrrc"))
+ "ca15_issue1,ca15_ls")
+
+;; Moves from floating point registers to general purpose registers
+;; induce additional latency.
+(define_bypass 10 "cortex_a15_vfp*, cortex_a15_neon*, cortex_a15_gp_to_vfp" "cortex_a15_mov_vfp_to_gp")
+
(define_insn_reservation "cortex_a15_vfp_ariths" 7
(and (eq_attr "tune" "cortexa15")