[ARM] Support for ARMv8.1 command line option
[deliverable/binutils-gdb.git] / include / opcode / arm.h
index d88ff27f53f91d68cbb2856f034a4c87477ec05e..a5aa3a1bf3f9791109bb9d98b17cf23ebda98631 100644 (file)
   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)
 #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)
 #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)}
This page took 0.023247 seconds and 4 git commands to generate.