This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, gas/ARM] Add support for Cortex-M33


Hi Richard,

On 27/10/16 13:45, Richard Earnshaw (lists) wrote:
On 26/10/16 16:09, Thomas Preudhomme wrote:
[resending with mailing list also as recipient this time]

Hi,

This patch adds support for the Cortex-M33 processors launched by ARM
[1]. The patch adds support for the name and wires it up to the ARMv8-M
Mainline with DSP extensions architecture. 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:

*** gas/Changelog ***

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

          * config/tc-arm.c (cortex-m33): Declare new processor.
          * doc/c-arm.texi (cortex-m33): Document new processor.


*** include/ChangeLog ***

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

          * opcode/arm.h (ARM_AEXT_V8M_MAIN_DSP): Define.
          (ARM_AEXT2_V8M_MAIN_DSP): Likewise.
          (ARM_ARCH_V8M_MAIN_DSP): Likewise.


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



OK.

R.


Likewise, do you confirm that the reworked attach patch is ok (ie. NEWS entry is ok for new processor support)?

*** gas/Changelog ***

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

        * config/tc-arm.c (cortex-m33): Declare new processor.
        * doc/c-arm.texi (cortex-m33): Document new processor.
        * NEWS: Mention Cortex-M33 support.


*** include/ChangeLog ***

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

        * opcode/arm.h (ARM_AEXT_V8M_MAIN_DSP): Define.
        (ARM_AEXT2_V8M_MAIN_DSP): Likewise.
        (ARM_ARCH_V8M_MAIN_DSP): Likewise.


Ok for trunk?

Best regards,

Thomas
diff --git a/gas/NEWS b/gas/NEWS
index a2a62563f867edf26462a08a23950b179710d288..9bddc5de57b6f05746b2b4296ec909f209f277f2 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -2,7 +2,7 @@
 
 Changes in 2.28:
 
-* Add support for the Cortex-M23 processor.
+* Add support for the Cortex-M23 and Cortex-M33 processors.
 
 Changes in 2.27:
 
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 69dfe989133cbdc12f2da9d2864e6788eace3353..a1b81adf66723321c1a979f47ed4133e3a53ec84 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -25406,6 +25406,8 @@ static const struct arm_cpu_option_table arm_cpus[] =
   ARM_CPU_OPT ("cortex-r8",	ARM_ARCH_V7R_IDIV,
 						 FPU_ARCH_VFP_V3D16,
 								  "Cortex-R8"),
+  ARM_CPU_OPT ("cortex-m33",	ARM_ARCH_V8M_MAIN_DSP,
+						 FPU_NONE,	  "Cortex-M33"),
   ARM_CPU_OPT ("cortex-m23",	ARM_ARCH_V8M_BASE,
 						 FPU_NONE,	  "Cortex-M23"),
   ARM_CPU_OPT ("cortex-m7",	ARM_ARCH_V7EM,	 FPU_NONE,	  "Cortex-M7"),
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index 565ef73250e957e2da11cc261ec9d4b5ccb9c7c2..8217095e1a1a051741fbeeb0512893b211da5abb 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -131,6 +131,7 @@ recognized:
 @code{cortex-r5},
 @code{cortex-r7},
 @code{cortex-r8},
+@code{cortex-m33},
 @code{cortex-m23},
 @code{cortex-m7},
 @code{cortex-m4},
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index feace5cd654d2224e2c2f526a37e4fd248b9900a..3b0d061cb14ef71f47256d6c90296299e27f8d1e 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -151,8 +151,10 @@
 #define ARM_AEXT2_V8_2A	(ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
 #define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
 #define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
+#define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
 #define ARM_AEXT2_V8M	(ARM_EXT2_V8M | ARM_EXT2_ATOMICS | ARM_EXT2_V6T2_V8M)
 #define ARM_AEXT2_V8M_MAIN (ARM_AEXT2_V8M | ARM_EXT2_V8M_MAIN)
+#define ARM_AEXT2_V8M_MAIN_DSP ARM_AEXT2_V8M_MAIN
 
 /* Processors with specific extensions in the co-processor space.  */
 #define ARM_ARCH_XSCALE	ARM_FEATURE_LOW (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
@@ -272,6 +274,8 @@
 #define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, ARM_AEXT2_V8M)
 #define ARM_ARCH_V8M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN, \
 					    ARM_AEXT2_V8M_MAIN)
+#define ARM_ARCH_V8M_MAIN_DSP ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN_DSP, \
+						ARM_AEXT2_V8M_MAIN_DSP)
 
 /* Some useful combinations:  */
 #define ARM_ARCH_NONE	ARM_FEATURE_LOW (0, 0)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]