[binutils-gdb] [ARM] Add FP16 feature extension for ARMv8.2 architecture

Jiong Wang jiwang@sourceware.org
Fri Feb 19 14:28:00 GMT 2016


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b8ec4e871ef7650b852df9956841ee414766de59

commit b8ec4e871ef7650b852df9956841ee414766de59
Author: Jiong Wang <jiong.wang@arm.com>
Date:   Fri Feb 19 14:27:23 2016 +0000

    [ARM] Add FP16 feature extension for ARMv8.2 architecture
    
    include/
      * opcode/arm.h (ARM_EXT2_FP16_INSN): New.
    
    gas/
      * config/tc-arm.c (arm_ext_fp16): New.
      (arm_extensions): New entry for "fp16".

Diff:
---
 gas/ChangeLog        | 6 ++++++
 gas/config/tc-arm.c  | 6 ++++++
 include/ChangeLog    | 5 +++++
 include/opcode/arm.h | 3 ++-
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index d97a4b7..3af58ee 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-19  Matthew Wahab  <matthew.wahab@arm.com>
+	    Jiong Wang  <jiong.wang@arm.com>
+
+	* config/tc-arm.c (arm_ext_fp16): New.
+	(arm_extensions): New entry for "fp16".
+
 2016-02-19  Nick Clifton  <nickc@redhat.com>
 
 	PR 19630
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index be6436e..1917441 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -216,6 +216,9 @@ static const arm_feature_set arm_ext_atomics =
   ARM_FEATURE_CORE_HIGH (ARM_EXT2_ATOMICS);
 static const arm_feature_set arm_ext_v8_2 =
   ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_2A);
+/* FP16 instructions.  */
+static const arm_feature_set arm_ext_fp16 =
+  ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST);
 
 static const arm_feature_set arm_arch_any = ARM_ANY;
 static const arm_feature_set arm_arch_full = ARM_FEATURE (-1, -1, -1);
@@ -25068,6 +25071,9 @@ static const struct arm_option_extension_value_table arm_extensions[] =
 				   ARM_FEATURE_CORE_LOW (ARM_EXT_V8)),
   ARM_EXT_OPT ("fp",     FPU_ARCH_VFP_ARMV8, ARM_FEATURE_COPROC (FPU_VFP_ARMV8),
 				   ARM_FEATURE_CORE_LOW (ARM_EXT_V8)),
+  ARM_EXT_OPT ("fp16",  ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+			ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+			ARM_ARCH_V8_2A),
   ARM_EXT_OPT ("idiv",	ARM_FEATURE_CORE_LOW (ARM_EXT_ADIV | ARM_EXT_DIV),
 			ARM_FEATURE_CORE_LOW (ARM_EXT_ADIV | ARM_EXT_DIV),
 				   ARM_FEATURE_CORE_LOW (ARM_EXT_V7A | ARM_EXT_V7R)),
diff --git a/include/ChangeLog b/include/ChangeLog
index 48d21ed..f9e56e2 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-19  Matthew Wahab  <matthew.wahab@arm.com>
+	    Jiong Wang  <jiong.wang@arm.com>
+
+	* opcode/arm.h (ARM_EXT2_FP16_INSN): New.
+
 2016-02-10  Claudiu Zissulescu  <claziss@synopsys.com>
 	    Janek van Oirschot  <jvanoirs@synopsys.com>
 
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index eab5025..1dc301e 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -52,7 +52,7 @@
 #define ARM_EXT_MP       0x08000000     /* Multiprocessing Extensions.  */
 #define ARM_EXT_SEC	 0x10000000	/* Security extensions.  */
 #define ARM_EXT_OS	 0x20000000	/* OS Extensions.  */
-#define ARM_EXT_ADIV	 0x40000000	/* Integer divide extensions in ARM 
+#define ARM_EXT_ADIV	 0x40000000	/* Integer divide extensions in ARM
 					   state.  */
 #define ARM_EXT_VIRT	 0x80000000	/* Virtualization extensions.  */
 
@@ -61,6 +61,7 @@
 #define ARM_EXT2_V8M	 0x00000004	/* ARM V8M.  */
 #define ARM_EXT2_ATOMICS 0x00000008	/* ARMv8 atomics.  */
 #define ARM_EXT2_V6T2_V8M 0x00000010	/* V8M Baseline from V6T2.  */
+#define ARM_EXT2_FP16_INST 0x00000020	/* ARM V8.2A FP16 instructions.  */
 
 /* Co-processor space extensions.  */
 #define ARM_CEXT_XSCALE   0x00000001	/* Allow MIA etc.          */



More information about the Binutils-cvs mailing list