This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH][AArch64] Add support for missing CPUs
- From: Dennis Zhang <Dennis dot Zhang at arm dot com>
- To: Tamar Christina <Tamar dot Christina at arm dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Cc: nd <nd at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Marcus Shawcroft <Marcus dot Shawcroft at arm dot com>, "nickc at redhat dot com" <nickc at redhat dot com>
- Date: Tue, 20 Aug 2019 13:00:52 +0000
- Subject: Re: [PATCH][AArch64] Add support for missing CPUs
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tA9DUbbKYjTjAqPS/peLNM8IsIgnskvVlM2wd1meJWw=; b=E+5xwBfUpkBKV6nxP66lX4I1uvJTRwvR6AkeIpMHIbczycHOHCsbG9QKWw/sfSh/tiH9VRvujGZINVPtJQBiyul2JZ/NpztGDIV6B6+3fDPhWrvCSvC29rlSarS1OBRxVEC4iRikzUaksNqUtJLDnAVWCsFD0QKuo11aoQJJRCmVZ1EU+OQDh2iqxyxH3k1swBEn7aTV5qwxe+E5UWyhve5BJdYs1ZVjaofRe7M+ao66nngLnQTkgVsSRTv/arUjGtIYYvxssjOP45Nk4Y9akgCp1pEzxiF38eeTEZSUkvbeBN7aOrv9S/rPh8trVSgYcQy+Kt85feT7MGvXExLcVA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i7c22bQnOHPrvP8wXZN5OOxEdshLAv0LIqQGByzlgdtRS3FsUeMlvr/I4Qlcn9XU3Al8QWg+8CFxkGrJBRIWlnx3Q77RN0WXPLwculfZ9gg6K/OuNT3RxG45+GJR3n1v1axMeK/Sm3SA3+wtEXkOq1AdEuNWK7eS6/6PSaDXCvlUzsTH1fo1G0d/e9WzckABJkzxhBVenKA1fPNrenWTZTJ/fQIPvocw/ERSslBk4knBk/nEToP8Ck1YPVYpUiKSmwo73pz+NSs0wUwm5MYJCA/a6eTJ2tT7tknzq558FfsxH14pM5aE33nRBI2psbkRXuzyyHkr3AOKfUoaR0ULMw==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Dennis dot Zhang at arm dot com;
- References: <ecd594a6-7cb2-10ec-a6cf-a71bb0be3a11@arm.com> <DB6PR0802MB230962AFA09B62266453FEC8FFAF0@DB6PR0802MB2309.eurprd08.prod.outlook.com>
Thank you Tamar!
This update includes mentioning the newly supported processors in gas/NEWS.
To avoid conflicts when applying patches, this patch updates NEWS for
both Arm and AArch64 processors together. The patch supporting new Arm
processors is at https://sourceware.org/ml/binutils/2019-08/msg00165.html
Cheers
Dennis
gas/ChangeLog:
2019-08-20 Dennis Zhang <dennis.zhang@arm.com>
* NEWS: Mention the Arm and AArch64 new processors.
* config/tc-aarch64.c: New entries for Cortex-A34, Cortex-A65,
Cortex-A77, cortex-A65AE, and Cortex-A76AE.
* doc/c-aarch64.texi: Document new CPUs.
* testsuite/gas/aarch64/cpu-cortex-a34.d: New test.
* testsuite/gas/aarch64/cpu-cortex-a65.d: New test.
* testsuite/gas/aarch64/cpu-cortex-a65ae.d: New test.
* testsuite/gas/aarch64/cpu-cortex-a76ae.d: New test.
* testsuite/gas/aarch64/cpu-cortex-a77.d: New test.
* testsuite/gas/aarch64/nop-asm.s: New test.
bfd/ChangeLog:
2019-08-20 Dennis Zhang <dennis.zhang@arm.com>
* cpu-aarch64.c: New entries for Cortex-A34, Cortex-A65,
Cortex-A77, cortex-A65AE, and Cortex-A76AE.
On 8/16/19 3:04 PM, Tamar Christina wrote:
> Hi Dennis,
>
> The patches themselves look fine to me (though I am not a maintainer so you still need maintainer approval)
>
> But could you please add a NEWS entry for the new CPUs for both this and the Arm patch?
>
> Thanks,
> Tamar
>
>> -----Original Message-----
>> From: binutils-owner@sourceware.org <binutils-owner@sourceware.org>
>> On Behalf Of Dennis Zhang
>> Sent: Friday, August 16, 2019 14:42
>> To: binutils@sourceware.org
>> Cc: nd <nd@arm.com>; Richard Earnshaw <Richard.Earnshaw@arm.com>;
>> Marcus Shawcroft <Marcus.Shawcroft@arm.com>; nickc@redhat.com
>> Subject: [PATCH][AArch64] Add support for missing CPUs
>>
>> Hi all,
>>
>> This patch adds support for following CPUs:
>> Cortex-A77, Cortex-A76AE, Cortex-A34, Cortex-A65, and Cortex-A65AE.
>>
>> Related specifications can be found at
>> https://developer.arm.com/ip-products/processors.
>>
>> New tests are for new options of added CPUs.
>> Bootstrapped/regtested for aarch64-none-linux-gnu.
>>
>> Please help to check if it's ready.
>> Many thanks!
>>
>> gas/ChangeLog:
>>
>> 2019-08-16 Dennis Zhang <dennis.zhang@arm.com>
>>
>> * config/tc-aarch64.c: New entries for Cortex-A34, Cortex-A65,
>> Cortex-A77, cortex-A65AE, and Cortex-A76AE.
>> * doc/c-aarch64.texi: Document new CPUs.
>> * testsuite/gas/aarch64/cpu-cortex-a34.d: New test.
>> * testsuite/gas/aarch64/cpu-cortex-a65.d: New test.
>> * testsuite/gas/aarch64/cpu-cortex-a65ae.d: New test.
>> * testsuite/gas/aarch64/cpu-cortex-a76ae.d: New test.
>> * testsuite/gas/aarch64/cpu-cortex-a77.d: New test.
>> * testsuite/gas/aarch64/nop-asm.s: New test.
>>
>> bfd/ChangeLog:
>>
>> 2019-08-16 Dennis Zhang <dennis.zhang@arm.com>
>>
>> * cpu-aarch64.c: New entries for Cortex-A34, Cortex-A65,
>> Cortex-A77, Cortex-A65AE, and Cortex-A76AE.
diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
index e895f151c8..eed1c3d9dc 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -68,10 +68,11 @@ static struct
}
processors[] =
{
- /* These two are example CPUs supported in GCC, once we have real
- CPUs they will be removed. */
- { bfd_mach_aarch64, "example-1" },
- { bfd_mach_aarch64, "example-2" }
+ { bfd_mach_aarch64, "cortex-a34" },
+ { bfd_mach_aarch64, "cortex-a65" },
+ { bfd_mach_aarch64, "cortex-a65ae" },
+ { bfd_mach_aarch64, "cortex-a76ae" },
+ { bfd_mach_aarch64, "cortex-a77" }
};
static bfd_boolean
diff --git a/gas/NEWS b/gas/NEWS
index 3eecf71a5f..7ff60000e9 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,11 @@
-*- text -*-
+* Add support for the Arm Cortex-A76AE, Cortex-A77 and Cortex-M35P
+ processors.
+
+* Add support for the AArch64 Cortex-A34, Cortex-A65, Cortex-A65AE,
+ Cortex-A76AE, and Cortex-A77 processors.
+
Changes in 2.32:
* Add -mvexwig=[0|1] option to x86 assembler to control encoding of
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 9cb7b7c722..f2c891addf 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -8740,6 +8740,8 @@ struct aarch64_cpu_option_table
recognized by GCC. */
static const struct aarch64_cpu_option_table aarch64_cpus[] = {
{"all", AARCH64_ANY, NULL},
+ {"cortex-a34", AARCH64_FEATURE (AARCH64_ARCH_V8,
+ AARCH64_FEATURE_CRC), "Cortex-A34"},
{"cortex-a35", AARCH64_FEATURE (AARCH64_ARCH_V8,
AARCH64_FEATURE_CRC), "Cortex-A35"},
{"cortex-a53", AARCH64_FEATURE (AARCH64_ARCH_V8,
@@ -8759,6 +8761,26 @@ static const struct aarch64_cpu_option_table aarch64_cpus[] = {
{"cortex-a76", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
AARCH64_FEATURE_RCPC | AARCH64_FEATURE_F16 | AARCH64_FEATURE_DOTPROD),
"Cortex-A76"},
+ {"cortex-a76ae", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
+ AARCH64_FEATURE_F16 | AARCH64_FEATURE_RCPC
+ | AARCH64_FEATURE_DOTPROD
+ | AARCH64_FEATURE_SSBS),
+ "Cortex-A76AE"},
+ {"cortex-a77", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
+ AARCH64_FEATURE_F16 | AARCH64_FEATURE_RCPC
+ | AARCH64_FEATURE_DOTPROD
+ | AARCH64_FEATURE_SSBS),
+ "Cortex-A77"},
+ {"cortex-a65", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
+ AARCH64_FEATURE_F16 | AARCH64_FEATURE_RCPC
+ | AARCH64_FEATURE_DOTPROD
+ | AARCH64_FEATURE_SSBS),
+ "Cortex-A65"},
+ {"cortex-a65ae", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
+ AARCH64_FEATURE_F16 | AARCH64_FEATURE_RCPC
+ | AARCH64_FEATURE_DOTPROD
+ | AARCH64_FEATURE_SSBS),
+ "Cortex-A65AE"},
{"ares", AARCH64_FEATURE (AARCH64_ARCH_V8_2,
AARCH64_FEATURE_RCPC | AARCH64_FEATURE_F16
| AARCH64_FEATURE_DOTPROD
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index f754538a06..1131e307ab 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -55,14 +55,19 @@ file in ELF32 and ELF64 format respectively. The default is @code{lp64}.
This option specifies the target processor. The assembler will issue an error
message if an attempt is made to assemble an instruction which will not execute
on the target processor. The following processor names are recognized:
+@code{cortex-a34},
@code{cortex-a35},
@code{cortex-a53},
@code{cortex-a55},
@code{cortex-a57},
+@code{cortex-a65},
+@code{cortex-a65ae},
@code{cortex-a72},
@code{cortex-a73},
@code{cortex-a75},
@code{cortex-a76},
+@code{cortex-a76ae},
+@code{cortex-a77},
@code{ares},
@code{exynos-m1},
@code{falkor},
diff --git a/gas/testsuite/gas/aarch64/cpu-cortex-a34.d b/gas/testsuite/gas/aarch64/cpu-cortex-a34.d
new file mode 100644
index 0000000000..31285dba38
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cpu-cortex-a34.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a34 CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a34
+# objdump: -d -mcortex-a34
+
+#...
diff --git a/gas/testsuite/gas/aarch64/cpu-cortex-a65.d b/gas/testsuite/gas/aarch64/cpu-cortex-a65.d
new file mode 100644
index 0000000000..24e594263e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cpu-cortex-a65.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a65 CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a65
+# objdump: -d -mcortex-a65
+
+#...
diff --git a/gas/testsuite/gas/aarch64/cpu-cortex-a65ae.d b/gas/testsuite/gas/aarch64/cpu-cortex-a65ae.d
new file mode 100644
index 0000000000..cc8e9769d5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cpu-cortex-a65ae.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a65ae CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a65ae
+# objdump: -d -mcortex-a65ae
+
+#...
diff --git a/gas/testsuite/gas/aarch64/cpu-cortex-a76ae.d b/gas/testsuite/gas/aarch64/cpu-cortex-a76ae.d
new file mode 100644
index 0000000000..7f7cf2952c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cpu-cortex-a76ae.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a76ae CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a76ae
+# objdump: -d -mcortex-a76ae
+
+#...
diff --git a/gas/testsuite/gas/aarch64/cpu-cortex-a77.d b/gas/testsuite/gas/aarch64/cpu-cortex-a77.d
new file mode 100644
index 0000000000..caff73fe07
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cpu-cortex-a77.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a77 CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a77
+# objdump: -d -mcortex-a77
+
+#...
diff --git a/gas/testsuite/gas/aarch64/nop-asm.s b/gas/testsuite/gas/aarch64/nop-asm.s
new file mode 100644
index 0000000000..c27745a58f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/nop-asm.s
@@ -0,0 +1 @@
+nop