From 56a1b672f4b97b10b093f02540dff1c855a69855 Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Thu, 19 Nov 2015 09:24:14 +0000 Subject: [PATCH] [ARM] Add ARMv8.2 architecture feature and command line option. ARMv8.2 is an architectural extension of ARMv8. This patch adds an architecture feature macro for ARMv8.2 to the binutils ARM target with GAS command line option -march=armv8.2-a. gas/ 2015-11-19 Matthew Wahab * config/tc-arm.c (arm_archs): Add "armv8.2-a". * doc/c-arm.texi (-march): Add "armv8.2-a". include/opcode/ 2015-11-19 Matthew Wahab * arm.h (ARM_EXT2_V8_2A): New. (ARM_ARCH_V8_2A): New. Change-Id: I9e0f50e3c6cea24e6b87b8b862fd4e1cdcc1052e --- gas/ChangeLog | 5 +++++ gas/config/tc-arm.c | 1 + gas/doc/c-arm.texi | 1 + include/opcode/ChangeLog | 5 +++++ include/opcode/arm.h | 3 +++ 5 files changed, 15 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index b3e1610e169..cbcae455b83 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-11-19 Matthew Wahab + + * config/tc-arm.c (arm_archs): Add "armv8.2-a". + * doc/c-arm.texi (-march): Add "armv8.2-a". + 2015-11-19 Matthew Wahab * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a". diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 3b0a021a379..23c506de397 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -24826,6 +24826,7 @@ static const struct arm_arch_option_table arm_archs[] = ARM_ARCH_OPT ("armv7e-m", ARM_ARCH_V7EM, FPU_ARCH_VFP), 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 ("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), diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi index 9a34f5e7dfb..ee26e6dc0a1 100644 --- a/gas/doc/c-arm.texi +++ b/gas/doc/c-arm.texi @@ -223,6 +223,7 @@ names are recognized: @code{armv7e-m}, @code{armv8-a}, @code{armv8.1-a}, +@code{armv8.2-a}, @code{iwmmxt} @code{iwmmxt2} and diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index a4d4673769b..16feca11100 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2015-11-19 Matthew Wahab + + * arm.h (ARM_EXT2_V8_2A): New. + (ARM_ARCH_V8_2A): New. + 2015-11-19 Matthew Wahab * aarch64.h (AARCH64_FEATURE_V8_2): New. diff --git a/include/opcode/arm.h b/include/opcode/arm.h index 41f056424a7..5e7d6837958 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -58,6 +58,7 @@ #define ARM_EXT_VIRT 0x80000000 /* Virtualization extensions. */ #define ARM_EXT2_PAN 0x00000001 /* PAN extension. */ +#define ARM_EXT2_V8_2A 0x00000002 /* ARM V8.2A. */ /* Co-processor space extensions. */ #define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */ @@ -251,6 +252,8 @@ #define ARM_ARCH_V7EM ARM_FEATURE_CORE_LOW (ARM_AEXT_V7EM) #define ARM_ARCH_V8A ARM_FEATURE_CORE_LOW (ARM_AEXT_V8A) #define ARM_ARCH_V8_1A ARM_FEATURE_CORE (ARM_AEXT_V8A, ARM_EXT2_PAN) +#define ARM_ARCH_V8_2A ARM_FEATURE_CORE (ARM_AEXT_V8A, \ + ARM_EXT2_PAN | ARM_EXT2_V8_2A) /* Some useful combinations: */ #define ARM_ARCH_NONE ARM_FEATURE_LOW (0, 0) -- 2.30.2