Add support for ARM Cortex-M23 processor
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 4 Nov 2016 16:46:33 +0000 (16:46 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Fri, 4 Nov 2016 16:46:33 +0000 (16:46 +0000)
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.

From-SVN: r241848

gcc/ChangeLog
gcc/config/arm/arm-arches.def
gcc/config/arm/arm-cores.def
gcc/config/arm/arm-tables.opt
gcc/config/arm/arm-tune.md
gcc/config/arm/arm.c
gcc/config/arm/bpabi.h
gcc/doc/invoke.texi

index 11518b77eaf1f01eab37a1d26da58873e9165e59..adc4d1761f4ca058cf4ee6bdaf71f6a4c9e00278 100644 (file)
@@ -1,3 +1,16 @@
+2016-11-04  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.
+
 2016-11-04  Bin Cheng  <bin.cheng@arm.com>
 
        * fold-const.c (fold_cond_expr_with_comparison): Remove call
index 4b196a7d1188de5eca028e5c2597bbc20835201f..9293429b3f9a026bcdacc1651c534bdf14d4df1e 100644 (file)
@@ -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))
index 2072e1e6f8d84533deead24e6fb0b6aff7603f24..940b5de82f0340fc0c26be80d47729bc1f193db0 100644 (file)
@@ -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)
index ee9e3bb7ec57e0e8f2f15b83442711b9faf82d20..de712924afd33ba1e6e65cb56a5b260858d0cc4f 100644 (file)
@@ -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)
 
index 594ce9d1734451f89812200191cb35f1f579289e..46c2c9258bcad43618a50f6201414fa084cb5b56 100644 (file)
@@ -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)")))
index 6dc2d2d6577a80c8523b0fe1900ad0bd280322e9..1781de026276228412c714d3115e5bf1b3825553 100644 (file)
@@ -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,
index 0da98fb711bdcaf5add6e392060f4edaddf6cf05..302302f0d2d522fe282bb1d12687b53de72cae25 100644 (file)
@@ -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}}}"
    |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}}}"
index ad9304fdeff0bb30105bfcb7af17c628e18dcf1a..caa416f114b00ef1cdc83f9c6dca4ddcaa34060d 100644 (file)
@@ -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},