diff options
author | Jiong Wang <jiong.wang@arm.com> | 2016-02-19 14:27:23 +0000 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2016-02-19 14:27:23 +0000 |
commit | b8ec4e871ef7650b852df9956841ee414766de59 (patch) | |
tree | 547744178ef3b8f81eed64a88259991e6f692a1a | |
parent | 3be64886b5cd7e877d8783a53b81e2c6f7d01307 (diff) | |
download | gdb-b8ec4e871ef7650b852df9956841ee414766de59.zip gdb-b8ec4e871ef7650b852df9956841ee414766de59.tar.gz gdb-b8ec4e871ef7650b852df9956841ee414766de59.tar.bz2 |
[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".
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 6 | ||||
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/opcode/arm.h | 3 |
4 files changed, 19 insertions, 1 deletions
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. */ |