From f6b2065fb0e7b294582df9665aee6ce2bc6ea9e8 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Fri, 4 Nov 2016 16:46:33 +0000 Subject: [PATCH] Add support for ARM Cortex-M23 processor 2016-11-04 Thomas Preud'homme gcc/ * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as representative core for this architecture. * config/arm/arm-cores.def (cortex-m23): Define new processor. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores this tuning parameters apply to in the comment. * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of valid -mcpu options. * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor. From-SVN: r241848 --- gcc/ChangeLog | 13 +++++++++++++ gcc/config/arm/arm-arches.def | 2 +- gcc/config/arm/arm-cores.def | 1 + gcc/config/arm/arm-tables.opt | 3 +++ gcc/config/arm/arm-tune.md | 10 +++++----- gcc/config/arm/arm.c | 3 ++- gcc/config/arm/bpabi.h | 4 ++-- gcc/doc/invoke.texi | 1 + 8 files changed, 28 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 11518b77eaf..adc4d1761f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2016-11-04 Thomas Preud'homme + + * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as + representative core for this architecture. + * config/arm/arm-cores.def (cortex-m23): Define new processor. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores + this tuning parameters apply to in the comment. + * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of + valid -mcpu options. + * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor. + 2016-11-04 Bin Cheng * fold-const.c (fold_cond_expr_with_comparison): Remove call diff --git a/gcc/config/arm/arm-arches.def b/gcc/config/arm/arm-arches.def index 4b196a7d118..9293429b3f9 100644 --- a/gcc/config/arm/arm-arches.def +++ b/gcc/config/arm/arm-arches.def @@ -69,7 +69,7 @@ ARM_ARCH ("armv8.2-a", cortexa53, 8A, ARM_ARCH ("armv8.2-a+fp16", cortexa53, 8A, ARM_FSET_MAKE (FL_CO_PROC | FL_CRC32 | FL_FOR_ARCH8A, FL2_FOR_ARCH8_2A | FL2_FP16INST)) -ARM_ARCH("armv8-m.base", cortexm0, 8M_BASE, +ARM_ARCH("armv8-m.base", cortexm23, 8M_BASE, ARM_FSET_MAKE_CPU1 ( FL_FOR_ARCH8M_BASE)) ARM_ARCH("armv8-m.main", cortexm7, 8M_MAIN, ARM_FSET_MAKE_CPU1(FL_CO_PROC | FL_FOR_ARCH8M_MAIN)) diff --git a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def index 2072e1e6f8d..940b5de82f0 100644 --- a/gcc/config/arm/arm-cores.def +++ b/gcc/config/arm/arm-cores.def @@ -166,6 +166,7 @@ ARM_CORE("cortex-a15.cortex-a7", cortexa15cortexa7, cortexa7, 7A, ARM_FSET_MAKE_ ARM_CORE("cortex-a17.cortex-a7", cortexa17cortexa7, cortexa7, 7A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV | FL_FOR_ARCH7A), cortex_a12) /* V8 Architecture Processors */ +ARM_CORE("cortex-m23", cortexm23, cortexm23, 8M_BASE, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_FOR_ARCH8M_BASE), v6m) ARM_CORE("cortex-a32", cortexa32, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a35) ARM_CORE("cortex-a35", cortexa35, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a35) ARM_CORE("cortex-a53", cortexa53, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a53) diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt index ee9e3bb7ec5..de712924afd 100644 --- a/gcc/config/arm/arm-tables.opt +++ b/gcc/config/arm/arm-tables.opt @@ -306,6 +306,9 @@ Enum(processor_type) String(cortex-a15.cortex-a7) Value(cortexa15cortexa7) EnumValue Enum(processor_type) String(cortex-a17.cortex-a7) Value(cortexa17cortexa7) +EnumValue +Enum(processor_type) String(cortex-m23) Value(cortexm23) + EnumValue Enum(processor_type) String(cortex-a32) Value(cortexa32) diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md index 594ce9d1734..46c2c9258bc 100644 --- a/gcc/config/arm/arm-tune.md +++ b/gcc/config/arm/arm-tune.md @@ -32,9 +32,9 @@ cortexr4f,cortexr5,cortexr7, cortexr8,cortexm7,cortexm4, cortexm3,marvell_pj4,cortexa15cortexa7, - cortexa17cortexa7,cortexa32,cortexa35, - cortexa53,cortexa57,cortexa72, - cortexa73,exynosm1,qdf24xx, - xgene1,cortexa57cortexa53,cortexa72cortexa53, - cortexa73cortexa35,cortexa73cortexa53" + cortexa17cortexa7,cortexm23,cortexa32, + cortexa35,cortexa53,cortexa57, + cortexa72,cortexa73,exynosm1, + qdf24xx,xgene1,cortexa57cortexa53, + cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53" (const (symbol_ref "((enum attr_tune) arm_tune)"))) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 6dc2d2d6577..1781de02627 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -2248,7 +2248,8 @@ const struct tune_params arm_cortex_m7_tune = }; /* The arm_v6m_tune is duplicated from arm_cortex_tune, rather than - arm_v6t2_tune. It is used for cortex-m0, cortex-m1 and cortex-m0plus. */ + arm_v6t2_tune. It is used for cortex-m0, cortex-m1, cortex-m0plus and + cortex-m23. */ const struct tune_params arm_v6m_tune = { arm_9e_rtx_costs, diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 0da98fb711b..302302f0d2d 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -95,7 +95,7 @@ |march=armv8.1-a+crc \ |march=armv8.2-a \ |march=armv8.2-a+fp16 \ - |march=armv8-m.base \ + |march=armv8-m.base|mcpu=cortex-m23 \ |march=armv8-m.main \ |march=armv8-m.main+dsp \ :%{!r:--be8}}}" @@ -134,7 +134,7 @@ |march=armv8.1-a+crc \ |march=armv8.2-a \ |march=armv8.2-a+fp16 \ - |march=armv8-m.base \ + |march=armv8-m.base|mcpu=cortex-m23 \ |march=armv8-m.main \ |march=armv8-m.main+dsp \ :%{!r:--be8}}}" diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ad9304fdeff..caa416f114b 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -14925,6 +14925,7 @@ Permissible names are: @samp{arm2}, @samp{arm250}, @samp{cortex-a32}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-r4}, @samp{cortex-r4f}, @samp{cortex-r5}, @samp{cortex-r7}, @samp{cortex-r8}, +@samp{cortex-m23}, @samp{cortex-m7}, @samp{cortex-m4}, @samp{cortex-m3}, -- 2.30.2