[AArch64][PATCH 1/3] Support ARMv8.2 FP16 floating point instructions.
authorMatthew Wahab <matthew.wahab@arm.com>
Fri, 27 Nov 2015 15:47:53 +0000 (15:47 +0000)
committerMatthew Wahab <matthew.wahab@arm.com>
Fri, 27 Nov 2015 15:47:53 +0000 (15:47 +0000)
ARMv8.2 adds 16-bit floating point operations as an optional extension
to the ARMv8 FP support. This patch set adds support for the 16-bit FP
instructions to binutils, enabling the instructions when both +fp and
+fp16 architecture extensions are enabled.

The patches in this series:
- Add a feature macro for use by the encoding/decoding mechanism.
- Adjust a utility function, used when disassembling, to support 16-bit
  floating point values.
- Add the new scalar floating-point instructions.

This patch adds the feature macro FP_F16 to the AArch64 encoding/decoding
mechanism, enabling it when both +fp and +fp16 are selected.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-tbl.h (aarch64_feature_fp_f16): New.
(FP_F16): New.

Change-Id: Ie370e43e3d77a7d54b4416b4be901b363a37f3d5

opcodes/ChangeLog
opcodes/aarch64-tbl.h

index 18be8f4584acf742de8d2a1bae0e7fa6f0499372..afdd7e7cf93157d6467dc232f6c2aa6232ae784a 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64-tbl.h (aarch64_feature_fp_f16): New.
+       (FP_F16): New.
+
 2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64-asm-2.c: Regenerate.
index 6371193822c577ac1f1618059711bd4e07750504..6b77b36a1bed0bf43e52682fd5728473e12d74ac 100644 (file)
@@ -1235,6 +1235,8 @@ static const aarch64_feature_set aarch64_feature_rdma =
   AARCH64_FEATURE (AARCH64_FEATURE_RDMA, 0);
 static const aarch64_feature_set aarch64_feature_v8_2 =
   AARCH64_FEATURE (AARCH64_FEATURE_V8_2, 0);
+static const aarch64_feature_set aarch64_feature_fp_f16 =
+  AARCH64_FEATURE (AARCH64_FEATURE_F16 | AARCH64_FEATURE_FP, 0);
 
 #define CORE   &aarch64_feature_v8
 #define FP     &aarch64_feature_fp
@@ -1244,6 +1246,7 @@ static const aarch64_feature_set aarch64_feature_v8_2 =
 #define LSE    &aarch64_feature_lse
 #define LOR    &aarch64_feature_lor
 #define RDMA   &aarch64_feature_rdma
+#define FP_F16 &aarch64_feature_fp_f16
 #define ARMV8_2        &aarch64_feature_v8_2
 
 struct aarch64_opcode aarch64_opcode_table[] =