aboutsummaryrefslogtreecommitdiff
path: root/gas
AgeCommit message (Collapse)AuthorFilesLines
2019-05-23gas: add support for eBPFJose E. Marchesi41-9/+1606
This patch adds a port for the Linux kernel eBPF to the GNU assembler. A testsuite and documentation updates are included. gas/ChangeLog: 2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com> * configure.ac: Handle bpf-*-* targets. * configure.tgt (generic_target): Likewise. * configure: Regenerate. * Makefile.am (TARGET_CPU_CFILES): Add tc-bpf.c. (TARGET_CPU_HFILES): Add tc-bpf.h. * Makefile.in: Regenerated. * config/tc-bpf.c: New file. * config/tc-bpf.h: Likewise. * doc/Makefile.am (CPU_DOCS): Add c-bpf.texi. * doc/Makefile.in: Regenerated. * doc/all.texi: set BPF. * doc/as.texi: Add eBPF contents. * doc/c-bpf.texi: New file. * testsuite/gas/bpf/alu.d: New file. * testsuite/gas/bpf/mem-be.d: Likewise. * testsuite/gas/bpf/mem.s: Likewise. * testsuite/gas/bpf/mem.d: Likewise. * testsuite/gas/bpf/lddw-be.d: Likewise. * testsuite/gas/bpf/lddw.s: Likewise. * testsuite/gas/bpf/lddw.d: Likewise. * testsuite/gas/bpf/jump-be.d: Likewise. * testsuite/gas/bpf/jump.s: Likewise. * testsuite/gas/bpf/jump.d: Likewise. * testsuite/gas/bpf/exit-be.d: Likewise. * testsuite/gas/bpf/exit.s: Likewise. * testsuite/gas/bpf/exit.d: Likewise. * testsuite/gas/bpf/call-be.d: Likewise. * testsuite/gas/bpf/call.s: Likewise. * testsuite/gas/bpf/call.d: Likewise. * testsuite/gas/bpf/bpf.exp: Likewise. * testsuite/gas/bpf/atomic-be.d: Likewise. * testsuite/gas/bpf/atomic.s: Likewise. * testsuite/gas/bpf/atomic.d: Likewise. * testsuite/gas/bpf/alu-be.d: Likewise. * testsuite/gas/bpf/alu32-be.d: Likewise. * testsuite/gas/bpf/alu32.s: Likewise. * testsuite/gas/bpf/alu32.d: Likewise. * testsuite/gas/bpf/alu.s: Likewise. * testsuite/gas/all/gas.exp: Introduce a nop_type for eBPF. * testsuite/gas/all/org-1.s: Support nop_type 6. * testsuite/gas/all/org-1.l: Updated to reflect changes in org-1.s.
2019-05-22S12Z: GAS: New option --mdollar-hex.John Darrington6-8/+103
This option (also implied by --traditional) causes '$' to introduce literal hexadecimal constants, rather than the modern convention '0x'. gas/ * config/tc-s12z.c (s12z_strtol): New function. (md_show_usage): Update. (md_parse_option): new case OPTION_DOLLAR_HEX. (s12z_init_after_args): (<global>): Use s12z_strtol instead of strtol. * doc/c-s12z.texi (S12Z Options): Document new option -mdollar-hex. * testsuite/gas/s12z/dollar-hex.d: New file. * testsuite/gas/s12z/dollar-hex.s: New file. * testsuite/gas/s12z/s12z.exp: Add them.
2019-05-21[binutils, ARM] <spec_reg> changes for VMRS and VMSR instructionsSudakshina Das12-17/+193
This patch makes changes to the <spec_reg> operand for VMRS and VMSR instructions as per the Armv8.1-M Mainline. New <spec_reg> options to support are: 0b0010: FPSCR_nzcvqc, access to FPSCR condition and saturation flags. 0b1100: VPR, privileged only access to the VPR register. 0b1101: P0, access to VPR.P0 predicate fields 0b1110: FPCXT_NS, enables saving and restoring of Non-secure floating point context. 0b1111: FPCXT_S, enables saving and restoring of Secure floating point context *** gas/ChangeLog *** 2019-05-21 Sudakshina Das <sudi.das@arm.com> * config/tc-arm.c (parse_operands): Update case OP_RVC to parse p0 and P0. (do_vmrs): Add checks for valid operands with respect to cpu and fpu options. (do_vmsr): Likewise. (reg_names): New reg_names for FPSCR_nzcvqc, VPR, FPCXT_NS and FPCXT_S. * testsuite/gas/arm/armv8_1-m-spec-reg.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg.s: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad1.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad2.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad3.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad1.l: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad2.l: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad3.l: New. * testsuite/gas/arm/vfp1xD.d: Updated to allow new valid values. * testsuite/gas/arm/vfp1xD_t2.d: Likewise. *** opcodes/ChangeLog *** 2019-05-21 Sudakshina Das <sudi.das@arm.com> * arm-dis.c (coprocessor_opcodes): New instructions for VMRS and VMSR with the new operands.
2019-05-21[binutils, Arm] Add support for conditional instructions in Armv8.1-M MainlineSudakshina Das7-1/+162
This patch adds the following instructions which are part of the Armv8.1-M Mainline: CINC CINV CNEG CSINC CSINV CSNEG CSET CSETM CSEL gas/ChangeLog: 2019-05-21 Sudakshina Das <sudi.das@arm.com> * config/tc-arm.c (TOGGLE_BIT): New. (T16_32_TAB): New entries for cinc, cinv, cneg, csinc, csinv, csneg, cset, csetm and csel. (operand_parse_code): New OP_RR_ZR. (parse_operand): Handle case for OP_RR_ZR. (do_t_cond): New. (insns): New instructions for cinc, cinv, cneg, csinc, csinv, csneg, cset, csetm, csel. * testsuite/gas/arm/armv8_1-m-cond-bad.d: New test. * testsuite/gas/arm/armv8_1-m-cond-bad.l: New test. * testsuite/gas/arm/armv8_1-m-cond-bad.s: New test. * testsuite/gas/arm/armv8_1-m-cond.d: New test. * testsuite/gas/arm/armv8_1-m-cond.s: New test. opcodes/ChangeLog: 2019-05-21 Sudakshina Das <sudi.das@arm.com> * arm-dis.c (enum mve_instructions): New enum for csinc, csinv, csneg, csel, cset, csetm, cinv, cinv and cneg. (mve_opcodes): New instructions as above. (is_mve_encoding_conflict): Add cases for csinc, csinv, csneg and csel. (print_insn_mve): Accept new %<bitfield>c and %<bitfield>C.
2019-05-21[binutils, Arm] Add support for shift instructions in MVESudakshina Das7-0/+142
This patch adds the following instructions which are part of Armv8.1-M MVE: ASRL (imm) ASRL (reg) LSLL (imm) LSLL (reg) LSRL SQRSHRL SRQSHR SQSHLL SQSHL SRSHRL SRSHR UQRSHLL UQRSHL UQSHLL UQSHL URSHLL URSHL *** gas/ChangeLog *** 2019-05-21 Sudakshina Das <sudi.das@arm.com> * config/tc-arm.c (operand_parse_code): New entries for OP_RRnpcsp_I32 (register or integer operands). (do_mve_scalar_shift): New. (insns): New instructions for asrl, lsll, lsrl, sqrshrl, sqrshr, sqshl sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll, uqshl, urshrl and urshr. * testsuite/gas/arm/mve-shift.d: New. * testsuite/gas/arm/mve-shift.s: New. * testsuite/gas/arm/mve-shift-bad.d: New. * testsuite/gas/arm/mve-shift-bad.s: New. * testsuite/gas/arm/mve-shift-bad.l: New. *** opcodes/ChangeLog *** 2019-05-21 Sudakshina Das <sudi.das@arm.com> * arm-dis.c (emun mve_instructions): Updated for new instructions. (mve_opcodes): New instructions for asrl, lsll, lsrl, sqrshrl, sqrshr, sqshl, sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll, uqshl, urshrl and urshr. (is_mve_okay_in_it): Add new instructions to TRUE list. (is_mve_unpredictable): Add cases for UNPRED_R13 and UNPRED_R15. (print_insn_mve): Updated to accept new %j, %<bitfield>m and %<bitfield>n patterns.
2019-05-21MIPS/gas: Reject $0 as source register for DAUI instructionFaraz Shahbazker4-1/+14
The MIPS64R6 TRM requires that the source register for DAUI not be r0. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS64 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00087, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 67-68. gas/ * testsuite/gas/mips/r6-branch-constraints.s: Rename to ... * testsuite/gas/mips/r6-reg-constraints.s: this and add test case for DAUI. * testsuite/gas/mips/r6-branch-constraints.l: Rename to ... * testsuite/gas/mips/r6-reg-constraints.l: this and add test for DAUI. * testsuite/gas/mips/mips.exp: Rename test from r6-branch-constraints to r6-reg-constraints. opcodes/ * mips-opc.c (mips_builtin_opcodes): Change source register constraint for DAUI.
2019-05-21[GAS, Arm] PR24559: Fix pseudo load-operations for Armv8-M BaselineAndre Vieira6-0/+53
gas/ChangeLog: 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> PR 24559 * config/tc-arm.c (move_or_literal_pool): Set size_req to 0 for MOVW replacement. * testsuite/gas/arm/load-pseudo.s: New test input. * testsuite/gas/arm/m0-load-pseudo.d: New test. * testsuite/gas/arm/m23-load-pseudo.d: New test. * testsuite/gas/arm/m33-load-pseudo.d: New test.
2019-05-21[binutils][Arm] Fix Branch Future relocation handling and testismsAndre Vieira9-15/+51
bfd/ChangeLog: 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> PR/target 24460 * elf32-arm.c (get_value_helper): Remove. (elf32_arm_final_link_relocate): Fix branch future relocations. gas/ChangeLog: 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> * testsuite/gas/arm/armv8_1-m-bf.d: Allow different branch target naming conventions. * testsuite/gas/arm/armv8_1-m-bfl.d: Likewise. * testsuite/gas/arm/armv8_1-m-bfcsel.d: Likewise. * testsuite/gas/arm/armv8_1-m-loloop.d: Likewise. * testsuite/gas/arm/armv8_1-m-bf-rel.d: Skip for vxworks. * testsuite/gas/arm/armv8_1-m-bf-rela.d: New test. * testsuite/gas/arm/armv8_1-m-bfl-rel.d: Skip for vxworks. * testsuite/gas/arm/armv8_1-m-bfl-rela.d: New test. ld/ChangeLog: 2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com> * testsuite/ld-arm/arm-elf.exp: Add tests * testsuite/ld-arm/bfs-0.s: New test. * testsuite/ld-arm/bfs-1.s: New test. * testsuite/ld-arm/branch-futures.d: New test.
2019-05-21GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value.John Darrington9-13/+39
In an upcoming commit, I need to be able to set the prefix used to introduce hexadecimal literal constants using a command line flag. This is not currently possible, because the switch which determines this (LITERAL_PREFIXDOLLAR_HEX) is a macro set at build time. This change substitutes it for a variable to be set at start up. gas/ChangeLog: * expr.c (literal_prefix_dollar_hex): New variable. (operand)[case '$']: Use the new variable instead of the old macro. Also, move this instance of "case '$'" next to the other one, and enable it only in the complementary proprocessor case. * expr.h (literal_prefix_dollar_hex): Declare it. * config/tc-epiphany.c (md_begin): Assign literal_prefix_dollar_hex. * config/tc-ip2k.c: ditto * config/tc-mt.c: ditto * config/tc-epiphany.h (LITERAL_PREFIXDOLLAR_HEX): Remove macro definition. * config/tc-ip2k.h: ditto * config/tc-mt.h: ditto
2019-05-21Revert "GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value."John Darrington8-21/+9
This reverts commit cffc205c9eaacfa312323807cd60b9d3d1c26894.
2019-05-20[MIPS] PR gas/14798: Limit IRIX5 specific default typing to IRIX targetsFaraz Shahbazker6-0/+35
On IRIX 5, every global symbol that is not explicitly labelled as being a function is assumed to be an object. There is no reason why IRIX behaviour should extend to all MIPS targets, so limit this to only IRIX targets. gas/ PR 14798 * config/tc-mips.c (s_mips_globl): Only treat symbols that are not explicitly labelled as BSF_OBJECTs for IRIX targets. * testsuite/gas/mips/pr14798.s: New test source. * testsuite/gas/mips/pr14798-irix.d: New test. * testsuite/gas/mips/pr14798.d: Likewise. * testsuite/gas/mips/mips.exp: Run the new tests. binutils/ PR 14798 * testsuite/binutils-all/readelf.ss-mips: Update reference output. * testsuite/binutils-all/readelf.ss-tmips: Likewise. ld/ PR 14798 * testsuite/ld-mips-elf/reloc-6a.s: Specify .text section for global code symbols. * testsuite/ld-mips-elf/reloc-6b.s: Likewise.
2019-05-20GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value.John Darrington8-9/+21
In an upcoming commit, I need to be able to set the prefix used to introduce hexadecimal literal constants using a command line flag. This is not currently possible, because the switch which determines this (LITERAL_PREFIXDOLLAR_HEX) is a macro set at build time. This change substitutes it for a variable to be set at start up. gas/ChangeLog: * expr.c (literal_prefix_dollar_hex): New variable. (operand)[case '$']: Use the new variable instead of the old macro. * expr.h (literal_prefix_dollar_hex): Declare it. * config/tc-epiphany.c (md_begin): Assign literal_prefix_dollar_hex. * config/tc-ip2k.c: ditto * config/tc-mt.c: ditto * config/tc-epiphany.h (LITERAL_PREFIXDOLLAR_HEX): Remove macro definition. * config/tc-ip2k.h: ditto * config/tc-mt.h: ditto
2019-05-18S12Z (doc): Minor improvements to text and formatting.John Darrington1-53/+47
gas/ * doc/c-s12z.texi: Miscellaneous adjustments.
2019-05-17GAS (documentation): Remove trademark acknowledgements.John Darrington3-2/+7
GNU policy is not to include trademark acknowlegements in documentation [1] [1] https://www.gnu.org/prep/standards/html_node/Trademarks.html Committing as obvious. gas/ * doc/c-arm.texi (ARM Options): Remove "(r)" and "(tm)" * doc/c-bfin.texi (Blackfin Syntax): Remove "(r)"
2019-05-16[PATCH, GAS, Arm] Refactor check_simd_pred_availabilityAndre Vieira2-50/+96
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (check_simd_pred_availability): Refactor. (do_neon_dyadic_i_su): Refactor use of check_simd_pred_availability. (do_neon_dyadic_i64_su): Likewise. (do_neon_shl): Likewise. (do_neon_qshl): Likewise. (do_neon_rshl): Likewise. (do_neon_logic): Likewise. (do_neon_dyadic_if_su): Likewise. (do_neon_addsub_if_i): Likewise. (do_neon_mac_maybe_scalar): Likewise. (do_neon_fmac): Likewise. (do_neon_mul): Likewise. (do_neon_qdmulh): Likewise. (do_neon_qrdmlah): Likewise. (do_neon_abs_neg): Likewise. (do_neon_sli): Likewise. (do_neon_sri): Likewise. (do_neon_qshlu_imm): Likewise. (do_neon_cvt_1): Likewise. (do_neon_cvttb_1): Likewise. (do_neon_mvn): Likewise. (do_neon_rev): Likewise. (do_neon_dup): Likewise. (do_neon_mov): Likewise. (do_neon_rshift_round_imm): Likewise. (do_neon_sat_abs_neg): Likewise. (do_neon_cls): Likewise. (do_neon_clz): Likewise. (do_vmaxnm): Likewise. (do_vrint_1): Likewise. (do_vcmla): Likewise. (do_vcadd): Likewise.
2019-05-16[PATCH, binutils, Arm] Add Armv8.1-M Mainline and MVE enablement to NEWSAndre Vieira2-0/+7
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * NEWS: Mention Armv8.1-M Mainline and MVE. binutils/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * NEWS: Mention Armv8.1-M Mainline and MVE.
2019-05-16[PATCH 57/57][Arm][GAS] MVE TestsAndre Vieira161-0/+399210
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * testsuite/gas/arm/mve-tailpredloop.d: New test. * testsuite/gas/arm/mve-tailpredloop.s: New test. * testsuite/gas/arm/mve-vabav.d: New test. * testsuite/gas/arm/mve-vabav.s: New test. * testsuite/gas/arm/mve-vabd.d: New test. * testsuite/gas/arm/mve-vabd.s: New test. * testsuite/gas/arm/mve-vabsneg.d: New test. * testsuite/gas/arm/mve-vabsneg.s: New test. * testsuite/gas/arm/mve-vadc.d: New test. * testsuite/gas/arm/mve-vadc.s: New test. * testsuite/gas/arm/mve-vaddlv.d: New test. * testsuite/gas/arm/mve-vaddlv.s: New test. * testsuite/gas/arm/mve-vaddsub.d: New test. * testsuite/gas/arm/mve-vaddsub.s: New test. * testsuite/gas/arm/mve-vaddv.d: New test. * testsuite/gas/arm/mve-vaddv.s: New test. * testsuite/gas/arm/mve-vand.d: New test. * testsuite/gas/arm/mve-vand.s: New test. * testsuite/gas/arm/mve-vbic.d: New test. * testsuite/gas/arm/mve-vbic.s: New test. * testsuite/gas/arm/mve-vbrsr.d: New test. * testsuite/gas/arm/mve-vbrsr.s: New test. * testsuite/gas/arm/mve-vcadd.d: New test. * testsuite/gas/arm/mve-vcadd.s: New test. * testsuite/gas/arm/mve-vcls.d: New test. * testsuite/gas/arm/mve-vcls.s: New test. * testsuite/gas/arm/mve-vclz.d: New test. * testsuite/gas/arm/mve-vclz.s: New test. * testsuite/gas/arm/mve-vcmla.d: New test. * testsuite/gas/arm/mve-vcmla.s: New test. * testsuite/gas/arm/mve-vcmp.d: New test. * testsuite/gas/arm/mve-vcmp.s: New test. * testsuite/gas/arm/mve-vcmul.d: New test. * testsuite/gas/arm/mve-vcmul.s: New test. * testsuite/gas/arm/mve-vcvt-1.d: New test. * testsuite/gas/arm/mve-vcvt-1.s: New test. * testsuite/gas/arm/mve-vcvt-2.d: New test. * testsuite/gas/arm/mve-vcvt-2.s: New test. * testsuite/gas/arm/mve-vcvt-3.d: New test. * testsuite/gas/arm/mve-vcvt-3.s: New test. * testsuite/gas/arm/mve-vcvt-4.d: New test. * testsuite/gas/arm/mve-vcvt-4.s: New test. * testsuite/gas/arm/mve-vddup.d: New test. * testsuite/gas/arm/mve-vddup.s: New test. * testsuite/gas/arm/mve-vdup.d: New test. * testsuite/gas/arm/mve-vdup.s: New test. * testsuite/gas/arm/mve-veor.d: New test. * testsuite/gas/arm/mve-veor.s: New test. * testsuite/gas/arm/mve-vfma-vfms.d: New test. * testsuite/gas/arm/mve-vfma-vfms.s: New test. * testsuite/gas/arm/mve-vfmas.d: New test. * testsuite/gas/arm/mve-vfmas.s: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.d: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.s: New test. * testsuite/gas/arm/mve-vhcadd.d: New test. * testsuite/gas/arm/mve-vhcadd.s: New test. * testsuite/gas/arm/mve-vmax-vmin.d: New test. * testsuite/gas/arm/mve-vmax-vmin.s: New test. * testsuite/gas/arm/mve-vmaxa-vmina.d: New test. * testsuite/gas/arm/mve-vmaxa-vmina.s: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm.d: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm.s: New test. * testsuite/gas/arm/mve-vmaxnma-vminnma.s: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv.d: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv.s: New test. * testsuite/gas/arm/mve-vmaxv-vminv.d: New test. * testsuite/gas/arm/mve-vmaxv-vminv.s: New test. * testsuite/gas/arm/mve-vmla.d: New test. * testsuite/gas/arm/mve-vmla.s: New test. * testsuite/gas/arm/mve-vmladav.d: New test. * testsuite/gas/arm/mve-vmladav.s: New test. * testsuite/gas/arm/mve-vmlaldav.d: New test. * testsuite/gas/arm/mve-vmlaldav.s: New test. * testsuite/gas/arm/mve-vmlalv.d: New test. * testsuite/gas/arm/mve-vmlalv.s: New test. * testsuite/gas/arm/mve-vmlas.d: New test. * testsuite/gas/arm/mve-vmlas.s: New test. * testsuite/gas/arm/mve-vmlav.d: New test. * testsuite/gas/arm/mve-vmlav.s: New test. * testsuite/gas/arm/mve-vmlsdav.d: New test. * testsuite/gas/arm/mve-vmlsdav.s: New test. * testsuite/gas/arm/mve-vmlsldav.d: New test. * testsuite/gas/arm/mve-vmlsldav.s: New test. * testsuite/gas/arm/mve-vmov-1.d: New test. * testsuite/gas/arm/mve-vmov-1.s: New test. * testsuite/gas/arm/mve-vmov-2.d: New test. * testsuite/gas/arm/mve-vmov-2.s: New test. * testsuite/gas/arm/mve-vmul.d: New test. * testsuite/gas/arm/mve-vmul.s: New test. * testsuite/gas/arm/mve-vmulh.d: New test. * testsuite/gas/arm/mve-vmulh.s: New test. * testsuite/gas/arm/mve-vmullbt.d: New test. * testsuite/gas/arm/mve-vmullbt.s: New test. * testsuite/gas/arm/mve-vmvn.d: New test. * testsuite/gas/arm/mve-vmvn.s: New test. * testsuite/gas/arm/mve-vorn.d: New test. * testsuite/gas/arm/mve-vorn.s: New test. * testsuite/gas/arm/mve-vorr.d: New test. * testsuite/gas/arm/mve-vorr.s: New test. * testsuite/gas/arm/mve-vpnot.d: New test. * testsuite/gas/arm/mve-vpnot.s: New test. * testsuite/gas/arm/mve-vpsel.d: New test. * testsuite/gas/arm/mve-vpsel.s: New test. * testsuite/gas/arm/mve-vpt.d: New test. * testsuite/gas/arm/mve-vpt.s: New test. * testsuite/gas/arm/mve-vqabsneg.s: New test. * testsuite/gas/arm/mve-vqaddsub.d: New test. * testsuite/gas/arm/mve-vqaddsub.s: New test. * testsuite/gas/arm/mve-vqdmladh.d: New test. * testsuite/gas/arm/mve-vqdmladh.s: New test. * testsuite/gas/arm/mve-vqdmlah.d: New test. * testsuite/gas/arm/mve-vqdmlah.s: New test. * testsuite/gas/arm/mve-vqdmlash.d: New test. * testsuite/gas/arm/mve-vqdmlash.s: New test. * testsuite/gas/arm/mve-vqdmlsdh.d: New test. * testsuite/gas/arm/mve-vqdmlsdh.s: New test. * testsuite/gas/arm/mve-vqdmulh.d: New test. * testsuite/gas/arm/mve-vqdmulh.s: New test. * testsuite/gas/arm/mve-vqdmull.d: New test. * testsuite/gas/arm/mve-vqdmull.s: New test. * testsuite/gas/arm/mve-vqmovn.d: New test. * testsuite/gas/arm/mve-vqmovn.s: New test. * testsuite/gas/arm/mve-vqrshl.d: New test. * testsuite/gas/arm/mve-vqrshl.s: New test. * testsuite/gas/arm/mve-vqrshrn.d: New test. * testsuite/gas/arm/mve-vqrshrn.s: New test. * testsuite/gas/arm/mve-vqshl.d: New test. * testsuite/gas/arm/mve-vqshl.s: New test. * testsuite/gas/arm/mve-vrev.d: New test. * testsuite/gas/arm/mve-vrev.s: New test. * testsuite/gas/arm/mve-vrint.d: New test. * testsuite/gas/arm/mve-vrint.s: New test. * testsuite/gas/arm/mve-vrmlaldavh.d: New test. * testsuite/gas/arm/mve-vrmlaldavh.s: New test. * testsuite/gas/arm/mve-vrshl.d: New test. * testsuite/gas/arm/mve-vrshl.s: New test. * testsuite/gas/arm/mve-vsbc.d: New test. * testsuite/gas/arm/mve-vsbc.s: New test. * testsuite/gas/arm/mve-vshl.d: New test. * testsuite/gas/arm/mve-vshl.s: New test. * testsuite/gas/arm/mve-vshlc.d: New test. * testsuite/gas/arm/mve-vshlc.s: New test. * testsuite/gas/arm/mve-vshll.d: New test. * testsuite/gas/arm/mve-vshll.s: New test. * testsuite/gas/arm/mve-vshr.d: New test. * testsuite/gas/arm/mve-vshr.s: New test. * testsuite/gas/arm/mve-vshrn.d: New test. * testsuite/gas/arm/mve-vshrn.s: New test. * testsuite/gas/arm/mve-vsli.d: New test. * testsuite/gas/arm/mve-vsli.s: New test. * testsuite/gas/arm/mve-vsri.d: New test. * testsuite/gas/arm/mve-vsri.s: New test. * testsuite/gas/arm/mve-vstld.d: New test. * testsuite/gas/arm/mve-vstld.s: New test. * testsuite/gas/arm/mve-vstrldr-1.d: New test. * testsuite/gas/arm/mve-vstrldr-1.s: New test. * testsuite/gas/arm/mve-vstrldr-2.d: New test. * testsuite/gas/arm/mve-vstrldr-2.s: New test. * testsuite/gas/arm/mve-vstrldr-3.d: New test. * testsuite/gas/arm/mve-vstrldr-3.s: New test.
2019-05-16[PATCH 44/57][Arm][OBJDUMP] Add support for MVE instructions: vcvt and vrintAndre Vieira1-1/+1
opcodes/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> Michael Collison <michael.collison@arm.com> * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (enum mve_undefined): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_unpredictable): Likewise. (print_mve_rounding_mode): Likewise. (print_mve_vcvt_size): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise.
2019-05-16[PATCH 36/57][Arm][GAS] Add support for MVE instructions: wlstp, dlstp, letp ↵Andre Vieira5-34/+152
and lctp gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (T16_32_TAB): Add new instructions. (do_t_loloop): Changed to handle tail predication variants. (md_apply_fix): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-tailpredloop-bad.d: New test. * testsuite/gas/arm/mve-tailpredloop-bad.l: New test. * testsuite/gas/arm/mve-tailpredloop-bad.s: New test. * testsuite/gas/arm/mve-tailpredloop.d: New test.
2019-05-16[PATCH 35/57][Arm][GAS] Add support for MVE instructions: vshlc and vshllAndre Vieira8-0/+195
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_mve_vshll): New encoding function. (do_mve_vshlc): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vshlc-bad.d: New test. * testsuite/gas/arm/mve-vshlc-bad.l: New test. * testsuite/gas/arm/mve-vshlc-bad.s: New test. * testsuite/gas/arm/mve-vshll-bad.d: New test. * testsuite/gas/arm/mve-vshll-bad.l: New test. * testsuite/gas/arm/mve-vshll-bad.s: New test.
2019-05-16[PATCH 34/57][Arm][GAS] Add support for MVE instructions: vshl and vqshlAndre Vieira8-43/+364
gas/ChangeLog: 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_shl_imm): Accept MVE variants. (do_neon_shl): Likewise. (do_neon_qshl_imm): Likewise. (do_neon_qshl): Likewise. (do_neon_qshlu_imm): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vqshl-bad.d: New test. * testsuite/gas/arm/mve-vqshl-bad.l: New test. * testsuite/gas/arm/mve-vqshl-bad.s: New test. * testsuite/gas/arm/mve-vshl-bad.d: New test. * testsuite/gas/arm/mve-vshl-bad.l: New test. * testsuite/gas/arm/mve-vshl-bad.s: New test.
2019-05-16[PATCH 33/57][Arm][GAS] Add support for MVE instructions: vshr, vrshr, vsli, ↵Andre Vieira14-16/+343
vsri, vrev16, vrev32 and vrev64 gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_neon_sli): Accept MVE variants. (do_neon_sri): Likewise. (do_neon_rev): Likewise. (do_neon_rshift_round_imm): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vrev-bad.d: New test. * testsuite/gas/arm/mve-vrev-bad.l: New test. * testsuite/gas/arm/mve-vrev-bad.s: New test. * testsuite/gas/arm/mve-vshr-bad.d: New test. * testsuite/gas/arm/mve-vshr-bad.l: New test. * testsuite/gas/arm/mve-vshr-bad.s: New test. * testsuite/gas/arm/mve-vsli-bad.d: New test. * testsuite/gas/arm/mve-vsli-bad.l: New test. * testsuite/gas/arm/mve-vsli-bad.s: New test. * testsuite/gas/arm/mve-vsri-bad.d: New test. * testsuite/gas/arm/mve-vsri-bad.l: New test. * testsuite/gas/arm/mve-vsri-bad.s: New test.
2019-05-16[PATCH 32/57][Arm][GAS] Add support for MVE instructions: vrintn, vrintx, ↵Andre Vieira5-10/+127
vrinta, vrintz, vrintm and vrintp gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_vrint_1): Accept MVE variants. (insns): Change entries to accept MVE variants. * testsuite/gas/arm/mve-vrint-bad.d: New test. * testsuite/gas/arm/mve-vrint-bad.l: New test. * testsuite/gas/arm/mve-vrint-bad.s: New test.
2019-05-16[PATCH 31/57][Arm][GAS] Add support for MVE instructions: vshrn[tb], ↵Andre Vieira8-0/+358
vrshrn[tb], vqshrn[tb], vqshrun[tb], vqrshrn[tb] and vqrshrun[tb] gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (M_MNEM_vshrnt, M_MNEM_vshrnb, M_MNEM_vrshrnt, M_MNEM_vqshrnt, M_MNEM_vqshrnb, M_MNEM_vqshrunt, M_MNEM_vqshrunb, M_MNEM_vrshrnb, M_MNEM_vqrshrnt, M_MNEM_vqrshrnb, M_MNEM_vqrshrunt, M_MNEM_vqrshrunb): New instruction encodings. (do_mve_vshrn): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vqrshrn-bad.d: New test. * testsuite/gas/arm/mve-vqrshrn-bad.l: New test. * testsuite/gas/arm/mve-vqrshrn-bad.s: New test. * testsuite/gas/arm/mve-vshrn-bad.d: New test. * testsuite/gas/arm/mve-vshrn-bad.l: New test. * testsuite/gas/arm/mve-vshrn-bad.s: New test.
2019-05-16[PATCH 30/57][Arm][GAS] Add support for MVE instructions: vqmovnt, vqmovnb, ↵Andre Vieira11-9/+366
vqmovunt, vqmovunb, vqrshl and vrshl gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (M_MNEM_vqmovnt, M_MNEM_vqmovnb, M_MNEM_vqmovunt, M_MNEM_vqmovunb): New instruction encodings. (do_mve_vqmovn): New encoding function. (do_neon_rshl): Change to accepte MVE variants. (insns): Change entries and add new for MVE mnemonics. * testsuite/gas/arm/mve-vqmovn-bad.d: New test. * testsuite/gas/arm/mve-vqmovn-bad.l: New test. * testsuite/gas/arm/mve-vqmovn-bad.s: New test. * testsuite/gas/arm/mve-vqrshl-bad.d: New test. * testsuite/gas/arm/mve-vqrshl-bad.l: New test. * testsuite/gas/arm/mve-vqrshl-bad.s: New test. * testsuite/gas/arm/mve-vrshl-bad.d: New test. * testsuite/gas/arm/mve-vrshl-bad.l: New test. * testsuite/gas/arm/mve-vrshl-bad.s: New test.
2019-05-16[PATCH 29/57][Arm][GAS] Add support for MVE instructions: vqdmullt and vqdmullbAndre Vieira5-0/+167
gas/ChangeLog: 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_mve_vqdmull): New encoding function. (insns): Add entry for MVE mnemonics. * testsuite/gas/arm/mve-vqdmull-bad.d: New test. * testsuite/gas/arm/mve-vqdmull-bad.l: New test. * testsuite/gas/arm/mve-vqdmull-bad.s: New test.
2019-05-16[PATCH 28/57][Arm][GAS] Add support for MVE instructions: vqdmlah, vqrdmlah, ↵Andre Vieira5-29/+229
vqdmlash, vqrdmlash, vqdmulh and vqrdmulh gas/ChangeLog: 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. (mve_encode_qqr): Handle new instructions. (do_neon_qdmulh): Add support for MVE variants. (do_neon_qrdmlah): Likewise. (do_mve_vqdmlah): New encoding function. (insns): Change entries and add new entries for MVE mnemonics. * testsuite/gas/arm/mve-vqdmulh-bad.d: New test. * testsuite/gas/arm/mve-vqdmulh-bad.l: New test. * testsuite/gas/arm/mve-vqdmulh-bad.s: New test.
2019-05-16[PATCH 27/57][Arm][GAS] Add support for MVE instructions: vqdmladh, ↵Andre Vieira8-0/+296
vqrdmladh, vqdmlsdh and vqrdmlsdh gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_mve_vqdmladh): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vqdmladh-bad.d: New test. * testsuite/gas/arm/mve-vqdmladh-bad.l: New test. * testsuite/gas/arm/mve-vqdmladh-bad.s: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.d: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.l: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.s: New test.
2019-05-16[PATCH 26/57][Arm][GAS] Add support for MVE instructions: vpnot and vpselAndre Vieira8-0/+113
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_mve_vpsel): New encoding function. (do_mve_vpnot): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vpnot-bad.d: New test. * testsuite/gas/arm/mve-vpnot-bad.l: New test. * testsuite/gas/arm/mve-vpnot-bad.s: New test. * testsuite/gas/arm/mve-vpsel-bad.d: New test. * testsuite/gas/arm/mve-vpsel-bad.l: New test. * testsuite/gas/arm/mve-vpsel-bad.s: New test.
2019-05-16[PATCH 25/57][Arm][GAS] Add support for MVE instruction: vmvn, vqabs and vqnegAndre Vieira8-5/+145
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_neon_mvn): Change to accept MVE variants. (do_neon_sat_abs_neg): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vmvn-bad.d: New test. * testsuite/gas/arm/mve-vmvn-bad.l: New test. * testsuite/gas/arm/mve-vmvn-bad.s: New test. * testsuite/gas/arm/mve-vqabsneg-bad.d: New test. * testsuite/gas/arm/mve-vqabsneg-bad.l: New test. * testsuite/gas/arm/mve-vqabsneg-bad.s: New test.
2019-05-16[PATCH 24/57][Arm][GAS] Add support for MVE instructions: vmlas, vmulh and ↵Andre Vieira8-0/+168
vrmulh gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_mve_vmlas): New encoding function. (do_mve_vmulh): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vmlas-bad.d: New test. * testsuite/gas/arm/mve-vmlas-bad.l: New test. * testsuite/gas/arm/mve-vmlas-bad.s: New test. * testsuite/gas/arm/mve-vmulh-bad.d: New test. * testsuite/gas/arm/mve-vmulh-bad.l: New test. * testsuite/gas/arm/mve-vmulh-bad.s: New test.
2019-05-16[PATCH 23/57][Arm][GAS] Add support for MVE instructions: vmla, vmul, vqadd ↵Andre Vieira14-13/+431
and vqsub gas/ChangeLog: 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): Handle new instructions. (do_neon_dyadic_i64_su): Accept MVE variants. (neon_dyadic_misc): Likewise. (do_neon_mac_maybe_scalar): Likewise. (do_neon_mul): Likewise. (insns): Change to accept MVE variants. * testsuite/gas/arm/mve-vmla-bad.d: New test. * testsuite/gas/arm/mve-vmla-bad.l: New test. * testsuite/gas/arm/mve-vmla-bad.s: New test. * testsuite/gas/arm/mve-vmul-bad-1.d: New test. * testsuite/gas/arm/mve-vmul-bad-1.l: New test. * testsuite/gas/arm/mve-vmul-bad-1.s: New test. * testsuite/gas/arm/mve-vmul-bad-2.d: New test. * testsuite/gas/arm/mve-vmul-bad-2.l: New test. * testsuite/gas/arm/mve-vmul-bad-2.s: New test. * testsuite/gas/arm/mve-vqaddsub-bad.d: New test. * testsuite/gas/arm/mve-vqaddsub-bad.l: New test. * testsuite/gas/arm/mve-vqaddsub-bad.s: New test.
2019-05-16[PATCH 22/57][Arm][GAS] Add support for MVE instructions: vmlaldav, vmlalv, ↵Andre Vieira14-0/+805
vmlsldav, vrmlaldavh, vrmlalvh and vrmlsldavh gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (M_MNEM_vmlaldav, M_MNEM_vmlaldava, M_MNEM_vmlaldavx, M_MNEM_vmlaldavax, M_MNEM_vmlsldav, M_MNEM_vmlsldava, M_MNEM_vmlsldavx, M_MNEM_vmlsldavax, M_MNEM_vrmlaldavhx, M_MNEM_vrmlaldavhax, M_MNEM_vrmlsldavh, M_MNEM_vrmlsldavha, M_MNEM_vrmlsldavhx, M_MNEM_vrmlsldavhax): New instruction encodings. (NEON_SHAPE_DEF): New shape (mve_encode_rrqq): New encoding helper function. (do_mve_vmlaldav): New encoding function. (do_mve_vrmlaldavh): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vmlaldav-bad.d: New test. * testsuite/gas/arm/mve-vmlaldav-bad.l: New test. * testsuite/gas/arm/mve-vmlaldav-bad.s: New test. * testsuite/gas/arm/mve-vmlalv-bad.d: New test. * testsuite/gas/arm/mve-vmlalv-bad.l: New test. * testsuite/gas/arm/mve-vmlalv-bad.s: New test. * testsuite/gas/arm/mve-vmlsldav-bad.d: New test. * testsuite/gas/arm/mve-vmlsldav-bad.l: New test. * testsuite/gas/arm/mve-vmlsldav-bad.s: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.d: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.l: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.s: New test.
2019-05-16[PATCH 21/57][Arm][GAS] Add support for MVE instructions: vmaxv, vmaxav, ↵Andre Vieira5-0/+162
vminv and vminav gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (M_MNEM_vmaxv, M_MNEM_vmaxav, M_MNEM_vminv, M_MNEM_vminav): New instruction encodings. (do_mve_vmaxv): New encoding function. (insns): Add entries for new MVE mnemonics. * testsuite/gas/arm/mve-vmaxv-vminv-bad.d: New test. * testsuite/gas/arm/mve-vmaxv-vminv-bad.l: New test. * testsuite/gas/arm/mve-vmaxv-vminv-bad.s: New test.
2019-05-16[PATCH 20/57][Arm][GAS] Add support for MVE instructions: vmaxnmv, vmaxnmav, ↵Andre Vieira5-0/+151
vminnmv and vminnmav gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (do_mve_vmaxnmv): New encoding function. (insns): Add entries for new mnemonics. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.d: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.l: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.s: New test.
2019-05-16[PATCH 19/57][Arm][GAS] Add support for MVE instructions: vmax[nm][a] and ↵Andre Vieira14-6/+332
vmin[nm][a] gas/ChangeLog: 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[PATCH 18/57][Arm][GAS] Add support for MVE instructions: vhcadd, vhadd, ↵Andre Vieira8-95/+358
vhsub and vrhadd gas/ChangeLog: 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[PATCH 17/57][Arm][GAS] Add support for MVE instructions: vfma and vfmsAndre Vieira5-5/+133
gas/ChangeLog: 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[PATCH 16/57][Arm][GAS] Add support for MVE instructions: vdup, vddup, ↵Andre Vieira11-1/+299
vdwdup, vidup and viwdup gas/ChangeLog: 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[PATCH 15/57][Arm][GAS] Add support for MVE instructions: vcls, vclz and vfmasAndre Vieira11-4/+191
gas/ChangeLog: 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[PATCH 14/57][Arm][GAS] Add support for MVE instructions: vcadd, vcmla and vcmulAndre Vieira20-15/+350
gas/ChangeLog: 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[PATCH 13/57][Arm][GAS] Add support for MVE instructions: vand, vbic, vorr, ↵Andre Vieira17-94/+464
vorn and veor gas/ChangeLog: 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[PATCH 12/57][Arm][GAS] Add support for MVE instructions: vaddlv and vaddvAndre Vieira8-0/+245
gas/ChangeLog: 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[PATCH 11/57][Arm][GAS] Add support for MVE instructions: vadc, vsbc and vbrsrAndre Vieira11-0/+241
gas/ChangeLog: 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[PATCH 10/57][Arm][GAS] Add support for MVE instructions: vcmp and vptAndre Vieira14-26/+585
gas/ChangeLog: 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[PATCH 9/57][Arm][GAS] Add support for MVE instructions: vmovAndre Vieira8-84/+520
gas/ChangeLog: 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[PATCH 8/57][Arm][GAS] Add support for MVE instructions: vcvtAndre Vieira17-19/+831
gas/ChangeLog: 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[PATCH 7/57][Arm][GAS] Add support for MVE instructions: vstr/vldrAndre Vieira20-7/+1536
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (struct arm_it): Make immisreg field larger to hold type of register. (enum shift_kind): Add SHIFT_UXTW shift kind. (enum parse_shift_mode): Add SHIFT_UXTW_IMMEDIATE shift mode. (parse_shift): Handle new shift type. (parse_address_main): Accept new addressing modes. (M_MNEM_vstrb, M_MNEM_vstrh, M_MNEM_vstrw, M_MNEM_vstrd, M_MNEM_vldrb, M_MNEM_vldrh, M_MNEM_vldrw, M_MNEM_vldrd): New instruction encodings. (do_mve_vstr_vldr_QI): New encoding functions. (do_mve_vstr_vldr_RQ): Likewise. (do_mve_vstr_vldr_RI): Likewise. (do_mve_vstr_vldr): Likewise. * testsuite/gas/arm/mve-vldr-bad-1.d: New test. * testsuite/gas/arm/mve-vldr-bad-1.l: New test. * testsuite/gas/arm/mve-vldr-bad-1.s: New test. * testsuite/gas/arm/mve-vldr-bad-2.d: New test. * testsuite/gas/arm/mve-vldr-bad-2.l: New test. * testsuite/gas/arm/mve-vldr-bad-2.s: New test. * testsuite/gas/arm/mve-vldr-bad-3.d: New test. * testsuite/gas/arm/mve-vldr-bad-3.l: New test. * testsuite/gas/arm/mve-vldr-bad-3.s: New test. * testsuite/gas/arm/mve-vstr-bad-1.d: New test. * testsuite/gas/arm/mve-vstr-bad-1.l: New test. * testsuite/gas/arm/mve-vstr-bad-1.s: New test. * testsuite/gas/arm/mve-vstr-bad-2.d: New test. * testsuite/gas/arm/mve-vstr-bad-2.l: New test. * testsuite/gas/arm/mve-vstr-bad-2.s: New test. * testsuite/gas/arm/mve-vstr-bad-3.d: New test. * testsuite/gas/arm/mve-vstr-bad-3.l: New test. * testsuite/gas/arm/mve-vstr-bad-3.s: New test.
2019-05-16[PATCH 6/57][Arm][GAS] Add support for MVE instructions: vst/vld{2,4}Andre Vieira5-9/+611
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (enum it_instruction_type): Add MVE_UNPREDICABLE_INSN. (BAD_EL_TYPE): New error message. (parse_neon_el_struct_list): Adapt to be able to accept MVE variant. (parse_address_main): Likewise. (group_reloc_type): Add GROUP_MVE. (enum operand_parse_code): Add new operands. (parse_operands): Handle new operands. (M_MNEM_vst20, M_MNEM_vst21, M_MNEM_vst40, M_MNEM_vst41, M_MNEM_vst42, M_MNEM_vst43, M_MNEM_vld20, M_MNEM_vld21, M_MNEM_vld40, M_MNEM_vld41, M_MNEM_vld42, M_MNEM_vld43): New encodings. (do_mve_vst_vld): New encoding function. (do_neon_ld_st_interleave): Use BAD_EL_TYPE. (it_fsm_pre_encode): Handle new it_instruction_type (handle_pred_state): Likewise. * testsuite/gas/arm/mve-vstld-bad.d: New test. * testsuite/gas/arm/mve-vstld-bad.l: New test. * testsuite/gas/arm/mve-vstld-bad.s: New test.
2019-05-16[PATCH 5/57][Arm][GAS] Add support for MVE instructions: vmull{b,t}Andre Vieira5-2/+192
gas/ChangeLog: 2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/tc-arm.c (BAD_MVE_AUTO): New error message. (BAD_MVE_SRCDEST): Likewise. (mark_feature_used): Diagnose MVE only instructions when in auto-detection mode or -march=all. (enum operand_parse_code): Define new operand. (parse_operands): Handle new operand. (M_MNEM_vmullt, M_MNEM_vmullb): New encodings. (mve_encode_qqq): New encoding helper function. (do_mve_vmull): New encoding function. (insns): Handle new instructions. * testsuite/gas/arm/mve-vmullbt-bad.d: New test. * testsuite/gas/arm/mve-vmullbt-bad.l: New test. * testsuite/gas/arm/mve-vmullbt-bad.s: New test.