This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][ARM] Update Cortex A9 DImode mult extend rtx costs
- From: Kyrill Tkachov <kyrylo dot tkachov at arm dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>
- Date: Mon, 21 Oct 2013 14:37:56 +0100
- Subject: [PATCH][ARM] Update Cortex A9 DImode mult extend rtx costs
- Authentication-results: sourceware.org; auth=none
Hi all,
There's a slight error in the Cortex A9 costs I committed recently. The extend
and extend_add costs refer to 32x32->64 bit operations and thus have valid costs
in aarch32. This patches updates those costs for the Cortex A9. The other
existing cost tables are correct in this regard and don't need updating. This is
just a thinko in the A9 costs.
Tested arm-none-eabi on qemu.
Ok for trunk?
Thanks,
Kyrill
[gcc/]
2013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
extend and extend_add.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index e2baa9b..f85aa5f 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1078,18 +1078,18 @@ const struct cpu_cost_table cortexa9_extra_costs =
{
COSTS_N_INSNS (3), /* Simple. */
COSTS_N_INSNS (3), /* Flag_setting. */
- COSTS_N_INSNS (4), /* Extend. */
+ COSTS_N_INSNS (2), /* Extend. */
COSTS_N_INSNS (3), /* Add. */
- COSTS_N_INSNS (4), /* Extend_add. */
+ COSTS_N_INSNS (2), /* Extend_add. */
COSTS_N_INSNS (30) /* Idiv. No HW div on Cortex A9. */
},
/* MULT DImode */
{
0, /* Simple (N/A). */
0, /* Flag_setting (N/A). */
- 0, /* Extend (N/A). */
+ COSTS_N_INSNS (4), /* Extend. */
0, /* Add (N/A). */
- 0, /* Extend_add (N/A). */
+ COSTS_N_INSNS (4), /* Extend_add. */
0 /* Idiv (N/A). */
}
},