aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2016-12-05 14:13:27 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2016-12-05 14:13:27 +0000
commit49e8a725825c77aacc7458b9d7771cb2fa2f64c7 (patch)
tree1b8e14968dc5332003f9c4403775da01e131e75c /gas/config
parenta12fd8e1b1c9c6a16e3cc9fc477d7e459776b587 (diff)
downloadgdb-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.c18
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