[ARM] Add ARMv8.3 command line option and feature flag
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Mon, 5 Dec 2016 14:07:25 +0000 (14:07 +0000)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Mon, 5 Dec 2016 14:07:25 +0000 (14:07 +0000)
ARMv8.3 is an architectural extension of ARMv8.  Add the
feature macro and -march=armv8.3-a gas command line option
for the ARM target.

https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions

gas/
* config/tc-arm.c (arm_archs): Add "armv8.3-a".
* doc/c-arm.texi (-march): Add "armv8.3-a".

include/
* opcode/arm.h (ARM_EXT2_V8_3A, ARM_AEXT2_V8_3A): New.
(ARM_ARCH_V8_3A): New.

gas/ChangeLog
gas/config/tc-arm.c
gas/doc/c-arm.texi
include/ChangeLog
include/opcode/arm.h

index 3a43fba..3f3a10e 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-05  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * config/tc-arm.c (arm_archs): Add "armv8.3-a".
+       * doc/c-arm.texi (-march): Add "armv8.3-a".
+
 2016-12-02  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * testsuite/gas/arc/cpu-em-err.s: New file.
index 4adcfda..b139b5e 100644 (file)
@@ -25573,6 +25573,7 @@ static const struct arm_arch_option_table arm_archs[] =
   ARM_ARCH_OPT ("armv8-a",     ARM_ARCH_V8A,    FPU_ARCH_VFP),
   ARM_ARCH_OPT ("armv8.1-a",   ARM_ARCH_V8_1A,  FPU_ARCH_VFP),
   ARM_ARCH_OPT ("armv8.2-a",   ARM_ARCH_V8_2A,  FPU_ARCH_VFP),
+  ARM_ARCH_OPT ("armv8.3-a",   ARM_ARCH_V8_3A,  FPU_ARCH_VFP),
   ARM_ARCH_OPT ("xscale",      ARM_ARCH_XSCALE, FPU_ARCH_VFP),
   ARM_ARCH_OPT ("iwmmxt",      ARM_ARCH_IWMMXT, FPU_ARCH_VFP),
   ARM_ARCH_OPT ("iwmmxt2",     ARM_ARCH_IWMMXT2,FPU_ARCH_VFP),
index 547950a..dd37220 100644 (file)
@@ -233,6 +233,7 @@ names are recognized:
 @code{armv8-a},
 @code{armv8.1-a},
 @code{armv8.2-a},
+@code{armv8.3-a},
 @code{iwmmxt}
 @code{iwmmxt2}
 and
index 30c66c2..bb748fe 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-05  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * opcode/arm.h (ARM_EXT2_V8_3A, ARM_AEXT2_V8_3A): New.
+       (ARM_ARCH_V8_3A): New.
+
 2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * opcode/arc.h (insn_class_t): Add DIVREM, LOAD, MOVE, MPY, STORE
index 3b0d061..ac362f1 100644 (file)
@@ -64,6 +64,7 @@
 #define ARM_EXT2_FP16_INST 0x00000020  /* ARM V8.2A FP16 instructions.  */
 #define ARM_EXT2_V8M_MAIN  0x00000040  /* ARMv8-M Mainline.  */
 #define ARM_EXT2_RAS    0x00000080     /* RAS extension.  */
+#define ARM_EXT2_V8_3A  0x00000100     /* ARM V8.3A.  */
 
 /* Co-processor space extensions.  */
 #define ARM_CEXT_XSCALE   0x00000001   /* Allow MIA etc.          */
 #define ARM_AEXT2_V8A  (ARM_EXT2_V6T2_V8M | ARM_EXT2_ATOMICS)
 #define ARM_AEXT2_V8_1A        (ARM_AEXT2_V8A | ARM_EXT2_PAN)
 #define ARM_AEXT2_V8_2A        (ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
+#define ARM_AEXT2_V8_3A        (ARM_AEXT2_V8_2A | ARM_EXT2_V8_3A)
 #define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
 #define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
 #define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
                                     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_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)
 #define ARM_ARCH_V8M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN, \
                                            ARM_AEXT2_V8M_MAIN)