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]

[Patch ARM] Add support for Cortex-A55 and Cortex-A75


Hi,

As the subject line, this patch adds support for the ARM Cortex-A55 and
Cortex-A75 processors.

The ARM Cortex-A55 and Cortex-A75 procsessors implement the ARMv8-A
architecture, with support for the ARMv8.1-A and ARMv8.2-A extensions,
including support for the 16-bit floating point extensions.

The 16-bit floating-point extensions are optional, and we haven't defined
an option mapping straight to them thus far, so this patch first needs to
add one of those in include/opcode/arm.h, then we can simply add the CPU names
as usual in config/tc-arm.c .

Tested on arm-none-eabi

OK? If so, could you please apply this on my behalf, as I don't have
commit rights over here.

Thanks,
James

---
gas/

2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/tc-arm.c (cortex-a55): New.
	(cortex-a75): Likewise.
	* doc/c-arm.texi (-mcpu): Document Cortex-A55 and Cortex-A75.

include/

2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>

	* opcode/arm.h (ARM_ARCH_V8_2A_FP16): New.

diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 8e8fea6..fd3391b 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -25580,12 +25580,16 @@ static const struct arm_cpu_option_table arm_cpus[] =
 								  "Cortex-A35"),
   ARM_CPU_OPT ("cortex-a53",    ARM_ARCH_V8A_CRC, FPU_ARCH_CRYPTO_NEON_VFP_ARMV8,
 								  "Cortex-A53"),
+  ARM_CPU_OPT ("cortex-a55",    ARM_ARCH_V8_2A_FP16,
+				FPU_ARCH_CRYPTO_NEON_VFP_ARMV8, "Cortex-A55"),
   ARM_CPU_OPT ("cortex-a57",    ARM_ARCH_V8A_CRC, FPU_ARCH_CRYPTO_NEON_VFP_ARMV8,
 								  "Cortex-A57"),
   ARM_CPU_OPT ("cortex-a72",    ARM_ARCH_V8A_CRC, FPU_ARCH_CRYPTO_NEON_VFP_ARMV8,
 								  "Cortex-A72"),
   ARM_CPU_OPT ("cortex-a73",    ARM_ARCH_V8A_CRC, FPU_ARCH_CRYPTO_NEON_VFP_ARMV8,
 								  "Cortex-A73"),
+  ARM_CPU_OPT ("cortex-a75",    ARM_ARCH_V8_2A_FP16,
+				FPU_ARCH_CRYPTO_NEON_VFP_ARMV8, "Cortex-A75"),
   ARM_CPU_OPT ("cortex-r4",	ARM_ARCH_V7R,	 FPU_NONE,	  "Cortex-R4"),
   ARM_CPU_OPT ("cortex-r4f",	ARM_ARCH_V7R,	 FPU_ARCH_VFP_V3D16,
 								  "Cortex-R4F"),
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index d0da835..8c12b86 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -123,9 +123,11 @@ recognized:
 @code{cortex-a32},
 @code{cortex-a35},
 @code{cortex-a53},
+@code{cortex-a55},
 @code{cortex-a57},
 @code{cortex-a72},
 @code{cortex-a73},
+@code{cortex-a75},
 @code{cortex-r4},
 @code{cortex-r4f},
 @code{cortex-r5},
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index bb68a78..4030609 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -273,6 +273,9 @@
 				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
 #define ARM_ARCH_V8_2A	ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_2A,	\
 				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
+#define ARM_ARCH_V8_2A_FP16	ARM_FEATURE (ARM_AEXT_V8A, \
+				     ARM_AEXT2_V8_2A | ARM_EXT2_FP16_INST, \
+				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
 #define ARM_ARCH_V8_3A	ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_3A,	\
 				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
 #define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, ARM_AEXT2_V8M)

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