This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Patch ARM] Add support for Cortex-A55 and Cortex-A75
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: <binutils at sourceware dot org>
- Cc: <nd at arm dot com>, <nickc at redhat dot com>, <richard dot earnshaw at arm dot com>, <ramana dot radhakrishnan at arm dot com>
- Date: Tue, 20 Jun 2017 11:04:08 +0100
- Subject: [Patch ARM] Add support for Cortex-A55 and Cortex-A75
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=arm.com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
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)