Hi all,This patch wires up the Cortex-A12 instruction scheduling to use the Cortex-A15 pipeline description and sets the issue rate for it to 2 in arm_issue_rate.
This patch depends on James' recent rework of the tuning parameters posted at http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01477.html Tested arm-none-eabi on qemu. Ok for trunk after the prerequisite goes in? Thanks, Kyrill 2013-12-17 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/arm-cores.def (cortex-a12): Use cortexa15 scheduling. * config/arm/arm.c (arm_issue_rate): Handle cortexa12. * config/arm/arm.md (generic_vfp): Remove cortexa12.
diff --git a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def index 3264eed..abe7636 100644 --- a/gcc/config/arm/arm-cores.def +++ b/gcc/config/arm/arm-cores.def @@ -138,7 +138,7 @@ ARM_CORE("cortex-a5", cortexa5, cortexa5, 7A, FL_LDSCHED, cortex_a5) ARM_CORE("cortex-a7", cortexa7, cortexa7, 7A, FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV, cortex_a7) ARM_CORE("cortex-a8", cortexa8, cortexa8, 7A, FL_LDSCHED, cortex) ARM_CORE("cortex-a9", cortexa9, cortexa9, 7A, FL_LDSCHED, cortex_a9) -ARM_CORE("cortex-a12", cortexa12, cortexa12, 7A, FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV, cortex_a12) +ARM_CORE("cortex-a12", cortexa12, cortexa15, 7A, FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV, cortex_a12) ARM_CORE("cortex-a15", cortexa15, cortexa15, 7A, FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV, cortex_a15) ARM_CORE("cortex-r4", cortexr4, cortexr4, 7R, FL_LDSCHED, cortex) ARM_CORE("cortex-r4f", cortexr4f, cortexr4f, 7R, FL_LDSCHED, cortex) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0fc6b76..0d773bb 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -28979,6 +28979,7 @@ arm_issue_rate (void) case cortexa7: case cortexa8: case cortexa9: + case cortexa12: case cortexa53: case fa726te: case marvell_pj4: diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 46fc442..c474ff1 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -477,7 +477,7 @@ (define_attr "generic_vfp" "yes,no" (const (if_then_else (and (eq_attr "fpu" "vfp") - (eq_attr "tune" "!arm1020e,arm1022e,cortexa5,cortexa7,cortexa8,cortexa9,cortexa12,cortexa53,cortexm4,marvell_pj4") + (eq_attr "tune" "!arm1020e,arm1022e,cortexa5,cortexa7,cortexa8,cortexa9,cortexa53,cortexm4,marvell_pj4") (eq_attr "tune_cortexr4" "no")) (const_string "yes") (const_string "no"))))