diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2016-12-05 14:13:27 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2016-12-05 14:13:27 +0000 |
commit | 49e8a725825c77aacc7458b9d7771cb2fa2f64c7 (patch) | |
tree | 1b8e14968dc5332003f9c4403775da01e131e75c /gas/config | |
parent | a12fd8e1b1c9c6a16e3cc9fc477d7e459776b587 (diff) | |
download | gdb-49e8a725825c77aacc7458b9d7771cb2fa2f64c7.zip gdb-49e8a725825c77aacc7458b9d7771cb2fa2f64c7.tar.gz gdb-49e8a725825c77aacc7458b9d7771cb2fa2f64c7.tar.bz2 |
[ARM] Add ARMv8.3 VJCVT instruction
Add support for VJCVT javascript conversion instruction.
gas/
* config/tc-arm.c (arm_ext_v8_3, do_vjcvt): Define.
(insns): Add vjcvt.
* testsuite/gas/aarch64/armv8_3-a-fp.s: New.
* testsuite/gas/aarch64/armv8_3-a-fp.d: New.
* testsuite/gas/aarch64/armv8_3-a-fp-bad.s: New.
* testsuite/gas/aarch64/armv8_3-a-fp-bad.d: New.
* testsuite/gas/aarch64/armv8_3-a-fp-bad.l: New.
opcodes/
* arm-dis.c (coprocessor_opcodes): Add vjcvt.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index b139b5e..3515fc6 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -234,6 +234,8 @@ static const arm_feature_set arm_ext_ras = /* FP16 instructions. */ static const arm_feature_set arm_ext_fp16 = ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST); +static const arm_feature_set arm_ext_v8_3 = + ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A); static const arm_feature_set arm_arch_any = ARM_ANY; static const arm_feature_set arm_arch_full ATTRIBUTE_UNUSED = ARM_FEATURE (-1, -1, -1); @@ -17440,6 +17442,16 @@ do_crc32cw (void) do_crc32_1 (1, 2); } +static void +do_vjcvt (void) +{ + constraint (!ARM_CPU_HAS_FEATURE (cpu_variant, fpu_vfp_ext_armv8), + _(BAD_FPU)); + neon_check_type (2, NS_FD, N_S32, N_F64); + do_vfp_sp_dp_cvt (); + do_vfp_cond_or_thumb (); +} + /* Overall per-instruction processing. */ @@ -19783,6 +19795,12 @@ static const struct asm_opcode insns[] = TUE ("esb", 320f010, f3af8010, 0, (), noargs, noargs), #undef ARM_VARIANT +#define ARM_VARIANT & arm_ext_v8_3 +#undef THUMB_VARIANT +#define THUMB_VARIANT & arm_ext_v8_3 + NCE (vjcvt, eb90bc0, 2, (RVS, RVD), vjcvt), + +#undef ARM_VARIANT #define ARM_VARIANT & fpu_fpa_ext_v1 /* Core FPA instruction set (V1). */ #undef THUMB_VARIANT #define THUMB_VARIANT NULL |