diff mbox

[gcc/ARM,ping] Add support for Cortex-M23

Message ID 7f7207f9-ad94-7eaf-b54e-2c377d261210@foss.arm.com
State New
Headers show

Commit Message

Thomas Preudhomme Nov. 2, 2016, 10:07 a.m. UTC
Ping?

Best regards,

Thomas

On 26/10/16 17:42, Thomas Preudhomme wrote:
> Hi,

>

> This patch adds support for the Cortex-M23 processor launched by ARM [1]. The

> patch adds support for the name and wires it up to the ARMv8-M Baseline

> architecture and arm_v6m_tune tuning parameters for the time being. It also

> updates documentation to mention this new processor.

>

> [1] http://www.arm.com/products/processors/cortex-m/cortex-m23-processor.php

>

> ChangeLog entry is as follows:

>

> *** gcc/Changelog ***

>

> 2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

>

>         * 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.

>

>

> Tested by building libgcc and libstdc++ for Cortex-M23 and running a hello world

> compiled for it.

>

> Is this ok for master?

>

> Best regards,

>

> Thomas

Comments

Kyrill Tkachov Nov. 2, 2016, 10:13 a.m. UTC | #1
On 02/11/16 10:07, Thomas Preudhomme wrote:
> Ping?

>

> Best regards,

>

> Thomas

>

> On 26/10/16 17:42, Thomas Preudhomme wrote:

>> Hi,

>>

>> This patch adds support for the Cortex-M23 processor launched by ARM [1]. The

>> patch adds support for the name and wires it up to the ARMv8-M Baseline

>> architecture and arm_v6m_tune tuning parameters for the time being. It also

>> updates documentation to mention this new processor.

>>

>> [1] http://www.arm.com/products/processors/cortex-m/cortex-m23-processor.php

>>

>> ChangeLog entry is as follows:

>>

>> *** gcc/Changelog ***

>>

>> 2016-10-26  Thomas Preud'homme <thomas.preudhomme@arm.com>

>>

>>         * 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.

>>

>>

>> Tested by building libgcc and libstdc++ for Cortex-M23 and running a hello world

>> compiled for it.

>>

>> Is this ok for master?

>>


Ok.
Thanks,
Kyrill

>> Best regards,

>>

>> Thomas
Thomas Preudhomme Nov. 4, 2016, 4:54 p.m. UTC | #2
On 02/11/16 10:13, Kyrill Tkachov wrote:
>

> On 02/11/16 10:07, Thomas Preudhomme wrote:

>> Ping?

>>

>> Best regards,

>>

>> Thomas

>>

>> On 26/10/16 17:42, Thomas Preudhomme wrote:

>>> Hi,

>>>

>>> This patch adds support for the Cortex-M23 processor launched by ARM [1]. The

>>> patch adds support for the name and wires it up to the ARMv8-M Baseline

>>> architecture and arm_v6m_tune tuning parameters for the time being. It also

>>> updates documentation to mention this new processor.

>>>

>>> [1] http://www.arm.com/products/processors/cortex-m/cortex-m23-processor.php

>>>

>>> ChangeLog entry is as follows:

>>>

>>> *** gcc/Changelog ***

>>>

>>> 2016-10-26  Thomas Preud'homme <thomas.preudhomme@arm.com>

>>>

>>>         * 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.

>>>

>>>

>>> Tested by building libgcc and libstdc++ for Cortex-M23 and running a hello world

>>> compiled for it.

>>>

>>> Is this ok for master?

>>>

>

> Ok.

> Thanks,

> Kyrill

>


Committed, thanks.

Best regards,

Thomas
Thomas Preudhomme Nov. 9, 2016, 2:16 p.m. UTC | #3
Hi,

We have decided to backport this patch to add support for ARM Cortex-M23 to our 
embedded-6-branch.

2016-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

     Backport from mainline
     2016-11-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

     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.

Best regards,

Thomas
On 02/11/16 10:13, Kyrill Tkachov wrote:
>

> On 02/11/16 10:07, Thomas Preudhomme wrote:

>> Ping?

>>

>> Best regards,

>>

>> Thomas

>>

>> On 26/10/16 17:42, Thomas Preudhomme wrote:

>>> Hi,

>>>

>>> This patch adds support for the Cortex-M23 processor launched by ARM [1]. The

>>> patch adds support for the name and wires it up to the ARMv8-M Baseline

>>> architecture and arm_v6m_tune tuning parameters for the time being. It also

>>> updates documentation to mention this new processor.

>>>

>>> [1] http://www.arm.com/products/processors/cortex-m/cortex-m23-processor.php

>>>

>>> ChangeLog entry is as follows:

>>>

>>> *** gcc/Changelog ***

>>>

>>> 2016-10-26  Thomas Preud'homme <thomas.preudhomme@arm.com>

>>>

>>>         * 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.

>>>

>>>

>>> Tested by building libgcc and libstdc++ for Cortex-M23 and running a hello world

>>> compiled for it.

>>>

>>> Is this ok for master?

>>>

>

> Ok.

> Thanks,

> Kyrill

>


Committed, thanks.

Best regards,

Thomas
diff mbox

Patch

diff --git a/gcc/config/arm/arm-arches.def b/gcc/config/arm/arm-arches.def
index 4b196a7d1188de5eca028e5c2597bbc20835201f..9293429b3f9a026bcdacc1651c534bdf14d4df1e 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 2072e1e6f8d84533deead24e6fb0b6aff7603f24..940b5de82f0340fc0c26be80d47729bc1f193db0 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 ee9e3bb7ec57e0e8f2f15b83442711b9faf82d20..de712924afd33ba1e6e65cb56a5b260858d0cc4f 100644
--- a/gcc/config/arm/arm-tables.opt
+++ b/gcc/config/arm/arm-tables.opt
@@ -307,6 +307,9 @@  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)
 
 EnumValue
diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md
index 594ce9d1734451f89812200191cb35f1f579289e..46c2c9258bcad43618a50f6201414fa084cb5b56 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 022c1d72a1272e56397dc7e2018483e77f18b90d..39b2da05d2135c68032231bb7780104061355786 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2243,7 +2243,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 0da98fb711bdcaf5add6e392060f4edaddf6cf05..302302f0d2d522fe282bb1d12687b53de72cae25 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 5ccd4244ef396696f1a7ca962a7a7fe9973fcf6e..42f0307b36e4fe75c946a64bf6258a1ba1bd7b3d 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -14853,6 +14853,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},