diff options
author | Matthew Wahab <matthew.wahab@arm.com> | 2015-06-03 10:03:50 +0100 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2015-06-03 10:03:50 +0100 |
commit | a5932920ef397c2cbe02efa915686022b78d59a7 (patch) | |
tree | 682b82c10437838999bafd3925037c762e4fead9 /include | |
parent | 0220bc5727e595f42bc3a1ce8ef284491aa74ac7 (diff) | |
download | gdb-a5932920ef397c2cbe02efa915686022b78d59a7.zip gdb-a5932920ef397c2cbe02efa915686022b78d59a7.tar.gz gdb-a5932920ef397c2cbe02efa915686022b78d59a7.tar.bz2 |
[ARM] Support for ARMv8.1 command line option
2015-06-03 Matthew Wahab <matthew.wahab@arm.com>
gas/
* config/tc-arm.c (arm_archs): Add "armv8.1-a".
* doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a".
* NEWS: Mention ARMv8.1 support.
include/opcode/
* arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New.
(ARM_ARCH_V8_1A): New.
(ARM_ARCH_V8_1A_FP): New.
(ARM_ARCH_V8_1A_SIMD): New.
(ARM_ARCH_V8_1A_CRYPTOV1): New.
(ARM_FEATURE_CORE): New.
Diffstat (limited to 'include')
-rw-r--r-- | include/opcode/ChangeLog | 9 | ||||
-rw-r--r-- | include/opcode/arm.h | 16 |
2 files changed, 25 insertions, 0 deletions
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 969ac70..8a57fac 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,12 @@ +2015-06-03 Matthew Wahab <matthew.wahab@arm.com> + + * arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New. + (ARM_ARCH_V8_1A): New. + (ARM_ARCH_V8_1A_FP): New. + (ARM_ARCH_V8_1A_SIMD): New. + (ARM_ARCH_V8_1A_CRYPTOV1): New. + (ARM_FEATURE_CORE): New. + 2015-06-02 Matthew Wahab <matthew.wahab@arm.com> * arm.h (ARM_EXT2_PAN): New. diff --git a/include/opcode/arm.h b/include/opcode/arm.h index d88ff27..a5aa3a1 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -208,6 +208,9 @@ ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \ | FPU_VFP_ARMV8 \ | FPU_NEON_EXT_RDMA) +#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \ + ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \ + | FPU_NEON_EXT_RDMA) #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE) @@ -247,6 +250,7 @@ #define ARM_ARCH_V7M ARM_FEATURE_CORE_LOW (ARM_AEXT_V7M) #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) /* Some useful combinations: */ #define ARM_ARCH_NONE ARM_FEATURE_LOW (0, 0) @@ -275,6 +279,17 @@ #define ARM_ARCH_V8A_CRYPTOV1 ARM_FEATURE_LOW (ARM_AEXT_V8A, \ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8) +/* v8.1-a+fp. */ +#define ARM_ARCH_V8_1A_FP ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \ + FPU_ARCH_VFP_ARMV8) +/* v8.1-a+simd (implies fp). */ +#define ARM_ARCH_V8_1A_SIMD ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \ + FPU_ARCH_NEON_VFP_ARMV8_1) +/* v8.1-a+crypto (implies simd+fp). */ +#define ARM_ARCH_V8_1A_CRYPTOV1 ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \ + FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1) + + /* There are too many feature bits to fit in a single word, so use a structure. For simplicity we put all core features in array CORE and everything else in the other. All the bits in element core[0] @@ -328,6 +343,7 @@ typedef struct ((T1).core[0] == (T2).core[0] && (T1).core[1] == (T2).core[1]) #define ARM_FEATURE_LOW(core, coproc) {{(core), 0}, (coproc)} +#define ARM_FEATURE_CORE(core1, core2) {{(core1), (core2)}, 0} #define ARM_FEATURE_CORE_LOW(core) {{(core), 0}, 0} #define ARM_FEATURE_CORE_HIGH(core) {{0, (core)}, 0} #define ARM_FEATURE_COPROC(coproc) {{0, 0}, (coproc)} |