commit 094f41f1d05322d24b76c7a680219a8549a9e717
Author: Julian Brown <julian@henry7.codesourcery.com>
Date: Fri May 27 11:26:57 2011 -0700
Tune max_insns_skipped for conditionalization for Cortex-A5.
@@ -763,6 +763,9 @@ int arm_tune_xscale = 0;
This typically means an ARM6 or ARM7 with MMU or MPU. */
int arm_tune_wbuf = 0;
+/* Nonzero if tuning for Cortex-A5. */
+int arm_tune_cortex_a5 = 0;
+
/* Nonzero if tuning for Cortex-A9. */
int arm_tune_cortex_a9 = 0;
@@ -1495,6 +1498,7 @@ arm_option_override (void)
arm_tune_xscale = (tune_flags & FL_XSCALE) != 0;
arm_arch_iwmmxt = (insn_flags & FL_IWMMXT) != 0;
arm_arch_hwdiv = (insn_flags & FL_DIV) != 0;
+ arm_tune_cortex_a5 = (arm_tune == cortexa5) != 0;
arm_tune_cortex_a9 = (arm_tune == cortexa9) != 0;
/* If we are not using the default (ARM mode) section anchor offset
@@ -1737,6 +1741,11 @@ arm_option_override (void)
that is worth skipping is shorter. */
if (arm_tune_strongarm)
max_insns_skipped = 3;
+
+ /* Branches can be dual-issued on Cortex-A5, so conditional execution is
+ less appealing. */
+ if (arm_tune_cortex_a5)
+ max_insns_skipped = 1;
}
/* Hot/Cold partitioning is not currently supported, since we can't
@@ -418,6 +418,9 @@ extern int arm_tune_xscale;
/* Nonzero if tuning for stores via the write buffer. */
extern int arm_tune_wbuf;
+/* Nonzero if tuning for Cortex-A5. */
+extern int arm_tune_cortex_a5;
+
/* Nonzero if tuning for Cortex-A9. */
extern int arm_tune_cortex_a9;