public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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.

  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).