diff mbox

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

Message ID e4235fc1-b178-8139-8a55-3f16cc3b56b9@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-M33 processor launched by ARM [1]. The
> patch adds support for the name and wires it up to the ARMv8-M Mainline with DSP
> extensions architecture and arm_v7m_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-m33-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.main+dsp): Set Cortex-M33 as
>         representative core for this architecture.
>         * config/arm/arm-cores.def (cortex-m33): Define new processor.
>         * config/arm/arm-tables.opt: Regenerate.
>         * config/arm/arm-tune.md: Likewise.
>         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
>         valid -mcpu options.
>         * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
>
>
> Tested by building libgcc and libstdc++ for Cortex-M33 and running a hello world
> compiled for it.
>
> Is this ok for master?
>
> Best regards,
>
> Thomas

Comments

Kyrill Tkachov Nov. 2, 2016, 10:14 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-M33 processor launched by ARM [1]. The
>> patch adds support for the name and wires it up to the ARMv8-M Mainline with DSP
>> extensions architecture and arm_v7m_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-m33-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.main+dsp): Set Cortex-M33 as
>>         representative core for this architecture.
>>         * config/arm/arm-cores.def (cortex-m33): Define new processor.
>>         * config/arm/arm-tables.opt: Regenerate.
>>         * config/arm/arm-tune.md: Likewise.
>>         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
>>         valid -mcpu options.
>>         * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
>>
>>
>> Tested by building libgcc and libstdc++ for Cortex-M33 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:14, 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-M33 processor launched by ARM [1]. The
>>> patch adds support for the name and wires it up to the ARMv8-M Mainline with DSP
>>> extensions architecture and arm_v7m_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-m33-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.main+dsp): Set Cortex-M33 as
>>>         representative core for this architecture.
>>>         * config/arm/arm-cores.def (cortex-m33): Define new processor.
>>>         * config/arm/arm-tables.opt: Regenerate.
>>>         * config/arm/arm-tune.md: Likewise.
>>>         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
>>>         valid -mcpu options.
>>>         * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
>>>
>>>
>>> Tested by building libgcc and libstdc++ for Cortex-M33 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-M33 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.main+dsp): Set Cortex-M33 as
     representative core for this architecture.
     * config/arm/arm-cores.def (cortex-m33): Define new processor.
     * config/arm/arm-tables.opt: Regenerate.
     * config/arm/arm-tune.md: Likewise.
     * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
     valid -mcpu options.
     * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.

Best regards,

Thomas
On 02/11/16 10:14, 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-M33 processor launched by ARM [1]. The
>>> patch adds support for the name and wires it up to the ARMv8-M Mainline with DSP
>>> extensions architecture and arm_v7m_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-m33-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.main+dsp): Set Cortex-M33 as
>>>         representative core for this architecture.
>>>         * config/arm/arm-cores.def (cortex-m33): Define new processor.
>>>         * config/arm/arm-tables.opt: Regenerate.
>>>         * config/arm/arm-tune.md: Likewise.
>>>         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
>>>         valid -mcpu options.
>>>         * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
>>>
>>>
>>> Tested by building libgcc and libstdc++ for Cortex-M33 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 9293429b3f9a026bcdacc1651c534bdf14d4df1e..cd79bc505853d4dda6cf2e58bdc2d129032befef 100644
--- a/gcc/config/arm/arm-arches.def
+++ b/gcc/config/arm/arm-arches.def
@@ -73,7 +73,7 @@  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))
-ARM_ARCH("armv8-m.main+dsp", cortexm7, 8M_MAIN,
+ARM_ARCH("armv8-m.main+dsp", cortexm33, 8M_MAIN,
 	 ARM_FSET_MAKE_CPU1(FL_CO_PROC | FL_ARCH7EM | FL_FOR_ARCH8M_MAIN))
 ARM_ARCH("iwmmxt",  iwmmxt,     5TE,	ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_STRONG | FL_FOR_ARCH5TE | FL_XSCALE | FL_IWMMXT))
 ARM_ARCH("iwmmxt2", iwmmxt2,    5TE,	ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_STRONG | FL_FOR_ARCH5TE | FL_XSCALE | FL_IWMMXT | FL_IWMMXT2))
diff --git a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def
index 940b5de82f0340fc0c26be80d47729bc1f193db0..ec63ee4abe54af06cd5531486f294f9a8dae71a1 100644
--- a/gcc/config/arm/arm-cores.def
+++ b/gcc/config/arm/arm-cores.def
@@ -168,6 +168,7 @@  ARM_CORE("cortex-a17.cortex-a7", cortexa17cortexa7, cortexa7,	7A,	ARM_FSET_MAKE_
 /* 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-m33",	cortexm33, cortexm33,	8M_MAIN, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_ARCH7EM | FL_FOR_ARCH8M_MAIN), v7m)
 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)
 ARM_CORE("cortex-a57",	cortexa57, cortexa57,	8A,	ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a57)
diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
index de712924afd33ba1e6e65cb56a5b260858d0cc4f..f7886b94be779fcba91506e77574662fe7188876 100644
--- a/gcc/config/arm/arm-tables.opt
+++ b/gcc/config/arm/arm-tables.opt
@@ -313,6 +313,9 @@  EnumValue
 Enum(processor_type) String(cortex-a32) Value(cortexa32)
 
 EnumValue
+Enum(processor_type) String(cortex-m33) Value(cortexm33)
+
+EnumValue
 Enum(processor_type) String(cortex-a35) Value(cortexa35)
 
 EnumValue
diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md
index 46c2c9258bcad43618a50f6201414fa084cb5b56..e782baccf424e51ac19ef5f02d25ed4f4eb0541d 100644
--- a/gcc/config/arm/arm-tune.md
+++ b/gcc/config/arm/arm-tune.md
@@ -33,8 +33,9 @@ 
 	cortexr8,cortexm7,cortexm4,
 	cortexm3,marvell_pj4,cortexa15cortexa7,
 	cortexa17cortexa7,cortexm23,cortexa32,
-	cortexa35,cortexa53,cortexa57,
-	cortexa72,cortexa73,exynosm1,
-	qdf24xx,xgene1,cortexa57cortexa53,
-	cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53"
+	cortexm33,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/bpabi.h b/gcc/config/arm/bpabi.h
index 302302f0d2d522fe282bb1d12687b53de72cae25..d45a1ca421901da25e16d965a9474438ea10f349 100644
--- a/gcc/config/arm/bpabi.h
+++ b/gcc/config/arm/bpabi.h
@@ -97,7 +97,7 @@ 
    |march=armv8.2-a+fp16				\
    |march=armv8-m.base|mcpu=cortex-m23			\
    |march=armv8-m.main					\
-   |march=armv8-m.main+dsp				\
+   |march=armv8-m.main+dsp|mcpu=cortex-m33		\
    :%{!r:--be8}}}"
 #else
 #define BE8_LINK_SPEC \
@@ -136,7 +136,7 @@ 
    |march=armv8.2-a+fp16				\
    |march=armv8-m.base|mcpu=cortex-m23			\
    |march=armv8-m.main					\
-   |march=armv8-m.main+dsp				\
+   |march=armv8-m.main+dsp|mcpu=cortex-m33		\
    :%{!r:--be8}}}"
 #endif
 
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 42f0307b36e4fe75c946a64bf6258a1ba1bd7b3d..de328dd6c475b498c64113398e49e319fd5a982e 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-m33},
 @samp{cortex-m23},
 @samp{cortex-m7},
 @samp{cortex-m4},