From: Jiong Wang <jiong.wang@foss.arm.com>
To: gcc-patches <gcc-patches@gcc.gnu.org>
Cc: James Greenhalgh <james.greenhalgh@arm.com>,
"Richard Earnshaw (lists)" <Richard.Earnshaw@arm.com>
Subject: [Ping~][AArch64] Add commandline support for -march=armv8.3-a
Date: Fri, 06 Jan 2017 11:33:00 -0000 [thread overview]
Message-ID: <65fc4e53-a56e-1b16-89ee-871ca08afca0@foss.arm.com> (raw)
In-Reply-To: <f97bf031-e589-5879-17f6-60ed02468561@foss.arm.com>
[-- Attachment #1: Type: text/plain, Size: 1239 bytes --]
On 11/11/16 18:22, Jiong Wang wrote:
> This patch add command line support for ARMv8.3-A through new architecture:
>
> -march=armv8.3-a
>
> ARMv8.3-A implies all default features of ARMv8.2-A and meanwhile it includes
> the new pointer authentication extension.
>
>
> gcc/
> 2016-11-08 Jiong Wang<jiong.wang@arm.com>
>
> * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
> * config/aarch64/aarch64.h (AARCH64_FL_PAUTH, AARCH64_FL_V8_3,
> AARCH64_FL_FOR_ARCH8_3, AARCH64_ISA_PAUTH, AARCH64_ISA_V8_3,
> TARGET_PAUTH, TARGET_ARMV8_3): New.
> * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
Ping ~
As pointer authentication extension is defined to be mandatory extension on
ARMv8.3-A and is not optional, I adjusted the patch slightly.
This also let GCC treating pointer authentication extension in consistent way
with Binutils.
OK for trunk?
gcc/
2017-01-06 Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
* config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
* doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
[-- Attachment #2: 1.patch --]
[-- Type: text/x-diff, Size: 3329 bytes --]
diff --git a/gcc/config/aarch64/aarch64-arches.def b/gcc/config/aarch64/aarch64-arches.def
index 830a7cf545532c050847a8c915d21bef12152388..ce6f73b3e5853b3d40e07545b9581298c768edca 100644
--- a/gcc/config/aarch64/aarch64-arches.def
+++ b/gcc/config/aarch64/aarch64-arches.def
@@ -33,5 +33,6 @@
AARCH64_ARCH("armv8-a", generic, 8A, 8, AARCH64_FL_FOR_ARCH8)
AARCH64_ARCH("armv8.1-a", generic, 8_1A, 8, AARCH64_FL_FOR_ARCH8_1)
AARCH64_ARCH("armv8.2-a", generic, 8_2A, 8, AARCH64_FL_FOR_ARCH8_2)
+AARCH64_ARCH("armv8.3-a", generic, 8_3A, 8, AARCH64_FL_FOR_ARCH8_3)
#undef AARCH64_ARCH
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 584ff5c43afcd1a7918019b09165371bb88bfda1..51916c95a736ade697a823f15d483336651ac99a 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -138,6 +138,8 @@ extern unsigned aarch64_architecture_version;
/* ARMv8.2-A architecture extensions. */
#define AARCH64_FL_V8_2 (1 << 8) /* Has ARMv8.2-A features. */
#define AARCH64_FL_F16 (1 << 9) /* Has ARMv8.2-A FP16 extensions. */
+/* ARMv8.3-A architecture extensions. */
+#define AARCH64_FL_V8_3 (1 << 10) /* Has ARMv8.3-A features. */
/* Has FP and SIMD. */
#define AARCH64_FL_FPSIMD (AARCH64_FL_FP | AARCH64_FL_SIMD)
@@ -151,6 +153,8 @@ extern unsigned aarch64_architecture_version;
(AARCH64_FL_FOR_ARCH8 | AARCH64_FL_LSE | AARCH64_FL_CRC | AARCH64_FL_V8_1)
#define AARCH64_FL_FOR_ARCH8_2 \
(AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2)
+#define AARCH64_FL_FOR_ARCH8_3 \
+ (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3)
/* Macros to test ISA flags. */
@@ -162,6 +166,7 @@ extern unsigned aarch64_architecture_version;
#define AARCH64_ISA_RDMA (aarch64_isa_flags & AARCH64_FL_V8_1)
#define AARCH64_ISA_V8_2 (aarch64_isa_flags & AARCH64_FL_V8_2)
#define AARCH64_ISA_F16 (aarch64_isa_flags & AARCH64_FL_F16)
+#define AARCH64_ISA_V8_3 (aarch64_isa_flags & AARCH64_FL_V8_3)
/* Crypto is an optional extension to AdvSIMD. */
#define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
@@ -176,6 +181,9 @@ extern unsigned aarch64_architecture_version;
#define TARGET_FP_F16INST (TARGET_FLOAT && AARCH64_ISA_F16)
#define TARGET_SIMD_F16INST (TARGET_SIMD && AARCH64_ISA_F16)
+/* ARMv8.3-A features. */
+#define TARGET_ARMV8_3 (AARCH64_ISA_V8_3)
+
/* Make sure this is always defined so we don't have to check for ifdefs
but rather use normal ifs. */
#ifndef TARGET_FIX_ERR_A53_835769_DEFAULT
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 8e2f46617b8e44ccf16941c31029ab5625322867..791718831d7089c44dfadb137f5e93caa9cd05f0 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -13874,7 +13874,10 @@ more feature modifiers. This option has the form
@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}.
The permissible values for @var{arch} are @samp{armv8-a},
-@samp{armv8.1-a}, @samp{armv8.2-a} or @var{native}.
+@samp{armv8.1-a}, @samp{armv8.2-a}, @samp{armv8.3-a} or @var{native}.
+
+The value @samp{armv8.3-a} implies @samp{armv8.2-a} and enables compiler
+support for the ARMv8.3-A architecture extensions.
The value @samp{armv8.2-a} implies @samp{armv8.1-a} and enables compiler
support for the ARMv8.2-A architecture extensions.
next prev parent reply other threads:[~2017-01-06 11:33 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <c9da17a6-c3de-4466-c023-4e4ddbe38efb@foss.arm.com>
2016-11-11 18:22 ` [1/9][RFC][DWARF] Reserve three DW_OP numbers in vendor extension space Jiong Wang
2016-11-11 18:33 ` [2/9] Encoding support for AArch64 DWARF operations Jiong Wang
2016-11-16 17:51 ` Jason Merrill
2016-11-16 20:39 ` Jason Merrill
[not found] ` <64dd1b38-ff0a-5df0-1d3c-2fbf083e2697@foss.arm.com>
2016-11-11 18:34 ` [3/9][AArch64] Add commandline support for -march=armv8.3-a Jiong Wang
[not found] ` <df0da0e0-df8d-50ff-4f7e-428948817b4b@foss.arm.com>
2016-11-11 18:34 ` [4/9][AArch64] Return address protection on AArch64 Jiong Wang
[not found] ` <532363d6-0b33-491f-264d-9cd627713bf6@foss.arm.com>
2016-11-11 18:35 ` [5/9][AArch64] Generate dwarf information for -msign-return-address Jiong Wang
[not found] ` <c46bb16a-4133-5aac-646f-cfd3f204d355@foss.arm.com>
2016-11-11 18:35 ` [6/9][AArch64] Add builtins support for pac/aut/xpac Jiong Wang
[not found] ` <172bd740-755c-5267-3a9d-692c84d25395@foss.arm.com>
[not found] ` <9333e644-4daa-38e3-690e-2ea3473b0f29@foss.arm.com>
2016-11-11 18:36 ` [8/9][AArch64, libgcc] Runtime support for AArch64 DWARF operations Jiong Wang
[not found] ` <1ae89b2b-9819-12f8-5341-776c3b02e5b3@foss.arm.com>
2016-11-11 18:37 ` [9/9][RFC][AArch64] Accelerate -fstack-protector through pointer authentication extension Jiong Wang
2017-01-18 17:10 ` [AArch64] " Jiong Wang
2017-02-07 16:06 ` Ping [AArch64] Accelerate -fstack-protector Jiong Wang
2017-02-15 16:06 ` [AArch64] Accelerate -fstack-protector through pointer authentication extension Richard Earnshaw (lists)
2017-02-15 17:30 ` Jiong Wang
2016-11-11 18:36 ` [7/9][AArch64, libgcc] Let AArch64 use customized unwinder file Jiong Wang
2016-11-11 22:12 ` Joseph Myers
2016-11-14 13:55 ` Jiong Wang
2016-11-11 19:39 ` [1/9][RFC][DWARF] Reserve three DW_OP numbers in vendor extension space Jakub Jelinek
2016-11-15 16:00 ` Jiong Wang
2016-11-15 16:18 ` Jakub Jelinek
2016-11-15 16:48 ` Jiong Wang
2016-11-15 19:25 ` Richard Earnshaw (lists)
2016-11-16 10:00 ` Jiong Wang
2016-11-16 13:55 ` Mark Wielaard
2016-11-16 14:02 ` Jakub Jelinek
2016-11-30 11:15 ` Jiong Wang
2016-11-30 18:25 ` Yao Qi
2016-12-12 13:40 ` [Ping~][1/9][RFC][DWARF] " Jiong Wang
2016-12-19 14:07 ` [Ping^2][1/9][RFC][DWARF] " Jiong Wang
2016-12-28 18:25 ` [Ping^3][1/9][RFC][DWARF] " Jiong Wang
2016-12-28 21:14 ` [1/9][RFC][DWARF] " Cary Coutant
2017-01-03 9:32 ` Jiong Wang
2016-11-30 21:44 ` Cary Coutant
2016-12-01 10:42 ` Richard Earnshaw (lists)
2016-12-01 11:09 ` Jiong Wang
2016-11-15 16:51 ` Jiong Wang
2016-12-28 19:54 ` Cary Coutant
[not found] ` <4cf21d03-0a88-c6fa-df37-59ec4edf1d89@foss.arm.com>
[not found] ` <ac547390-abfc-3d6a-f10b-dbb9e4bad5b2@foss.arm.com>
[not found] ` <f97bf031-e589-5879-17f6-60ed02468561@foss.arm.com>
2017-01-06 11:33 ` Jiong Wang [this message]
2017-01-10 17:00 ` [Ping~][AArch64] Add commandline support for -march=armv8.3-a James Greenhalgh
[not found] ` <ae7c1f2a-06e4-55d1-d3be-e43ae7ec76df@foss.arm.com>
[not found] ` <6f8e65e0-643d-d0b0-26ad-4a20c3daf421@foss.arm.com>
2017-01-06 11:47 ` [1/5][AArch64] Return address protection on AArch64 Jiong Wang
2017-01-13 16:05 ` James Greenhalgh
2017-01-13 17:05 ` Jiong Wang
2017-01-16 11:25 ` James Greenhalgh
2017-01-20 4:15 ` Andrew Pinski
2017-01-20 11:39 ` Jiong Wang
2017-01-20 13:15 ` Jiong Wang
2017-01-20 16:24 ` Richard Earnshaw (lists)
2017-01-20 18:30 ` Jiong Wang
2017-01-20 18:49 ` Jiong Wang
2017-01-20 19:14 ` Richard Earnshaw (lists)
[not found] ` <60457276-8566-8bef-6073-4b00dd975759@foss.arm.com>
[not found] ` <1e3f0dce-74c8-5a80-ed5a-7e6feeec1e63@foss.arm.com>
[not found] ` <97fad7f9-cb42-ab1c-f039-ba42d5dc72c8@foss.arm.com>
[not found] ` <e9d558d5-0f41-c1e1-e184-94a9311fa664@foss.arm.com>
2017-01-06 11:47 ` [4/5][AArch64, libgcc] Let AArch64 use customized unwinder file Jiong Wang
[not found] ` <d0b329fc-d564-3b14-da21-0eb084c6661f@foss.arm.com>
[not found] ` <fdda17f4-5594-c983-64ac-158a9ba43e4c@foss.arm.com>
2017-01-06 11:47 ` [5/5][AArch64, libgcc] Runtime support for AArch64 DWARF operations Jiong Wang
2017-01-12 18:10 ` [Ping~]Re: [5/5][AArch64, libgcc] Runtime support for AArch64 return address signing (also attached target macros version) Jiong Wang
2017-01-13 14:12 ` James Greenhalgh
2017-01-18 17:10 ` [Ping~]Re: [5/5][libgcc] Runtime support for AArch64 return address signing (needs new target macros) Jiong Wang
2017-01-19 14:23 ` Richard Earnshaw (lists)
2017-01-19 14:51 ` Jiong Wang
2017-01-19 20:25 ` Richard Earnshaw (lists)
2017-01-20 8:42 ` Christophe Lyon
2017-01-20 9:46 ` Jiong Wang
2017-01-20 10:19 ` Christophe Lyon
2017-01-20 10:31 ` Jiong Wang
2017-01-20 10:32 ` Christophe Lyon
2017-01-20 11:55 ` Jiong Wang
2017-01-20 12:14 ` Richard Earnshaw (lists)
2017-01-20 14:33 ` Christophe Lyon
[not found] ` <8d24add0-1c8d-6778-11dd-f7d018b34396@foss.arm.com>
2017-01-06 11:47 ` [3/5][AArch64] New builtins required by libgcc unwinder Jiong Wang
2017-01-13 16:14 ` Richard Earnshaw (lists)
[not found] ` <2718d6de-4571-694b-3eeb-90b7b839a867@foss.arm.com>
2017-01-06 11:47 ` [2/5][AArch64] Generate dwarf information for -msign-return-address Jiong Wang
2017-01-13 16:09 ` Richard Earnshaw (lists)
2017-01-13 18:02 ` Jiong Wang
2017-01-16 14:29 ` [2/5][DWARF] Generate dwarf information for -msign-return-address by introducing new DWARF mapping hook Jiong Wang
2017-01-17 13:57 ` Richard Earnshaw (lists)
2017-01-17 15:11 ` Jiong Wang
2017-01-19 14:19 ` Richard Earnshaw (lists)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=65fc4e53-a56e-1b16-89ee-871ca08afca0@foss.arm.com \
--to=jiong.wang@foss.arm.com \
--cc=Richard.Earnshaw@arm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=james.greenhalgh@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).