[PATCH 19/57][Arm][GAS] Add support for MVE instructions: vmax[nm][a] and vmin[nm][a]
[deliverable/binutils-gdb.git] / gas / ChangeLog
index 65827441124810de3fad63033e5cc6235d392c50..37ae72e0b710e7d6f50dfab28337d415ad4d8e0a 100644 (file)
@@ -1,3 +1,249 @@
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (do_mve_vmaxa_vmina): New encoding function.
+       (do_mve_vmaxnma_vminnma): Likewise.
+       (do_neon_dyadic_if_su): Change to support MVE variants.
+       (do_vmaxnm): Likewise.
+       (insns): Change to accept MVE variants and add new.
+       * testsuite/gas/arm/mve-vmax-vmin-bad.d: New test.
+       * testsuite/gas/arm/mve-vmax-vmin-bad.l: New test.
+       * testsuite/gas/arm/mve-vmax-vmin-bad.s: New test.
+       * testsuite/gas/arm/mve-vmaxa-vmina-bad.d: New test.
+       * testsuite/gas/arm/mve-vmaxa-vmina-bad.l: New test.
+       * testsuite/gas/arm/mve-vmaxa-vmina-bad.s: New test.
+       * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.d: New test.
+       * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.l: New test.
+       * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.s: New test.
+       * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.d: New test.
+       * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.l: New test.
+       * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (enum operand_parse_code): New operand.
+       (parse_operands): Handle new operand.
+       (mve_encode_qqr): Change to support new instructions.
+       (enum vfp_or_neon_is_neon_bits): Moved.
+       (vfp_or_neon_is_neon): Moved.
+       (check_simd_pred_availability): Moved.
+       (do_neon_dyadic_i_su): Changed to support MVE variants.
+       (neon_dyadic_misc): Changed mve_encode_qqr call.
+       (do_mve_vbrsr): Likewise.
+       (do_mve_vhcadd): New encoding function.
+       (insns): Change existing to accept MVE variants and add new.
+       * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.d: New test.
+       * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.l: New test.
+       * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.s: New test.
+       * testsuite/gas/arm/mve-vhcadd-bad.d: New test.
+       * testsuite/gas/arm/mve-vhcadd-bad.l: New test.
+       * testsuite/gas/arm/mve-vhcadd-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (do_neon_fmac): Change to support MVE variants.
+       (insns): Change to accept MVE variants.
+       * testsuite/gas/arm/mve-vfma-vfms-bad.d: New test.
+       * testsuite/gas/arm/mve-vfma-vfms-bad.l: New test.
+       * testsuite/gas/arm/mve-vfma-vfms-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (M_MNEM_vddup, M_MNEM_vdwdup, M_MNEM_vidup,
+        M_MNEM_viwdup): New instruction encodings.
+       (NEON_SHAPE_DEF): New shapes.
+       (do_mve_viddup): New encoding function.
+       (do_neon_dup): Change to support new MVE variants.
+       (insns): Change existing to accept MVE variants and add new.
+       * testsuite/gas/arm/mve-vddup-bad.d: New test.
+       * testsuite/gas/arm/mve-vddup-bad.l: New test.
+       * testsuite/gas/arm/mve-vddup-bad.s: New test.
+       * testsuite/gas/arm/mve-vdup-bad.d: New test.
+       * testsuite/gas/arm/mve-vdup-bad.l: New test.
+       * testsuite/gas/arm/mve-vdup-bad.s: New test.
+       * testsuite/gas/arm/mve-vidup-bad.d: New test.
+       * testsuite/gas/arm/mve-vidup-bad.l: New test.
+       * testsuite/gas/arm/mve-vidup-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (do_mve_vfmas): New encoding function.
+       (do_neon_cls): Change to support MVE variants.
+       (do_neon_clz): Change to support MVE variants.
+       (insns): Change to support MVE variants and add new.
+       * testsuite/gas/arm/mve-vcls-bad.d: New test.
+       * testsuite/gas/arm/mve-vcls-bad.l: New test.
+       * testsuite/gas/arm/mve-vcls-bad.s: New test.
+       * testsuite/gas/arm/mve-vclz-bad.d: New test.
+       * testsuite/gas/arm/mve-vclz-bad.l: New test.
+       * testsuite/gas/arm/mve-vclz-bad.s: New test.
+       * testsuite/gas/arm/mve-vfmas-bad.d: New test.
+       * testsuite/gas/arm/mve-vfmas-bad.l: New test.
+       * testsuite/gas/arm/mve-vfmas-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (enum operand_parse_code): New operands.
+       (parse_operands): Handle new operands.
+       (do_mve_vcmul): New encoding function.
+       (do_vcmla): Change to support MVE variants.
+       (do_vcadd): Change to support MVE variants.
+       (insns): Change existing to support MVE variants and add new.
+       * testsuite/gas/arm/mve-vcadd-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vcadd-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vcadd-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vcadd-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vcadd-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vcadd-bad-2.s: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vcmla-bad-2.s: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vcmul-bad-2.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (enum operand_parse_code): New operands.
+       (parse_operands): Handle new operands.
+       (enum vfp_or_neon_is_neon_bits): Moved
+       (vfp_or_neon_is_neon): Moved
+       (check_simd_pred_availability): Moved.
+       (do_neon_logic): Change to accept MVE variants.
+       (insns): Changed to accept MVE variants.
+       * testsuite/gas/arm/mve-vand-bad.d: New test.
+       * testsuite/gas/arm/mve-vand-bad.l: New test.
+       * testsuite/gas/arm/mve-vand-bad.s: New test.
+       * testsuite/gas/arm/mve-vbic-bad.d: New test.
+       * testsuite/gas/arm/mve-vbic-bad.l: New test.
+       * testsuite/gas/arm/mve-vbic-bad.s: New test.
+       * testsuite/gas/arm/mve-veor-bad.d: New test.
+       * testsuite/gas/arm/mve-veor-bad.l: New test.
+       * testsuite/gas/arm/mve-veor-bad.s: New test.
+       * testsuite/gas/arm/mve-vorn-bad.d: New test.
+       * testsuite/gas/arm/mve-vorn-bad.l: New test.
+       * testsuite/gas/arm/mve-vorn-bad.s: New test.
+       * testsuite/gas/arm/mve-vorr-bad.d: New test.
+       * testsuite/gas/arm/mve-vorr-bad.l: New test.
+       * testsuite/gas/arm/mve-vorr-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (M_MNEM_vaddlv, M_MNEM_vaddlva, M_MNEM_vaddv,
+        M_MNEM_vaddva): New instruction encodings.
+       (mve_encode_rq): New encoding helper function.
+       (do_mve_vaddlv): New encoding function.
+       (do_mve_vaddv): New encoding function.
+       * testsuite/gas/arm/mve-vaddlv-bad.d: New test.
+       * testsuite/gas/arm/mve-vaddlv-bad.l: New test.
+       * testsuite/gas/arm/mve-vaddlv-bad.s: New test.
+       * testsuite/gas/arm/mve-vaddv-bad.d: New test.
+       * testsuite/gas/arm/mve-vaddv-bad.l: New test.
+       * testsuite/gas/arm/mve-vaddv-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (M_MNEM_vadc, M_MNEM_vadci, M_MNEM_vbrsr):
+       New instruction encodings.
+       (do_mve_vadc): New encoding instruction.
+       (do_mve_vbrsr): Likewise.
+       (do_mve_vsbc): Likewise.
+       * testsuite/gas/arm/mve-vadc-bad.d: New test.
+       * testsuite/gas/arm/mve-vadc-bad.l: New test.
+       * testsuite/gas/arm/mve-vadc-bad.s: New test.
+       * testsuite/gas/arm/mve-vbrsr-bad.d: New test.
+       * testsuite/gas/arm/mve-vbrsr-bad.l: New test.
+       * testsuite/gas/arm/mve-vbrsr-bad.s: New test.
+       * testsuite/gas/arm/mve-vsbc-bad.d: New test.
+       * testsuite/gas/arm/mve-vsbc-bad.l: New test.
+       * testsuite/gas/arm/mve-vsbc-bad.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (MVE_BAD_QREG): New error message.
+       (enum operand_parse_code): Define new operand.
+       (parse_operands): Handle new operand.
+       (do_mve_vpt): Change for VPT blocks.
+       (NEON_SHAPE_DEF): New shape.
+       (neon_logbits): Moved.
+       (LOW4): Moved
+       (HI1): Moved
+       (mve_get_vcmp_vpt_cond): New function to translate vpt conditions.
+       (do_mve_vcmp): New encoding function.
+       (do_vfp_nsyn_cmp): Changed to support MVE variants.
+       (insns): Change to support MVE variants of vcmp and add vpt.
+       * testsuite/gas/arm/mve-vcmp-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vcmp-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vcmp-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vcmp-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vcmp-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vcmp-bad-2.s: New test.
+       * testsuite/gas/arm/mve-vpt-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vpt-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vpt-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vpt-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vpt-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vpt-bad-2.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (struct arm_it): Expand isscalar field to be able to
+       distinguish between types of scalar.
+       (parse_typed_reg_or_scalar): Change to accept MVE scalar variants.
+       (parse_scalar): Likewise.
+       (parse_neon_mov): Accept MVE variant.
+       (po_scalar_or_goto): Make use reg_type.
+       (parse_operands): Change uses of po_scalar_or_goto.
+       (do_vfp_sp_monadic): Change to accept MVE variants.
+       (do_vfp_reg_from_sp): Likewise.
+       (do_vfp_sp_from_reg): Likewise.
+       (do_vfp_dp_rd_rm): Likewise.
+       (do_vfp_dp_rd_rn_rm): Likewise.
+       (do_vfp_dp_rm_rd_rn): Likewise.
+       (M_MNEM_vmovlt, M_MNEM_vmovlb, M_MNEM_vmovnt, M_MNEM_vmovnb): New
+       instruction encodings.
+       (NEON_SHAPE_DEF): New shape.
+       (do_mve_mov): New encoding fuction.
+       (do_mve_movn): Likewise.
+       (do_mve_movl): Likewise.
+       (do_neon_mov): Change to accept MVE variants.
+       (mcCE): New MACRO.
+       (insns): Accept new MVE variants and instructions.
+       * testsuite/gas/arm/mve-vmov-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vmov-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vmov-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vmov-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vmov-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vmov-bad-2.s: New test.
+
+2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * config/tc-arm.c (enum operand_parse_code): Add new operand.
+       (parse_operands): Handle new operand.
+       (do_neon_cvt_1): Handle MVE variants.
+       (do_neon_cvttb_1): Likewise.
+       (insns): Accept MVE variants.
+       * testsuite/gas/arm/mve-vcvt-bad-1.d: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-1.l: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-1.s: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-2.d: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-2.l: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-2.s: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-3.d: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-3.l: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-3.s: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-4.d: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-4.l: New test.
+       * testsuite/gas/arm/mve-vcvt-bad-4.s: New test.
+       * testsuite/gas/arm/mve-vcvt-bad.d: New test.
+       * testsuite/gas/arm/mve-vcvt-bad.l: New test.
+       * testsuite/gas/arm/mve-vcvt-bad.s: New test.
+
 2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
 
        * config/tc-arm.c (struct arm_it): Make immisreg field larger to hold
This page took 0.037741 seconds and 4 git commands to generate.